mpi4py.MPI

该博客分享了一个使用mpi4py进行MPI并行计算的实例,针对结构参数扫描任务,通过将原始串行代码改写为并行程序,实现了效率的显著提升。作者首先展示了一个简单的串行代码,然后介绍了一个numpy数组拆分函数,并结合mpi4py的scatter操作实现并行计算。经过8个进程的并行运行,计算时间成本降低至原来的1/8。

简单记录一个mpi4py.MPI并行计算代码

简单分享一个mpi4py.MPI入门的编程实例
最近需要优化电磁场仿真速度,本着学习一下mpi4py并行方面的知识,找了半天网上找不到编程实例,最后自己总结了一下稍微给大家分享一个小的并行计算实例,mpi4py的库安装以及一些常识大家可以在官网上找到,这里我不过多叙述了。


前言

大概讲一下要实现的程序功能:
我需要对一个建模好的结构进行参数扫描,每个参数之间互不影响,所以可以将传统串行更改为并行程序。


提示:以下是本篇文章正文内容,下面案例可供参考

一、原始串行代码

示例:假设我已经有一个写好的函数Unitcell(涉及专业知识,代码不放上去了),这个函数的输入是(结构参数1, 结构参数2, 入射波长, 结构参数3),输出是某个电磁相应,我的目标是对结构参数3进行扫描得到这个电磁响应的谱。

代码如下(示例):

from mpi4py import MPI
import numpy as np
import meep as mp

def Unitcell(gp, gh, lcen, gdc):
...
	return phase
	
gh = 0.5
gp = 0.2
r = 0.632    # lcen

gdc = np.linspace(0.1, 0.9, 48)    #结构参数3,参数扫描列表

for i in range(len(gdc)):
	mode_tran = UnitCell(gp, gh, r, gdc[i])     # 扫描   
	

二、使用mpi4py并行

1.简单写一个numpy.array拆分函数

代码如下(示例):

#自己简单写的一个numpy.array拆分函数,为了方便后面的散发操作,可以将一个一维数组根据并行进程数拆分
def Division(a):
    comm = MPI.COMM_WORLD
    size = comm.Get_size()
    rol= len(a)/size
    rol = int(rol)
    Division_array = np.zeros((size, rol))
    for i in range(rol):
        Division_array[:, i] = a[i*size:(i+1)*size]

    return Division_array

2.并行程序

代码如下(示例):

from mpi4py import MPI
import numpy as np
import meep as mp

def Unitcell(gp, gh, lcen, gdc):
...
	return phase

def Division(a):
    comm = MPI.COMM_WORLD
    size = comm.Get_size()
    rol= len(a)/size
    rol = int(rol)
    Division_array = np.zeros((size, rol))
    for i in range(rol):
        Division_array[:, i] = a[i*size:(i+1)*size]

    return Division_array

gh = 0.5
gp = 0.2
r = 0.632

comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()

if rank == 0:
    gdc = np.linspace(0.1, 0.9, 48)
    gdc = Division(gdc)
else:
    gdc = None

local_data = comm.scatter(gdc, root=0)
print(local_data)

for i in range(len(local_data)):
    mode_tran = UnitCell(gp, gh, r, local_data[i])

all_max = comm.reduce(mode_tran, root=0, op=MPI.MAX)

if rank == 0:
    print('maxis:%d' % all_max)
mpiexec -n 8 python mpi.py  #使用8个进程

总结

使用8个进程并行后时间成本大约变为以前的1/8,在大型科学计算中效果显著。

如有错误,欢迎斧正和交流。

(dla) root@bbbc6f9276e3:/# pip install mpi4py==3.0.3 Collecting mpi4py==3.0.3 Downloading mpi4py-3.0.3.tar.gz (1.4 MB) |################################| 1.4 MB 294 kB/s Preparing metadata (setup.py) ... done Building wheels for collected packages: mpi4py Building wheel for mpi4py (setup.py) ... error ERROR: Command errored out with exit status 1: command: /root/miniconda3/envs/dla/bin/python3.6 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"'; __file__='"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-1b28h61h cwd: /tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/ Complete output (206 lines): running bdist_wheel running build running build_src running build_py creating build creating build/lib.linux-x86_64-3.6 creating build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/run.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__main__.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__init__.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/bench.py -> build/lib.linux-x86_64-3.6/mpi4py creating build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/pool.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/server.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/aplus.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/__main__.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/__init__.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/_lib.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/_base.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/libmpi.pxd -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__init__.pxd -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/MPI.pxd -> build/lib.linux-x86_64-3.6/mpi4py creating build/lib.linux-x86_64-3.6/mpi4py/include creating build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.MPI_api.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.MPI.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.i -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi.pxi -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py running build_clib MPI configuration: [mpi] from 'mpi.cfg' MPI C compiler: /root/miniconda3/envs/dla/bin/mpicc MPI C++ compiler: /root/miniconda3/envs/dla/bin/mpicxx MPI F compiler: /root/miniconda3/envs/dla/bin/mpifort MPI F90 compiler: /root/miniconda3/envs/dla/bin/mpif90 MPI F77 compiler: /root/miniconda3/envs/dla/bin/mpif77 checking for library 'lmpe' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'mpe' dylib library creating build/temp.linux-x86_64-3.6 creating build/temp.linux-x86_64-3.6/src creating build/temp.linux-x86_64-3.6/src/lib-pmpi /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/mpe.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/mpe.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "mpe" failed checking for library 'vt-mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt" failed checking for library 'vt-mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt-mpi' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt-mpi.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt-mpi.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt-mpi" failed checking for library 'vt-hyb' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.ompi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt-hyb' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt-hyb.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt-hyb.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt-hyb" failed running build_ext MPI configuration: [mpi] from 'mpi.cfg' MPI C compiler: /root/miniconda3/envs/dla/bin/mpicc MPI C++ compiler: /root/miniconda3/envs/dla/bin/mpicxx MPI F compiler: /root/miniconda3/envs/dla/bin/mpifort MPI F90 compiler: /root/miniconda3/envs/dla/bin/mpif90 MPI F77 compiler: /root/miniconda3/envs/dla/bin/mpif77 checking for dlopen() availability ... checking for header 'dlfcn.h' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o success! removing: _configtest.c _configtest.o success! checking for library 'dl' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ _configtest.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o _configtest success! removing: _configtest.c _configtest.o _configtest checking for function 'dlopen' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ _configtest.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o _configtest success! removing: _configtest.c _configtest.o _configtest building 'mpi4py.dl' extension gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -I/root/miniconda3/envs/dla/include/python3.6m -c src/dynload.c -o build/temp.linux-x86_64-3.6/src/dynload.o gcc -pthread -shared -B /root/miniconda3/envs/dla/compiler_compat -L/root/miniconda3/envs/dla/lib -Wl,-rpath=/root/miniconda3/envs/dla/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.6/src/dynload.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o build/lib.linux-x86_64-3.6/mpi4py/dl.cpython-36m-x86_64-linux-gnu.so checking for MPI compile and link ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o error: Cannot compile MPI programs. Check your configuration!!! ---------------------------------------- ERROR: Failed building wheel for mpi4py Running setup.py clean for mpi4py Failed to build mpi4py Installing collected packages: mpi4py Running setup.py install for mpi4py ... error ERROR: Command errored out with exit status 1: command: /root/miniconda3/envs/dla/bin/python3.6 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"'; __file__='"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-tvroj_hd/install-record.txt --single-version-externally-managed --compile --install-headers /root/miniconda3/envs/dla/include/python3.6m/mpi4py cwd: /tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/ Complete output (206 lines): running install running build running build_src running build_py creating build creating build/lib.linux-x86_64-3.6 creating build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/run.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__main__.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__init__.py -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/bench.py -> build/lib.linux-x86_64-3.6/mpi4py creating build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/pool.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/server.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/aplus.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/__main__.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/__init__.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/_lib.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/futures/_base.py -> build/lib.linux-x86_64-3.6/mpi4py/futures copying src/mpi4py/libmpi.pxd -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/__init__.pxd -> build/lib.linux-x86_64-3.6/mpi4py copying src/mpi4py/MPI.pxd -> build/lib.linux-x86_64-3.6/mpi4py creating build/lib.linux-x86_64-3.6/mpi4py/include creating build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.MPI_api.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.MPI.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.h -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi4py.i -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py copying src/mpi4py/include/mpi4py/mpi.pxi -> build/lib.linux-x86_64-3.6/mpi4py/include/mpi4py running build_clib MPI configuration: [mpi] from 'mpi.cfg' MPI C compiler: /root/miniconda3/envs/dla/bin/mpicc MPI C++ compiler: /root/miniconda3/envs/dla/bin/mpicxx MPI F compiler: /root/miniconda3/envs/dla/bin/mpifort MPI F90 compiler: /root/miniconda3/envs/dla/bin/mpif90 MPI F77 compiler: /root/miniconda3/envs/dla/bin/mpif77 checking for library 'lmpe' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'mpe' dylib library creating build/temp.linux-x86_64-3.6 creating build/temp.linux-x86_64-3.6/src creating build/temp.linux-x86_64-3.6/src/lib-pmpi /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/mpe.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/mpe.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "mpe" failed checking for library 'vt-mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt" failed checking for library 'vt-mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.mpi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt-mpi' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt-mpi.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt-mpi.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt-mpi" failed checking for library 'vt-hyb' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o checking for library 'vt.ompi' ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o building 'vt-hyb' dylib library /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c src/lib-pmpi/vt-hyb.c -o build/temp.linux-x86_64-3.6/src/lib-pmpi/vt-hyb.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- warning: build_clib: command '/root/miniconda3/envs/dla/bin/mpicc' failed with exit status 1 warning: build_clib: building optional library "vt-hyb" failed running build_ext MPI configuration: [mpi] from 'mpi.cfg' MPI C compiler: /root/miniconda3/envs/dla/bin/mpicc MPI C++ compiler: /root/miniconda3/envs/dla/bin/mpicxx MPI F compiler: /root/miniconda3/envs/dla/bin/mpifort MPI F90 compiler: /root/miniconda3/envs/dla/bin/mpif90 MPI F77 compiler: /root/miniconda3/envs/dla/bin/mpif77 checking for dlopen() availability ... checking for header 'dlfcn.h' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o success! removing: _configtest.c _configtest.o success! checking for library 'dl' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ _configtest.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o _configtest success! removing: _configtest.c _configtest.o _configtest checking for function 'dlopen' ... gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ _configtest.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o _configtest success! removing: _configtest.c _configtest.o _configtest building 'mpi4py.dl' extension gcc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -I/root/miniconda3/envs/dla/include/python3.6m -c src/dynload.c -o build/temp.linux-x86_64-3.6/src/dynload.o gcc -pthread -shared -B /root/miniconda3/envs/dla/compiler_compat -L/root/miniconda3/envs/dla/lib -Wl,-rpath=/root/miniconda3/envs/dla/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.6/src/dynload.o -Lbuild/temp.linux-x86_64-3.6 -ldl -o build/lib.linux-x86_64-3.6/mpi4py/dl.cpython-36m-x86_64-linux-gnu.so checking for MPI compile and link ... /root/miniconda3/envs/dla/bin/mpicc -pthread -B /root/miniconda3/envs/dla/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/miniconda3/envs/dla/include/python3.6m -c _configtest.c -o _configtest.o -------------------------------------------------------------------------- The Open MPI wrapper compiler was unable to find the specified compiler x86_64-conda-linux-gnu-cc in your PATH. Note that this compiler was either specified at configure time or in one of several possible environment variables. -------------------------------------------------------------------------- failure. removing: _configtest.c _configtest.o error: Cannot compile MPI programs. Check your configuration!!! ---------------------------------------- ERROR: Command errored out with exit status 1: /root/miniconda3/envs/dla/bin/python3.6 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"'; __file__='"'"'/tmp/pip-install-lw95xiq4/mpi4py_8b91087d72f84b52b99093b4f331a6c6/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-tvroj_hd/install-record.txt --single-version-externally-managed --compile --install-headers /root/miniconda3/envs/dla/include/python3.6m/mpi4py Check the logs for full command output.
最新发布
06-25
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值