我可以访问运行Torque的集群,但不能安装MATLAB Distributed Computing Engine。我想知道是否可以在MATLAB中使用MPI命令而不使用分布式阵列等额外功能。如果您没有分布式计算引擎,是否可以将MATLAB lab *命令与mpirun命令结合使用?
答案 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加载和调用的共享库。