% 提交工作给jobmanager。
submit(job)
% 等待所有workers都把任务做完。
waitForState(job, 'finished')
% 取出计算结果。
results = getAllOutputArguments(job);
toc
同样地,该程序runDCT.m也是放在D:\Matlab_code\testDCT中。该程序计算了
三次100维矩阵的加法1000000次,即算了100维矩阵的加法3000000次。如果在单机上运行:
>> tic, a = hp(3000000, 100); toc
Elapsed time is 63.096369 seconds.
而使用三台机作分布式计算时:
>> runDCT
Elapsed time is 24.323556 seconds.
效率有明显的提升。但注意到,当第一次进行分布式计算时,其他几台机要从Z:\testDCT中读取原程序文件,会使得计算速度降低。
总结来说,Matlab的Distributed Computing Toolbox为我们提供了一种简便的分布式或并行式计算的实现方法。以上所写的是为了对DCT具体做法的整个过程做一次简单的介绍,可能很粗糙和存在许多谬误,敬请指正。