什么是并行计算?
并行计算允许您同时执行许多计算。大问题通常可以分解成小问题,然后同时解决小问题。
考虑并行计算的主要原因是
通过分配任务并同时执行这些任务来节省时间
通过分布数据解决大数据问题
利用您的桌面计算机资源并扩展到集群和云计算
通过并行计算工具箱™,您可以做到这一点
使用交互式并行计算工具加速代码,例如
parfor
而且parfeval
使用交互式大数据处理工具来扩展您的计算,例如
分布式
,高
,数据存储
,mapreduce
使用
gpuArray
在计算机的GPU上加快计算速度使用
批处理
将计算卸给计算机集群或云计算设施
下面是一些有用的并行计算概念:
节点:独立计算机,包含一个或多个cpu / gpu。节点通过网络组成一个集群或超级计算机
线程:可由调度程序独立管理的最小指令集。在GPU、多处理器或多核系统上,多线程可以同时执行。
批处理:卸载在后台运行的函数脚本的执行
可伸缩性:随着资源的增加,并行加速会增加
MATLAB用什么工具®和并行计算工具箱提供?
MATLAB的工人:在没有图形桌面的背景下运行的MATLAB计算引擎。您可以使用并行计算工具箱中的函数来自动划分任务,并将它们分配给这些工作者以并行执行计算。您可以运行本地工作程序来利用多核桌面计算机中的所有核心。方法还可以扩展到在一个机器集群上运行您的工作程序MATLAB并行服务器™.与您交互的MATLAB会话称为MATLAB的客户.客户端用并行语言功能指导工人。
并行池:一个用MATLAB创建的并行池
parpool
或具有自动并行支持的功能。默认情况下,并行语言函数在需要时自动为您创建一个并行池。要了解更多,请参见在并行池上运行代码.对于默认的本地配置文件,工作人员的默认数量是使用单个计算线程的每个物理CPU核心一个工作人员。这是因为尽管每个物理内核可以有几个虚拟内核,但虚拟内核共享一些资源,通常包括一个共享的浮点单元(FPU)。大多数MATLAB计算都使用这个单元,因为它们是双精度浮点。将每个物理核心限制为一个worker可以确保每个worker对浮点单元具有独占访问权,这通常可以优化计算代码的性能。如果您的代码不是计算密集型的,例如,它是输入/输出(I/O)密集型的,那么可以考虑使用每个物理核心最多两个工作者。在太少的资源上运行太多的工作程序可能会影响机器的性能和稳定性。
加速:通过在多个MATLAB工作者或gpu上运行来加速代码,例如使用
parfor
,parfeval
,或gpuArray
.扩展您的数据:使用高数组和分布式数组将您的大数据跨多个MATLAB worker进行分区。要了解更多,请参见大数据处理.
异步处理:使用
parfeval
在后台执行计算任务而不等待其完成。扩展到集群和云:如果您的计算任务对本地计算机来说太大或太慢,您可以将计算卸载到现场的集群或使用云的集群MATLAB并行服务器.有关更多信息,请参见集群和云.