Skip to content

Releases: Cloudslab/iQuantum

iQuantum 1.0.0

17 Aug 04:36
0b07108
Compare
Choose a tag to compare

This release contains major updates and improvements of the entire iQuantum project to enhance the clarity for seamlessly modeling hybrid quantum-classical computing environments. Most concepts and terminologies from the previous public release (0.3.0) have been changed. Please refer to iquantum-examples module to learn more about how to model various scenarios using iQuantum.

Major changes

  • Refactored and fully integrated classical entities of CloudSim 6 into iQuantum. The package structure of the iquantum module has been re-organized. Core classes have been updated accordingly to support the operation of iQuantum while maintain the support for modeling classical components.
  • Refactored quantum and classical tasks entities Qulet, and Cloudlet to QTask and CTask, respectively.
  • Updates all examples in iquantum-examples module to reflect the new changes.
  • Refactored the broker entities, there are separated cloud and edge variants of CBroker and QBroker, namely CCloudBroker, CEdgeBroker, QCloudBroker, and QEdgeBroker.
  • Updated the sample quantum task scheduling space shared policy and examples for multi-QPU (experimental)
  • Updated the utility classes for supporting importing IBM Quantum Nodes automatically modeling support from the calibration datasheet (.csv).
  • Updated Maven files to fix related bugs and upgrade plugins to newer versions.

New features

  • Added the dataset utilities to support import workload (QTask) dataset from the .csv files. The workload dataset can be generated by extracting features from the OpenQASM2 dataset (such as MQT Bench). A Python-based dataset generator (Jupyter Notebook) for iQuantum is also included (see dataset\iquantum\iquantumDatagen.ipynb).
  • Added different sample workload datasets generated from the MQT Bench (see dataset\iquantum)
  • Added Gateway entities with two child classes, CloudGateway and EdgeGateway to support the modeling of gateway entities for the cloud layer and edge layer, respectively
  • Add Edge entities and hybrid examples (iquantum-examples > hybrid) to demonstrate the hybrid quantum-classical examples in the cloud-edge continuum. Tasks can be offloaded from the edge layer to the cloud layer during the execution.
  • Added the sample quantum node selection policy based on Lottery Scheduling algorithm (QNodeSelectionLottery)
  • (Experimental) Added QPU and QNodeMQ classes for supporting the modeling of quantum processing units and multi-QPU QNode.
  • (Experimental) Added Py4J example for bridging iQuantum with other Python-based applications.

Note: The in-code comments are still being updated to enhance clarity and reflect the new changes in the source code.

iQuantum 0.3.0

22 Apr 02:05
Compare
Choose a tag to compare

Initial public release

This is the first release after opening the development of iQuantum based on Cloudsim 6.0.0-beta. This release supports core functionalities of iQuantum, including:

  • Model Quantum Datacenter (QDatacenter), Quantum Computer (QNode), Quantum Cloud Broker (QBroker), and Quantum Tasks (Qulet)
  • Support both simple QubitTopology and QubitTopologyExtended, which can be imported from calibration data (CSV).
  • Add sample (public) calibration data (/dataset/iquantum) from IBM Quantum (Apr 2023) to model the IBM Quantum node automatically in Quantum, using the IBMQNode class.
  • Model Qubit mapping algorithm, support QubitMappingBackTracking by default.
  • Model Qulet Scheduling algorithm, support QuletSchedulerSpaceShared by default.
  • Add constraints checking for qulet execution (number of qubits, gates, qubit mapping)
  • Add 4 examples for demonstration of how to use iQuantum for modeling.

Notes: This package contains the source code of CLOUDS Lab's latest Cloudsim and iFogSim projects. More details of these projects can be found in the respective repository.