MPI,Pthreads和OpenMP等并行实验环境配置
(假设你已按照文档前面的步骤正确安装了 VMware 和 Ubuntu 20.04)
第一部分:安装 C++/OpenMP/Pthreads 环境(修正后)
-
打开终端: 在 Ubuntu 中启动终端应用程序。
-
更新软件包列表:
sudo apt update
(提示时输入你的用户密码
-
安装编译工具: 这会安装 gcc, g++, make 以及必要的开发库,其中包含了对 OpenMP 和 Pthreads 的基础支持。
sudo apt install build-essential
-
验证 GCC 安装(可选):
gcc --version
-
关于 OpenMP: GCC 自带 OpenMP 支持。要编译使用 OpenMP 的代码,必须在编译和链接时添加 -fopenmp 标志。例如:gcc -fopenmp my_openmp_code.c -o my_openmp_program
-
关于 Pthreads: Pthreads 库 (libpthread) 是 build-essential 提供的标准 C 库 (glibc) 的一部分。要编译使用 Pthreads 的代码,添加 -pthread 标志。例如:gcc my_pthread_code.c -o my_pthread_program -pthread
-
第二部分:安装 MPI 环境(MPICH 4.3.0 - 修正后)
-
下载 MPICH:
-
访问 MPICH 官方下载页面:https://www.mpich.org/downloads/
-
找到最新稳定版本的链接(例如 mpich-4.3.0.tar.gz)。
-
打开终端,切换到你想要下载文件的目录(例如,下载文件夹:cd ~/Downloads),然后使用 wget 下载:
# 如果有更新的稳定版本,请替换下面的 URL wget https://www.mpich.org/static/downloads/4.3.0/mpich-4.3.0.tar.gz
-
-
解压压缩包: (无需 sudo)
tar -zxvf mpich-4.3.0.tar.gz
-
进入源码目录:
cd mpich-4.3.0
-
配置构建过程: (以普通用户身份运行,无需 sudo)
-
选择一个安装目录。推荐安装在你的主目录下,这样安装时就不需要 sudo。例如:$HOME/mpi/mpich-4.3.0。
-
运行配置脚本,指定安装前缀 (--prefix) 并禁用 Fortran(除非你需要它并且已经安装了 gfortran)。
mkdir -p $HOME/mpi ./configure --prefix=$HOME/mpi/mpich-4.3.0 --disable-fortran
-
(等待配置过程完成。它会详细检查你的系统环境。)
-
-
编译 MPICH: (以普通用户身份运行,无需 sudo)
-
-j N 标志可以通过使用 N 个并行任务来加速编译。将 N 替换为你分配给虚拟机的 CPU 核心数(例如,按文档是 4)。
make -j4
-
(这一步会花费一些时间。)
-
-
安装 MPICH: (以普通用户身份运行,无需 sudo,因为安装目录在你的主目录下)
make install
-
配置环境变量:
-
打开你的 .bashrc 文件进行编辑(无需 sudo):
gedit ~/.bashrc
-
滚动到文件末尾,添加以下行(如果你选择了不同的安装前缀,请相应修改 MPI_ROOT 的路径):
# MPICH Environment Settings export MPI_ROOT=$HOME/mpi/mpich-4.3.0 export PATH=$MPI_ROOT/bin:$PATH export LD_LIBRARY_PATH=$MPI_ROOT/lib:$LD_LIBRARY_PATH export MANPATH=$MPI_ROOT/man:$MANPATH
-
保存文件并关闭 gedit。
-
-
应用环境变量更改: 让刚才的修改在当前终端会话中生效:
source ~/.bashrc
(或者,关闭当前终端,然后重新打开一个新的终端。)
-
验证安装: 检查系统是否能找到 MPICH 的命令和库:
which mpicc which mpiexec mpicc --version
-
你应该能看到指向你安装目录的路径(例如 /home/你的用户名/mpi/mpich-4.3.0/bin/mpicc)以及版本信息。
-
-
运行示例进行测试:
-
切换到你之前解压的 MPICH 源代码 目录下的 examples 文件夹:
# 假设你还在 ~/Downloads/mpich-4.3.0 目录下,或者切换回去 cd examples
-
使用 4 个进程运行 cpi(计算 Pi)示例:
mpiexec -n 4 ./cpi
-
你应该会看到类似以下的输出:
Process 0 of 4 is on 你的主机名 Process 1 of 4 is on 你的主机名 Process 2 of 4 is on 你的主机名 Process 3 of 4 is on 你的主机名 pi is approximately 3.1415926544231239, Error is 0.0000000008333307 wall clock time = 0.xxxxxx
-
这样就完成了在你的 Ubuntu 虚拟机上针对 C++, OpenMP, Pthreads, 以及 MPICH 4.3.0 的环境配置。