使用不同的MPI构建UNIX系统
构建MPI
在Linux上®和Macintosh操作系统,您可以使用不同于并行计算工具箱™提供的MPI构建。本主题概述了创建与通用调度器接口一起使用的MPI构建的步骤。如果您已经有了一个替代的MPI构建,请继续使用你的MPI构建.
将MPI源解压到计算机上的目标文件系统中。例如,假设您已经下载了
mpich2-distro.tgz
想把它拆成/ opt
为构建:# CD /opt # mkdir mpich2 && CD mpich2 # tar ZXVF path/to/mpich2-distro. #CD mpich2-1.4.1p1
方法构建MPI
启用共享
选项(这是至关重要的,因为您必须构建一个共享库MPI,二进制兼容MPICH2-1.4.1p1
为R2013b至R2018b,或MPICH3.2.1
对于R2019a和以后的版本)。例如,以下命令使用“复仇者”
通道设备和gforker
发射器。#。/configure -prefix=/opt/mpich2/mpich2-1.4.1p1 \——enable-shared——with-device=ch3:nemesis \——with-pm=gforker 2>&1 | tee log # make 2>&1 | tee -a log # make install 2>&1 | tee -a log #
使用你的MPI构建
当您的MPI构建准备就绪时,这个阶段将突出显示与通用调度器一起使用它的步骤。要使您的集群使用不同的MPI构建,请遵循以下步骤。
测试您的构建
mpiexec
可执行文件。构建应该准备好进行测试bin / mpiexec
而且lib / libmpich.so
在MPI安装位置。下面的示例构建MPI,
/ opt / mpich2 / mpich2-1.4.1p1 / bin / mpiexec
而且/ opt / mpich2 / mpich2-1.4.1p1 / lib / libmpich.so
已经准备好使用了,所以你可以用:$ /opt/mpich2/mpich2-1.4.1p1/bin/mpiexec -n 4 hostname . sh
创建一个
mpiLibConf
(并行计算工具箱)函数指示并行计算工具箱使用新的MPI。写你的mpiLibConf.m
为您的构建返回适当的信息。例如:function [primary, extras] = mpiLibConf primary = '/opt/mpich2/mpich2-1.4.1p1/lib/libmpic .so';额外的= {};
的
主要的
路径必须是有效的集群侧;和你的mpiLibConf.m
文件在集群工作者路径上的位置必须高于
.(发送matlabroot
/工具箱/并行/ mpimpiLibConf.m
作为用于此目的的附加文件不起作用。你可以得到mpiLibConf.m
通过将文件移动到路径上的文件夹中,或使用调度器,在工作者路径上执行函数cd
这样它就启动了MATLAB®Worker从包含函数的文件夹中获取。)确定必要的守护进程和命令行选项。
确定所有必要的守护进程(通常类似于
mpdboot
或smpd
).的gforker
本节中的构建示例使用了一个MPI,它不需要在集群上运行任何服务或守护进程,但它只能使用本地机器。确定要传递给的正确命令行选项
mpiexec
.
要设置集群以使用新的MPI构建,请修改通信作业包装器脚本以获取正确的
mpiexec
.此外,包装器脚本中可能有一个阶段,在那里启动MPI进程管理器守护进程。通信作业包装器脚本必须:
确定调度程序分配哪些节点。
启动所需的守护进程。例如,对于MPD进程管理器,这意味着调用
"mpdboot -f
." 定义哪些
mpiexec
可执行文件,用于启动工作程序。停止守护进程。例如,对于MPD进程管理器,这意味着调用
“mpdallexit”
.
有关通信作业包装器脚本的示例,请参见插件脚本示例(并行计算工具箱).