This is a demo of the toolchain. The qalgo folder has the quantum algorithm to be benchmarked with folders: - gen_files: This folder has the main machinery that generates the associated run files given the qasm files, job scripts and scope files that scope into environment of the container - qasm_files: The quantum algorithm represented using the QASM instruction set - qasm_parser: The parser that translates the QASM instruction into the instruction of the simulation package - simulation package folder: The folder of the simulation package with the associated run files and job scripts To generate the associated files, in this instance the qiskit files associated with the Heisenberg dynamics: 1. Create qiskit folder in qalgo folder - mkdir -v qiskit 2. Change into the gen_files folder and run the file - python3 create_dir_struct.py (allows to set the options inside the file) 3. In the qiskit folder the following folders are generated: - bash_scripts_st_dp: bash scripts that scope the run files into the environment of the container - data_st_dp: data folder to store the time statistics - error_st_dp: error folder to store the errors of the job - output_st_dp: output folder to store the output of the job - job_scripts_st_dp: job scripts folder that has the jobs to be executed on the cluster (tailored for PSI cluster) - run_files_st_dp: translated run files from qasm to qiskit instruction set 4. run_jobs_st_dp.sh: pushes all the jobs in the `bash_scripts_st_dp` onto the cluster ============================================================================================================================= Note: 1. The above instructions are tailored for a demo i.e., a minimal reproduction of the toolchain and its files (for the entire version: please see the files in the folder `toolchain`) 2. 1. The singularity containers are not contained in this repo but are on the zenodo repo. These can be accessed using the following commands or as in the job scripts: - singularity shell qucos_sim.sif 3. The containerized image has conda environments for all the packages (also in `bash_script_sample.sh` in zenodo repo) that is as follows: ``` #!/bin/bash -l . /app/etc/profile.d/conda.sh conda activate sim_package python3 /home/ # Available conda environments on CPU singularity image: qucos_sim.sif # Can be activated by issuing the commands as above, replace sim_package # by the package of choice as below: # sim_braket # sim_cirq # sim_hybridq # sim_myqlm # sim_myqlm_cpp # sim_pennylane # sim_pennylane_l # sim_projectq # sim_qibo # sim_qibojit # sim_qiskit # sim_qpanda # sim_qsimcirq # sim_qulacs # sim_svsim # Available conda environments on GPU singularity image: qucos_gpu_sim.sif # Can be activated by issuing the commands as above, replace sim_package # by the package of choice as below: # sim_hybridq_gpu # sim_pennylane_l_gpu # sim_qcgpu_gpu # sim_qibojit_gpu # sim_qiskit_gpu # sim_qpanda_gpu # sim_qsimcirq_gpu # sim_qulacs_gpu # sim_svsim_gpu ``` 4. The use of containerized image implies that the packages installed in the container do not need additional dependencies and can be used in a straight out-of-box fashion. However to check the dependencies one can issue the command `pip list` once the corresponding conda environment is activated (conda environments listed above).