Building and installing mpich-4.1a1
on a Raspberry Pi 4. The build is done in /opt/hpc/rpi/mpi/mpich/4.1a1/bld
and the install location is /opt/hpc/rpi/mpi/mpich/4.1a1
to control the version usage of mpich
.
As root
aptitude install gfortran automake g++ make
mkdir -p /opt/hpc/src
chown -R $USER.$USER /opt/hpc
As user
export VER=4.1a1
cd /opt/hpc/src
wget https://www.mpich.org/static/downloads/$VER/mpich-$VER.tar.gz
export PFX=/opt/hpc/rpi/mpi/mpich/$VER
mkdir -p $PFX/bld
cd $PFX/bld
tar xvzf /opt/hpc/src/mpich-$VER.tar.gz --strip-components=1
On traditional HPC
systems the device must match the network. Without specification it might look like this:
./configure --prefix=$PFX
...
*****************************************************
***
*** device : ch4:ofi (embedded libfabric)
*** shm feature : auto
*** gpu support : disabled
***
MPICH is configured with device ch4:ofi, which should work
for TCP networks and any high-bandwidth interconnect
supported by libfabric. MPICH can also be configured with
"--with-device=ch4:ucx", which should work for TCP networks
and any high-bandwidth interconnect supported by the UCX
library. In addition, the legacy device ch3 (--with-device=ch3)
is also available.
*****************************************************
Configuration completed.
With using the legacy ch3:sock
device it looks like this:
./configure --prefix=$PFX --with-device=ch3:sock
...
*****************************************************
***
*** device configuration: ch3:sock
***
*****************************************************
Configuration completed.
If you are following these various configure
experiments, make sure you run configure
from a clean archive before compiling.
make -j 4
make install
Version | Date | Notes |
---|---|---|
0.1.2 | 2023-01-26 | Improve writing |
0.1.1 | 2022-06-20 | Change dir structure |
0.1.0 | 2022-06-18 | Initial release |