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