mpirun 无法导入已安装的软件包

问题描述 投票:0回答:1

我正在运行

qiskit
代码,当我用
python3
调用它时,它执行得很好,但是当用 mpirun 调用时,它会执行
SegmentationFault Error
提及一些
Permission Errors
。我以 root 身份运行命令,它显示
ModuleNotFoundError
(已安装并正常执行 - 值得一提的是,此错误在重新启动后开始出现)

sudo mpirun --allow-run-as-root python3 test-mpi.py

Traceback (most recent call last):
  File "/home/dell/qiskit-aer-main/demo-files/test-mpi.py", line 3, in <module>
from qiskit.providers.aer import *
ModuleNotFoundError: No module named 'qiskit.providers.aer'
Traceback (most recent call last):
  File "/home/dell/qiskit-aer-main/demo-files/test-mpi.py", line 3, in <module>
from qiskit.providers.aer import *
ModuleNotFoundError: No module named 'qiskit.providers.aer'
Traceback (most recent call last):
  File "/home/dell/qiskit-aer-main/demo-files/test-mpi.py", line 3, in <module>
from qiskit.providers.aer import *
ModuleNotFoundError: No module named 'qiskit.providers.aer'
Traceback (most recent call last):
  File "/home/dell/qiskit-aer-main/demo-files/test-mpi.py", line 3, in <module>
from qiskit.providers.aer import *
ModuleNotFoundError: No module named 'qiskit.providers.aer'
--------------------------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:

Process name: [[51849,1],0]
Exit code:    1

下面是代码以及正常输出

from qiskit import *
from qiskit.circuit.library import *
from qiskit.providers.aer import *
sim = AerSimulator(method='statevector')
shots = 100
depth=10
qubits = 35
circuit = transpile(QuantumVolume(qubits, depth, seed=0),
backend=sim,
optimization_level=0)
circuit.measure_all()
result = execute(circuit,sim,shots=shots,seed_simulator=12345).result()
if result.to_dict()['metadata']['mpi_rank'] == 0:
    print (result.to_dict()['metadata'])

这是正常输出情况:

python3 test-mpi.py

{'time_taken_execute': 0.222742047, 'mpi_rank': 0, 'time_taken_parameter_binding': 8.8427e-05, 'num_mpi_processes': 1, 'num_processes_per_experiments': 1, 'omp_enabled': True, 'max_gpu_memory_mb': 0, 'max_memory_mb': 15903, 'parallel_experiments': 1}
segmentation-fault openmpi modulenotfounderror qiskit
1个回答
0
投票

我能够通过在代码中手动添加路径来解决这个问题:

import sys
sys.path.append('/home/dell/.local/lib/python3.11/site-packages/')

mpirun 在使用 python 虚拟环境时遇到一些问题,无法自行加载路径。

© www.soinside.com 2019 - 2024. All rights reserved.