  NISQ devices have several physical limitations and unavoidable noisy quantum
operations, and only small circuits can be executed on a quantum machine to get
reliable results. This leads to the quantum hardware under-utilization issue.
Here, we address this problem and improve the quantum hardware throughput by
proposing a Quantum Multi-programming Compiler (QuMC) to execute multiple
quantum circuits on quantum hardware simultaneously. This approach can also
reduce the total runtime of circuits. We first introduce a parallelism manager
to select an appropriate number of circuits to be executed at the same time.
Second, we present two different qubit partitioning algorithms to allocate
reliable partitions to multiple circuits - a greedy and a heuristic. Third, we
use the Simultaneous Randomized Benchmarking protocol to characterize the
crosstalk properties and consider them in the qubit partition process to avoid
the crosstalk effect during simultaneous executions. Finally, we enhance the
mapping transition algorithm to make circuits executable on hardware using a
decreased number of inserted gates. We demonstrate the performance of our QuMC
approach by executing circuits of different sizes on IBM quantum hardware
simultaneously. We also investigate this method on VQE algorithm to reduce its
overhead.
