如何通过参数传递数据在HPC集群上执行Matlab程序?

时间:2018-08-30 04:02:48

标签: matlab

我需要在HPC群集上运行MATLAB程序。我想做的是通过在参数中传递数据来运行程序。

addpath('path')
savepath 

% a and b need to be passed through an argument
c = addition(a,b);

fileID=fopen('test.txt','w');
fprintf(fileID,'Num\n');
fprintf(fileID,'%f\n',c);
fclose(fileID);

我有两个问题: 1.如何编写参数以传递数据? 2.如何在MATLAB中编写代码以获取从参数传递的数据?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用自己的参数编写一个Matlab m文件脚本(例如,此处名为 mymfile.m ),然后在群集上运行该脚本(可能需要使用Shell脚本启动)取决于您的集群)

matlab -r mymfile.m

(请注意,只能像这样运行脚本,而不能运行Matlab functions (尽管可以从脚本中调用函数))。或者,您也可以直接将纯命令显式运行为

matlab -r 'addpath('path'),savepath,c=addition(a,b); ... , exit' 

您可能会在shell脚本中传递 a b 的位置。如果您使用的是Linux群集/服务器,并且想要execute multiple parameter runs of the same Matlab script one can use xargs