Skip to content

Instantly share code, notes, and snippets.

@gribeill
Created February 6, 2019 15:22
Show Gist options
  • Save gribeill/4d8a7915414f321a626bddd96ab062d8 to your computer and use it in GitHub Desktop.
Save gribeill/4d8a7915414f321a626bddd96ab062d8 to your computer and use it in GitHub Desktop.
pyGSTi MPI
import time, os, datetime
import pygsti
from pygsti.construction import std1Q_XYI, std2Q_XXYYII
from itertools import product
gs = std2Q_XXYYII
gs_target = std2Q_XXYYII.gs_target.copy()
gs_target.set_all_parameterizations("CPTP")
prep_fiducials = std2Q_XXYYII.prepStrs
effect_fiducials = std2Q_XXYYII.effectStrs
gs_germs = std2Q_XXYYII.germs_lite
maxLengths = [1,2,4,8,16]
listOfExperiments = pygsti.construction.make_lsgst_experiment_list(gs_target.gates.keys(), prep_fiducials, effect_fiducials, gs_germs, maxLengths)
#Folders and files
folder = "/home/gribeill/papa_data/PAPA-Tesla"
files = ["q1q3_190204.txt"]
outfolder = "/home/gribeill/papa_data/PAPA-Tesla/GST"
if not os.path.isdir(outfolder):
raise IOError("Data saving folder {} does not exist!".format(outfolder))
#set up MPI
from mpi4py import MPI
comm = MPI.COMM_WORLD
print("Rank %d started" % comm.Get_rank())
print("################Q1Q2 DATA####################################")
memLim = 3*(1024)**3 ##3 GB per core
ds = pygsti.io.load_dataset(os.path.join(folder, files[0]))
start = time.time()
results_q1q2 = pygsti.do_long_sequence_gst(ds, gs_target, prep_fiducials, effect_fiducials, gs_germs,
maxLengths, gaugeOptParams={'itemWeights': {'spam': 0.2, 'gates': 1.0}},
memLimit=memLim, verbosity=3, comm=comm)
end = time.time()
print("Rank %d finished in %.1fs" % (comm.Get_rank(), end-start))
if comm.Get_rank() == 0:
import pickle
pickle.dump(results_q1q2, open(os.path.join(outfolder, outfiles[0]), "wb"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment