我正在开发一个针对气象学家和气候科学家的名为PIO:https://github.com/NCAR/ParallelIO的免费软件应用程序。
顾名思义,它是一个使用MPI的并行I/O库。
我正试图打开附带的MPE库的配置文件。在线上有很多不同的文档都提到了-mpilog选项,但是不清楚应该在哪里使用,或者是否应该使用其他选项。
当我尝试将-mpilog添加到C C、CFLAGS或LDFLAGS时,configure失败,并显示消息C编译器不工作。
那么如何使用MPE打开日志?我在Linux系统上使用MPICH 3.2。
最佳答案
我已经做了这项工作,这是怎么做的。
首先,感谢Gilles Gouaillardet将我指向MPE github站点。有很多关于MPE的旧信息,而且这些年来已经发生了很大的变化,所以在GitHub网站上阅读这些信息就消除了很多困惑。
对于我的PIO项目,我不仅需要用MPE构建PIO,还需要HDF5、netcdf-c和pnetcdf。
HDF5是这样构建的:
CC='gcc' CPPFLAGS='-I/usr/local/zlib-1.2.11/include' LDFLAGS='-L/usr/local/zlib-1.2.11/lib' LIBS='-llmpe -lmpe -lmpi -lpthread' ./configure --prefix=/usr/local/hdf5-1.10.5_mpe_static --disable-shared --enable-parallel
netCDF是这样构建的:
CC='gcc' CPPFLAGS='-I/usr/local/zlib-1.2.11/include -I/usr/local/hdf5-1.10.5_mpe_static/include' LDFLAGS='-L/usr/local/zlib-1.2.11/lib -L/usr/local/hdf5-1.10.5_mpe_static/lib' ./configure --prefix=/usr/local/netcdf-c-4.7.0_hdf5-1.10.5_mpe_static_nodap --disable-shared --disable-dap
pnetcdf的构建方式如下:
CC=gcc LIBS='-llmpe -lmpe -lmpi -lpthread' ./configure --prefix=/usr/local/pnetcdf-1.11.0_mpe --disable-shared --disable-cxx --disable-fortran
PIO是这样构建的:
autoreconf -i && CC='gcc' CPPFLAGS='-I/usr/local/pnetcdf-1.11.0_mpe/include -I/usr/local/zlib-1.2.11/include -I/usr/local/hdf5-1.10.5_mpe_static/include -I/usr/local/netcdf-c-4.7.0_hdf5-1.10.5_mpe_static_nodap/include' LDFLAGS='-L/usr/local/pnetcdf-1.11.0_mpe/lib -L/usr/local/zlib-1.2.11/lib -L/usr/local/hdf5-1.10.5_mpe_static/lib -L/usr/local/netcdf-c-4.7.0_hdf5-1.10.5_mpe_static_nodap/lib' LIBS=' -lhdf5_hl -lhdf5 -lz -ldl -lm -llmpe -lmpe -lmpi -lpthread' ./configure --disable-shared --enable-mpe
请注意,所有mpicc/mpecc编译器包装器似乎都无法为此生成生成生成正确的结果,因为库将以错误的顺序列出。只有使用CC=gcc,并显式链接到-llmpe-lmpe-lmpi-lpthread,才能生成此线程。
一旦建成,它会给出非常漂亮的图表:
关于c - 如何通过MPE库打开MPI分析?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56604967/