Building and installing mpich-4.1a1 on a Raspberry Pi 4. The build will be performed in /opt/hpc/rpi/mpi/mpich/4.1a1/bld and the installaton location will be /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 needs to match the network. Without specification it might look like:
./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:
./configure --prefix=$PFX --with-device=ch3:sock
...
*****************************************************
***
*** device configuration: ch3:sock
***
*****************************************************
Configuration completed.
In case you follow those different configure experiments make sure before compiling that configure is executed from a clean archive.
make -j 4
make install
| Version | Date | Notes |
|---|---|---|
| 0.1.1 | 2022-06-20 | Change dir structure |
| 0.1.0 | 2022-06-18 | Initial release |