是否可以在没有分布式计算引擎的情况下在MATLAB中访问MPI功能

时间:2012-10-22 13:23:07

标签: matlab parallel-processing mpi

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

1 个答案:

答案 0 :(得分:3)

如果您的MPI实施是Open MPI,您可以使用穷人的并行工具箱(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加载和调用的共享库。