使用并行工具箱创建具有有限数量的工作人员(ThreadPool)的任务/作业池

St-*_*hen 3 parallel-processing matlab

我想使用并行计算工具箱来加速一组不依赖于彼此的函数调用.为了提高效率,我希望在我的一个函数完成执行后,使用定时器函数/回调函数来连续执行更多函数.我不知道哪些会更快,所以我不能将我的一组功能划分为几个池并将它们并行设置.

换句话说,我想要一些并行执行来继续从功能池中拉出来.

我现在设置的唯一方法str2fun是使用我使用的字符串单元格数组,有更好的方法吗?

欢迎提出问题.

And*_*ein 5

没有必要自己编写这样的代码.Matlab并行工具箱能够创建具有多个作业调度程序.您可以createJob多次调用,调度程序将执行拉动.

 foos = [@foo1,@foo2,@foo3,@foo4]
 for i=1:numel(foos)
     obj = createJob();
     createTask(obj, foos(i), 1, {'your input'});
     submit(obj);
 end
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述