我的环境脚本在下面,但我不会在这里详细介绍。我的计划是根据我当前的工作设置创建一个 git 存储库,并在 Github 上公开,这将迫使我组织整个设置并使其对其他人有用。
以下脚本允许我在没有 Anaconda3 的情况下使用 python3 运行 Meep。这样你就可以使用最新的包和 git 源来构建 Meep、Open MPI 和支持库。我的主目录被替换为
#!/bin/bash
export MPI_PROJ=/home/<USER>/projects/mpi
export MPI_BASE=/usr/local/mpi/openmpi/base
export MPI_411=$MPI_BASE/411
#
# CRITICAL ENVARS - THESE MUST BE SET AS FOLLOWS FOR THE EXISTING MEEP, MPB AND OPENMPI 4.1.1
#
export LD_LIBRARY_PATH="/usr/local/mpi/meep/latest/lib:/usr/local/mpi/openmpi/base/411/bin:/home/fraser/.local/bin:/usr/local/bin:/usr/bin:/opt/bin:/bin:/sbin:/home/fraser/projects/mpi/bin"
export CFLAGS="-I/usr/local/mpi/meep/latest/include -I/usr/local/mpi/mpb/latest/include -I/usr/include/python3.8"
export PKG_CONFIG_PATH="/usr/local/mpi/meep/latest/lib/pkgconfig:/usr/local/mpi/openmpi/base/411/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/local/mpi/meep/latest/lib/pkgconfig"
export LDFLAGS="-L/usr/local/mpi/openmpi/base/411/lib -L/usr/local/mpi/meep/latest/lib -lmpi -lmpb"
export PYTHONPATH="/home/fraser/.local/lib/python3.8/site-packages:/usr/lib/python3.8:/usr/local/mpi/meep/latest/lib/python3.8/site-packages:/usr/local/lib/python3.8/dist-packages"
export PATH=/home/fraser/projects/mpi/bin:/usr/local/mpi/meep/latest/bin:/usr/local/mpi/openmpi/base/411/bin:/home/fraser/.local/bin:/usr/local/bin:/usr/bin:/opt/bin:/bin:/sbin
Open MPI 4.1.1 首先构建了很多次,以便在 3 台真机和 2 台虚拟机上正确运行。最后,所有 3 个 Centos 8 Stream 安装完美地一起运行了 mpi。两台 ubuntu 21 机器(一台真实机器,一台虚拟机)能够完美地一起运行 mpi。Centos 8 机器将与 Ubuntu 21 机器通信。由于 glibc 版本差异,我无法在 Ubuntu 21 和 Centos 8 Stream 之间复制 mpi 安装。
然后转到 Meep,它需要“从源代码构建 Meep”文档页面中列出的所有库。有些不能从 Mint 20 repos 中获得,必须从源代码构建。创建构建脚本来为每个脚本运行配置,以记录使用的选项。
Meep 需要特定的harminv、fftw3、guile、swig、hdf5 版本。其他库是使用 apt 从 mint 20 软件包存储库安装的。
Meep 也被多次构建,因为我的环境是设置权限以从 /usr/local 以外的位置运行 Meep。需要一些修补才能使上述环境变量足够接近。他们可能需要根据您的目的进行一些调整。
中间更新 - 我能够在 Centos 8 Stream 上的 Mint20 Linux 上复制我的成功。将所有工作部分收集到一个 git 存储库中,并记录似乎没有人在 StackOverflow 甚至 Github 问题上发布的小细节!例如,在 swig git clone 中运行 AUTOGEN 之前导出 PY3=1。否则它想使用python 2!
另一个问题是:例如,将您的克隆保存为 git-meep。然后复制给meep。然后在meep上工作。如果您使用 configure/make/make test/make install 超过 5 次,或者没有注意到任何代码或环境更改,请删除 meep 树。确保在删除之前保存任何环境设置或配置运行脚本。
在运行任何环境设置脚本之前,将 git-meep 复制到 meep 并再次运行 autogen.sh。然后运行它们,然后运行任何运行配置和/或制作的脚本。
我的配置脚本严格运行配置。然后我手动运行 make/make check/make install,以防构建失败。
还有更多奇怪的事情要做,使这项工作。
当 github 存储库在线时将在此处发布。