Releases: Cloudslab/iQuantum
iQuantum 1.0.0
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
, andCloudlet
toQTask
andCTask
, 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
andQBroker
, namelyCCloudBroker
,CEdgeBroker
,QCloudBroker
, andQEdgeBroker
. - 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
andEdgeGateway
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
andQNodeMQ
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
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 theIBMQNode
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.