作者:谁的板砖在飞 | 来源:互联网 | 2023-08-07 16:16
此方法只是利用了matlab的设定,不需要额外知识。
众所周知,matlab是单线程的,但matlab的每个应用窗口都是一个线程,因此可以同时开启多个MATLAB跑程序,占满CPU的所有core。
例如处理多个文件的计算,单线程会很慢,所占内存却不多,这时可以写4个m文件,在四个MATLAB应用里同时跑,使得速度翻倍。每个MATLAB应用里的变量都是独立的,因此计算完全不会互相影响。


这就类似于开多个窗口刷视频播放。
如果并行需要简单的交互,可以写一个通信文件,让所有的M文件都读写这个文件,这样互相之间就知道别的M文件跑到哪里了。
如果更复杂就要按MPI的通信方式写了,包括不同core之间的通信和变量的传递。
此法适合临时需要跑一些简单却需要大量重复计算的任务,不适合需要交互并行的大任务。