每年的题目都不一样,2022级实验随手笔记,只有环境搭建和基础知识,主播的实现肯定是不给你们看的,等课程结束后会上传实验资源。
一、搭建linux环境
主播用的ssh+虚拟机,目前用着最顺手的,解决了自己以前不爱用linux的习惯
且实测linux和windows编译不互通
二、安装并行编程软件
并行编程包括MPI,Pthreads,OpenMP
MPI(Message Passing Interface),由其字面意思也可些许看出,是一个信息传递接口。可以理解为是一种独立于语言的信息传递标准。而OpenMPI和MPICH等是对这种标准的具体实现。也就是说,OpenMPI和MPICH这类库是具体用代码实现浏MPI标准。因此我们需要安装OpenMPI或者MPICH去实现我们所学的MPI的信息传递标准。
确保自己安装了gcc编译器
which gcc
2.1自动安装mpich
sudo apt install mpich
执行mpichversion看是否成功
2.2手动安装mpich
如果你自动安装失败的话,请参考以下手动安装方式
wget https://www.mpich.org/static/downloads/4.3.0/mpich-4.3.0.tar.gz
tar -zxvf mpich-4.3.0.tar.gz
cd mpich-4.3.0/
./configure --prefix=/usr/local/mpich430 --disable-fortran#不编译fortran程序
make
make install
#修改环境变量
export PATH=“/usr/local/mpi-4.3.0/bin$PATH”
source /.bashrc
检查是否安装成功
cd ~
mkdir test_mpi
cd test_mpi
nano hello.c
在其中输入
#include <mpi.h>
#include <stdio.h>
int main(int argc, char** argv) {
MPI_Init(NULL, NULL);
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
printf("Hello from rank %d of %d\n", world_rank, world_size);
MPI_Finalize();
}
这是一个简单的MPI程序,它在每个MPI进程中打印“Hello from rank x of y”信息,其中x是进程的排名,y是进程的总数。
保存并退出文件编辑器,然后编译示例程序:
mpicc -o hello hello.c
这将使用MPI编译器编译示例程序,并生成可执行文件hello。
运行示例程序:
mpirun -np 4 ./hello
这将启动4个MPI进程,并在每个进程中