1

我可以访问运行 Torque 的集群,但不能选择安装 MATLAB 分布式计算引擎。我想知道是否可以在 MATLAB 中使用 MPI 命令而无需分布式数组等额外功能。如果您没有分布式计算引擎,是否可以将 MATLAB lab* 命令与 mpirun 命令结合使用?

4

1 回答 1

3

如果您的 MPI 实现是 Open MPI,您可以使用 Poor Man's Parallel Toolbox (tm),它允许您在许多节点上并行运行许多 MATLAB 实例,并让它们中的每一个执行不同的操作,例如运行不同的脚本。成功的关键在于 Open MPI 会在环境变量中导出当前进程的等级,OMPI_COMM_WORLD_RANK并且可以使用一个简单的 shell 脚本来环绕执行。这是一个示例:

#!/bin/bash

file_num=script$(printf "%03d" $(($OMPI_COMM_WORLD_RANK + 1))).m
matlab < $file_num

可以将其启动为:

mpiexec -np 24 ./script.sh

这将启动 24 个 MATLAB 副本,每个副本都接收来自不同脚本的输入。第一个将从 获取命令script001.m,第二个从获取命令script002.m,依此类推。

当然,您总是可以用 C 或 C++ 甚至 Fortran 编写并行代码,并在那里使用 MPI。然后将代码编译成一个共享库,可从 MATLAB 加载和调用。

于 2012-10-22T16:35:41.400 回答