Commit 238b0415 authored by Nguyen, Thien Minh's avatar Nguyen, Thien Minh
Browse files

Added timing mean/stddev for Q# script



Fixed qasm3 script as well, need to rerun.

Signed-off-by: default avatarThien Nguyen <nguyentm@ornl.gov>
parent 049fb1ae
Loading
Loading
Loading
Loading
+25 −15
Original line number Diff line number Diff line
@@ -2,7 +2,14 @@
# Reference: https://github.com/microsoft/qsharp-compiler/tree/main/examples/QIR/Optimization

import time, os, sys
from statistics import mean, stdev

os.chdir(sys.path[0])

n_runs = 10

data = []
for run_id in range(n_runs): 
    start = time.time()
    # Dotnet build -> generate ll file (unoptimized)
    os.system('dotnet build')
@@ -13,10 +20,13 @@ os.system('/usr/local/aideqc/llvm/bin/clang -S qir/trotter.ll -O3 -emit-llvm -o
    # Compile and link:
    os.system('/usr/local/aideqc/llvm/bin/llvm-as qir/trotter-o3.ll -o qir/trotter.bc')
    os.system('/usr/local/aideqc/llvm/bin/llc -filetype=obj qir/trotter.bc -o qir/trotter.o')
os.system('/usr/local/aideqc/llvm/bin/clang++  -Wno-unused-command-line-argument -Wno-override-module -rdynamic -Wl,-rpath,/root/.xacc/lib:/root/.xacc/lib:/usr/local/aideqc/llvm/lib:/root/.xacc/clang-plugins -L /root/.xacc/lib -lqcor -lqrt -lqcor-jit -lqcor-quasimo -L /root/.xacc/lib -lxacc -lCppMicroServices -lxacc-quantum-gate -lxacc-pauli -lxacc-fermion -lpthread -lqir-qrt -D__internal__qcor__compile__backend="qpp" qir/trotter.o driver.cpp -o qir/a.out')
    os.system('/usr/local/aideqc/llvm/bin/clang++  -Wno-unused-command-line-argument -Wno-override-module -rdynamic -Wl,-rpath,/usr/local/aideqc/qcor/lib:/usr/local/aideqc/qcor/lib:/usr/local/aideqc/llvm/lib:/usr/local/aideqc/qcor/clang-plugins -L /usr/local/aideqc/qcor/lib -lqcor -lqrt -lqcor-jit -lqcor-quasimo -L /usr/local/aideqc/qcor/lib -lxacc -lCppMicroServices -lxacc-quantum-gate -lxacc-pauli -lxacc-fermion -lpthread -lqir-qrt -D__internal__qcor__compile__backend="qpp" qir/trotter.o driver.cpp -o qir/a.out')
    end = time.time()
    print('Elapsed time:', end - start, ' [secs]')
    data.append(end - start)
    # Clean up (no incremental builds)
    os.system('rm -rf bin')
    os.system('rm -rf obj')
    os.system('rm -rf qir')

print('==> Elapsed time =', mean(data), '+/-', stdev(data),  '[secs]')
 No newline at end of file
+11 −10
Original line number Diff line number Diff line
@@ -7,15 +7,16 @@ const Jz = 1.0;
const h = 1.0;

qubit r[nb_qubits];

for step in [0:nb_steps] {
  // -h*sigma_x layers
for i in [0:nb_steps] {
  for i in [0:nb_qubits] {
    rx(-h * step_size) r[i];
  }

  // -Jz*sigma_z*sigma_z layers
for i in [0:nb_steps - 1] {
  for i in [0:nb_qubits - 1] {
    cx r[i], r[i+1];
    rz(-Jz * step_size) r[i + 1];
    cx r[i], r[i+1];
  }
}
 No newline at end of file