主要内容

使用不同的MPI构建UNIX系统

构建MPI

在Linux上®和Macintosh操作系统,您可以使用不同于并行计算工具箱™提供的MPI构建。本主题概述了创建与通用调度器接口一起使用的MPI构建的步骤。如果您已经有了一个替代的MPI构建,请继续使用你的MPI构建

  1. 将MPI源解压到计算机上的目标文件系统中。例如,假设您已经下载了mpich2-distro.tgz想把它拆成/ opt为构建:

    # CD /opt # mkdir mpich2 && CD mpich2 # tar ZXVF path/to/mpich2-distro. #CD mpich2-1.4.1p1
  2. 方法构建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构建,请遵循以下步骤。

  1. 测试您的构建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
  2. 创建一个mpiLibConf(并行计算工具箱)函数指示并行计算工具箱使用新的MPI。写你的mpiLibConf.m为您的构建返回适当的信息。例如:

    function [primary, extras] = mpiLibConf primary = '/opt/mpich2/mpich2-1.4.1p1/lib/libmpic .so';额外的= {};

    主要的路径必须是有效的集群侧;和你的mpiLibConf.m文件在集群工作者路径上的位置必须高于matlabroot/工具箱/并行/ mpi.(发送mpiLibConf.m作为用于此目的的附加文件不起作用。你可以得到mpiLibConf.m通过将文件移动到路径上的文件夹中,或使用调度器,在工作者路径上执行函数cd这样它就启动了MATLAB®Worker从包含函数的文件夹中获取。)

  3. 确定必要的守护进程和命令行选项。

    • 确定所有必要的守护进程(通常类似于mpdbootsmpd).的gforker本节中的构建示例使用了一个MPI,它不需要在集群上运行任何服务或守护进程,但它只能使用本地机器。

    • 确定要传递给的正确命令行选项mpiexec

  4. 要设置集群以使用新的MPI构建,请修改通信作业包装器脚本以获取正确的mpiexec.此外,包装器脚本中可能有一个阶段,在那里启动MPI进程管理器守护进程。

    通信作业包装器脚本必须:

    • 确定调度程序分配哪些节点。

    • 启动所需的守护进程。例如,对于MPD进程管理器,这意味着调用"mpdboot -f "

    • 定义哪些mpiexec可执行文件,用于启动工作程序。

    • 停止守护进程。例如,对于MPD进程管理器,这意味着调用“mpdallexit”

    有关通信作业包装器脚本的示例,请参见插件脚本示例(并行计算工具箱)