flowchart LR
mpi(MPI)
bg(Begin)
init[MPI_Init]
comm(Communicator)
commp(MPI_Comm_rank </br> MPI_Comm_size)
gp(Group)
commgp(MPI_Comm_Split </br> MPI_Comm_rank)
parad(Paradigm)
pp(Point-Point)
ppb(MPI_Send </br> MPI_Recv</br> MPI_Sendrecv)
ppnb(MPI_ISend </br> MPI_IRecv</br> MPI_Wait </br> MPI_Test)
cl(Collective)
clb(MPI_Bcast </br> MPI_Reduce)
sy(Synchronization)
syb(MPI_Barrier)
time(Wall time)
mtime(MPI_Wtime)
type(Type)
mtype(MPI_Type_Vector </br> MPI_Type_Commit </br> MPI_Type_Indexed)
ed(End)
final[MPI_Finalize]
mpi --> bg --> init
mpi --> comm --> commp
comm --> gp --> commgp
mpi --> parad
parad --> pp --> |Blocking| ppb
pp --> |Non-Blocking| ppnb
parad --> cl --> clb
mpi --> sy --> syb
mpi --> time --> mtime
mpi --> type --> mtype
mpi --> ed
ed --> final
Compile
Environment
安装 OpenMPI
1 2 3 4 5 6 7 8
# download release package wget https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-5.0.6.tar.gz tar -xvf openmpi-5.0.6.tar.gz # build cd openmpi-5.0.6 && mkdir build && cd build ../configure --prefix=$HOME/Program/OpenMPI/build 2>&1 | tee config.out make -j 8 all 2>&1 | tee make.out make install 2>&1 | tee install.out