从源代码构建 MPICH2
Build MPICH2 from source
作为 question, I started building MPICH2 from source. I found this tutorial: Installing MPICH2 on a Single Machine 的后续,到目前为止我所做的是:
./configure --disable-f77 --disable-fc --disable-fortran
[seems to be OK]
make; sudo make install
[long output with one warning]
libtool: warning: relinking 'lib/libmpicxx.la'
root@pythagoras:/home/gsamaras/mpich-3.1.4# mpich2version
bash: mpich2version: command not found
我做错了什么?请注意,我首先使用 apt-get 安装了 MPICH2,为了删除它,我做了:
apt-get remove --purge mpich2
apt-get autoremove // which might removed something that I need now
明天,我将尝试这个:Getting And Building MPICH(第一次尝试在 autogen.sh 部分失败)。
EDIT_1:
我无法让它工作,将尝试结合使用这两个教程并报告。我做了一个配置,然后从另一个教程中制作,也失败了。
EDIT_2
这可能会掩盖它的安装位置(按照第一个教程):
root@pythagoras:/home/gsamaras/mpich-3.1.4# which mpiexec
/usr/local/bin/mpiexec
root@pythagoras:/home/gsamaras/mpich-3.1.4# which mpirun
/usr/local/bin/mpirun
我找到了这个 mpich-3.0.4-README,他似乎提供了解决方案。
长话短说,它说(它假设你想构建 3.0.4 版本,我用 3.1.4(可用 here)做到了):
tar xzf mpich-3.0.4.tar.gz
cd mpich-3.0.4
// you might want to disable fortran compiler (see the README I linked above)
./configure --prefix=/home/<USERNAME>/mpich-install 2>&1 | tee c.txt
make 2>&1 | tee m.txt
make install 2>&1 | tee mi.txt
PATH=/home/<USERNAME>/mpich-install/bin:$PATH ; export PATH
which mpicc
// should return something reasonable (with your directory)
mpiexec -n 2 ./examples/cpi
现在,机器文件的选项不起作用,因为 ssh 需要密码,但这是另一个问题。
您已安装到 /usr/local,这是一种不错的处理方式。您遵循的 README 说明建议了另一种不需要管理权限的方法。
我喜欢安装到 /home/robl/soft/mpich-whatever 中,所以我可以有不同的编译器、版本、配置等。这种灵活性对你来说可能有点过分了,但这是一种策略。
针对您的问题:
root@pythagoras:/home/gsamaras/mpich-3.1.4# mpich2version
bash: mpich2version: command not found
首先,命令现在是 mpichversion
,而不是 mpich2version
-- 可能您是在遵循旧教程。
其次,您的 shell 可能不知道新安装的二进制文件。 hash -r
(至少在 bash 和 tcsh 上)会告诉 shell "forget about what you think you know about my file system and look harder"。
作为
./configure --disable-f77 --disable-fc --disable-fortran
[seems to be OK]
make; sudo make install
[long output with one warning]
libtool: warning: relinking 'lib/libmpicxx.la'
root@pythagoras:/home/gsamaras/mpich-3.1.4# mpich2version
bash: mpich2version: command not found
我做错了什么?请注意,我首先使用 apt-get 安装了 MPICH2,为了删除它,我做了:
apt-get remove --purge mpich2
apt-get autoremove // which might removed something that I need now
明天,我将尝试这个:Getting And Building MPICH(第一次尝试在 autogen.sh 部分失败)。
EDIT_1:
我无法让它工作,将尝试结合使用这两个教程并报告。我做了一个配置,然后从另一个教程中制作,也失败了。
EDIT_2
这可能会掩盖它的安装位置(按照第一个教程):
root@pythagoras:/home/gsamaras/mpich-3.1.4# which mpiexec
/usr/local/bin/mpiexec
root@pythagoras:/home/gsamaras/mpich-3.1.4# which mpirun
/usr/local/bin/mpirun
我找到了这个 mpich-3.0.4-README,他似乎提供了解决方案。
长话短说,它说(它假设你想构建 3.0.4 版本,我用 3.1.4(可用 here)做到了):
tar xzf mpich-3.0.4.tar.gz
cd mpich-3.0.4
// you might want to disable fortran compiler (see the README I linked above)
./configure --prefix=/home/<USERNAME>/mpich-install 2>&1 | tee c.txt
make 2>&1 | tee m.txt
make install 2>&1 | tee mi.txt
PATH=/home/<USERNAME>/mpich-install/bin:$PATH ; export PATH
which mpicc
// should return something reasonable (with your directory)
mpiexec -n 2 ./examples/cpi
现在,机器文件的选项不起作用,因为 ssh 需要密码,但这是另一个问题。
您已安装到 /usr/local,这是一种不错的处理方式。您遵循的 README 说明建议了另一种不需要管理权限的方法。
我喜欢安装到 /home/robl/soft/mpich-whatever 中,所以我可以有不同的编译器、版本、配置等。这种灵活性对你来说可能有点过分了,但这是一种策略。
针对您的问题:
root@pythagoras:/home/gsamaras/mpich-3.1.4# mpich2version
bash: mpich2version: command not found
首先,命令现在是 mpichversion
,而不是 mpich2version
-- 可能您是在遵循旧教程。
其次,您的 shell 可能不知道新安装的二进制文件。 hash -r
(至少在 bash 和 tcsh 上)会告诉 shell "forget about what you think you know about my file system and look harder"。