从源代码构建 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"。