最近我有权访问群集上运行我的代码。我的代码是完全并行的,但我不知道如何最好地利用其并行性。我必须计算一个大矩阵的元素,并且每个元素都独立于其他元素。我想提交作业在几台机器(如100)上运行,以加速矩阵的计算。matlab与sge分布式计算(qsub)
现在,我写了一个脚本来提交多个作业,每个作业负责计算矩阵的一部分并将其保存在.mat文件中。最后,我正在合并它们以获得整个矩阵。为了提交每个单独的作业,我创建了一个新的.m文件(run1.m,run.2,...)来设置一个变量,然后运行函数来计算矩阵中的关联部分。所以基本run1.m是
id=1;compute_dists_matrix
然后compute_dists_matrix使用id找到它将要计算的部分。然后,我编写了一个脚本,通过run60.m创建run1.m,并将它们置于集群中。
我想知道是否有更好的方法来使用MATLAB的一些功能来做这个例子。因为这似乎是一个非常典型的任务。