Multithreading Matlab中的多线程技术
我有以下程序流程,带有一个大的数据块Multithreading Matlab中的多线程技术,multithreading,matlab,Multithreading,Matlab,我有以下程序流程,带有一个大的数据块D S1 -> S2 -> S3 -> S4 其中S1和S4都是读写DS2和S3都只读取D 现在我想在matab S1 -> S2 -> Wait for S2 and S3 to finish -> S4 | | +-> S3 -+ 其中,S2和S3并行执行。我的问题是如何在不复制D的情况下实现这一点,因为这是不必要的(不需要锁定),而且它很大。使用Matlab代码是不可能
D
S1 -> S2 -> S3 -> S4
其中S1
和S4
都是读写D
<代码>S2和S3
都只读取D
现在我想在matab
S1 -> S2 -> Wait for S2 and S3 to finish -> S4
| |
+-> S3 -+
其中,
S2
和S3
并行执行。我的问题是如何在不复制D
的情况下实现这一点,因为这是不必要的(不需要锁定),而且它很大。使用Matlab代码是不可能的。matlab中没有多线程
存在并行计算工具箱,但该工具箱使用多个进程,这需要至少将D的已使用部分复制到工作人员
<> P>多线程的惟一实现是将S2和S3作为一个MEX函数(C或C++代码),使用OpenMP或类似的方法。我可能错了,但据我所知,Matlab在内部执行了一些多线程处理,例如使用figure回调和
uiwait
。我想知道是否有人可以利用它在Matlab中“模拟”多线程……使用uiwait
可能会得到与基于timer
提出的解决方案相同的结果