-
Hi, Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 75 replies
-
@caoshiyi this depends strongly on the architecture and system topology of the cluster in question. |
Beta Was this translation helpful? Give feedback.
-
The
This operation involves a nontrivial traversal pattern in the elements of In terms of implementation, there is no overlap unless the number of targets ( |
Beta Was this translation helpful? Give feedback.
-
@tlubowe Regarding this discussion, is there something straightforward that can be done on a cluster with 2 DGX A100 where the cuQuantum Appliance 22.11 container is loaded? |
Beta Was this translation helpful? Give feedback.
-
@mtjrider @tlubowe do you have some experience for running the distributed simulation on the Perlmutter supercomputer cluster? |
Beta Was this translation helpful? Give feedback.
-
Having a multi-node container solution on Perlmutter is also relevant for me, so I’d appreciate any hint. |
Beta Was this translation helpful? Give feedback.
-
@erinaldi after much waiting, an update. All of the following on Perlmutter ... EDIT: Be sure that this variable is set: Do the following to pull the image and confirm it was downloaded:
It may take a second, but you should see something like this:
Once you confirm that you have the correct image (above) pulled, you can use the attached scripts to run a multi-node job using the cuQuantum appliance. You will have to make changes so that the account name, qos, etc. are appropriately set. Once modifications are done, I recommend running
|
Beta Was this translation helpful? Give feedback.
-
@mtjrider What is the best way to run a distributed statevector simulation with cusvaer in the simulator = Aer.get_backend('aer_simulator_statevector')
# create options dictionary to override communicator settings and set precision
options = {
'cusvaer_comm_plugin_type': cusvaer.CommPluginType.MPI_MPICH, # use MPICH MPI
'cusvaer_comm_plugin_soname': 'libmpi.so', # name of the MPI shared library
'precision': 'single', # single precision
'shots': 128
}
simulator.set_options(**options) (in the container, Runs in 21.04753017425537 seconds using 2 MPI processes.
backend: cusvaer_simulator_statevector
Runs in 2.753363847732544 seconds using 4 MPI processes.
backend: cusvaer_simulator_statevector However, if I change the circuit to save the state vector using circuit = read_circuit(f)
circuit.save_statevector() can I access the distributed statevector? E.g. I would normally do this result = simulator.run(circ).result()
psi = result.data(0)["statevector"] and compute amplitudes? Typically with the Born rule state = int(bit_str, 2)
prob_bit_str = abs(psi[state]) ** 2 |
Beta Was this translation helpful? Give feedback.
@erinaldi after much waiting, an update.
All of the following on Perlmutter ...
EDIT: Be sure that this variable is set:
export MPICH_GPU_SUPPORT_ENABLED=1
Do the following to pull the image and confirm it was downloaded:
It may take a second, but you should see something like this:
Once you confirm that you have the correct image (above) pulled, you can use the attached scripts to run a multi-node job using the cuQuantum appliance. You will have to make changes so th…