主要内容

什么是并行计算?

并行计算允许您同时进行许多计算。大问题通常可以分解成小问题,然后同时解决。

考虑并行计算的主要原因是

  • 通过分配任务并同时执行来节省时间

  • 通过分布数据解决大数据问题

  • 利用您的桌面计算机资源并扩展到集群和云计算

使用并行计算工具箱™,您可以

  • 使用交互式并行计算工具加速代码,例如parfor而且parfeval

  • 使用交互式大数据处理工具来扩大您的计算,例如分布式数据存储,mapreduce

  • 使用gpuArray以加快计算机GPU上的计算速度

  • 使用批处理将计算卸载到计算机集群或云计算设施

下面是一些有用的并行计算概念:

  • 节点:独立计算机,包含一个或多个cpu / gpu。节点通过网络组成一个集群或超级计算机

  • 线程:调度程序可以独立管理的最小指令集。在GPU、多处理器或多核系统上,可以同时执行多个线程(多线程)。

  • 批处理:卸载在后台运行的函数式脚本的执行

  • 可伸缩性:增加并行加速与更多的资源的添加

MATLAB用什么工具®和并行计算工具箱提供?

  • MATLAB的工人:在没有图形桌面的情况下在后台运行的MATLAB计算引擎。您可以使用“并行计算工具箱”中的函数自动划分任务并将它们分配给这些工作者以并行地执行计算。您可以运行本地工作线程来利用多核桌面计算机中的所有核心。方法,还可以扩展以在机器集群上运行作业MATLAB并行服务器.与您交互的MATLAB会话称为MATLAB的客户.客户用并行语言功能指导工人。

  • 并行池:一个用MATLAB创建的并行池parpool或具有自动并行支持的函数。金宝app默认情况下,并行语言函数在需要时自动为您创建并行池。要了解更多信息,请参见在并行池上运行代码

    对于默认的本地配置文件,默认的worker数量是使用单个计算线程的每个物理CPU核心一个。这是因为尽管每个物理核可以有几个虚拟核,但虚拟核共享一些资源,通常包括共享浮点单元(FPU)。大多数MATLAB计算使用这个单元,因为它们是双精度浮点数。将每个物理内核限制为一个worker可以确保每个worker对浮点单元具有独占访问权,这通常可以优化计算代码的性能。如果您的代码不是计算密集型的,例如,它是输入/输出(I/O)密集型的,那么可以考虑每个物理核心使用最多两个worker。在太少的资源上运行太多的worker可能会影响机器的性能和稳定性。

  • 加速:通过在多个MATLAB worker或gpu上运行来加速代码,例如使用parforparfeval,或gpuArray

  • 扩展数据:使用高数组和分布式数组将大数据跨多个MATLAB worker进行分区。要了解更多信息,请参见大数据处理

  • 异步处理:使用parfeval在后台执行计算任务而不等待它完成。

  • 扩展到集群和云:如果您的计算任务对您的本地计算机来说太大或太慢,您可以将您的计算卸载到现场的集群或使用云计算MATLAB并行服务器.有关更多信息,请参见集群和云

相关的话题