主要特性

  • 并行 for循环 (parfor),可以在多个处理器上运行任务并行算法
  • 支持启用 CUDA 的 NVIDIA GPU
  • 通过本地运行的 worker 充分利用台式机的多核处理器
  • 计算机集群和网格支持(使用 MATLAB Distributed Computing Server)
  • 以交互方式和批量方式执行并行应用程序
  • 适用于大数据集的操作和数据并行算法的分布式数组和单程序多数据 (spmd) 结构

采用 MATLAB 的并行计算。可以使用 Parallel Computing Toolbox,通过该工具箱中提供的本地 worker,在多核台式机上运行应用程序,借力 GPU 的优势,以及扩展至集群(借助 MATLAB Distributed Computing Server)。


编写并行应用程序

Parallel Computing Toolbox 提供多种高级编程结构,可让您对应用程序进行转换,以利用配备多核处理器和 GPU 的计算机。对于并行 for循环 (parfor) 以及通过抽象您的 MATLAB 会话与您所使用的计算资源之间管理计算和数据的复杂性,支持适于分布式处理和 GPU 计算的特殊数组类型等,简化并行代码的开发。

可以在各种计算资源上运行同一应用程序,而无需重新编程。该并行将以相同的方式构造函数,而不管运行应用程序所依赖的资源 - 多核台式机(使用该工具箱)或计算机集群等较大的资源(将工具箱与 MATLAB Distributed Computing Server 配合使用)。


在其它 MathWorks 产品中使用内置并行算法

几款 MathWorks 产品的主要功能已经内置了并行算法。有了 Parallel Computing Toolbox,可以综合可用的并行计算资源进行分布计算,使您不仅可以加快基于 MATLAB 和 Simulink 的分析或仿真任务,还可以加快大型 Simulink 模型的代码生成速度。您不必编写并行代码便可利用这些功能。

在 MathWorks 产品中使用内置并行算法。内置并行算法可以加快 MATLAB 和 Simulink 计算,还可以加快从 Simulink 模型生成代码。


通过并行任务加速应用程序的执行

可以通过将应用程序划分成独立的 任务 (工作单元)并让多个任务同时执行来加快某些应用程序执行的速度。此类并行任务应用程序包括设计优化仿真、BER 测试、Monte Carlo 仿真以及大量数据文件的重复分析。

该工具箱提供了 parfor,一个并行 for循环结构,可以将独立的任务自动分布于多个 MATLAB worker (独立于台式机 MATLAB 会话运行的 MATLAB 计算引擎)。此结构会自动检测是否存在 worker,如果不存在,则会还原为串行方式。也可以使用其他方法设置任务的执行,如直接控制工具箱中的 task 对象。

对任务并行应用程序使用并行 for 循环。可以在 MATLAB 脚本和函数中使用并行 for 循环,并以交互和脱机方式执行。


使用 GPU 加速 MATLAB 计算

Parallel Computing Toolbox 提供 GPUArray,这是一个具有多个关联函数的特殊数组类型,可让您直接从 MATLAB 在启用 CUDA 的 NVIDIA GPU 上执行计算。支持的函数包括 fft、元素级运算和几种线性代数运算,如 lumldivide(也称作反除运算符 (\))。该工具箱还提供一种机制,可让您直接从 MATLAB 使用现有的基于 CUDA 的 GPU 内核。

了解关于使用 MATLAB 进行 GPU 计算的详细信息。

使用 MATLAB 进行 GPU 计算。使用 GPUArrays 和启用 GPU 的 MATLAB 函数,有助于加速 MATLAB 运算,而无需进行低级的 CUDA 编程。


使用 MATLAB Distributed Computing Server 扩展至集群、网格和云

Parallel Computing Toolbox 提供了在您的多核台式机上本地运行 MATLAB worker 以执行您的并行应用程序的能力,让您能够充分利用台式机的计算能力。结合 MATLAB Distributed Computing Server 使用该工具箱,可以在大规模计算资源(比如计算机集群或网格以及云计算资源)上运行应用程序

本研讨会介绍了康奈尔大学海洋生物声学研究项目数据的科学家们如何使用 MATLAB ® 开发高性能的计算软件来处理和分析数 T 字节的声学数据。

使用 MATLAB Distributed Computing Server 在集群上运行基因调控模型。该服务器会启用使用 Parallel Computing Toolbox 开发的应用程序,以利用计算机集群解决大型的问题。


使用工具箱和 MATLAB Distributed Computing Server 实现数据并行应用程序

Parallel Computing Toolbox 中的分布式数组是特殊的数组,此类数组可容纳的数据量是台式计算机的内存 (RAM) 可容纳的数据量的若干倍。分布式数组会把数据分配给集群中运行的多个 MATLAB worker 进程(使用 MATLAB Distributed Computing Server)。因此,通过分布式数组,可以克服台式计算机的内存限制,解决需要操作特大矩阵的问题。

通过可用于操作分布式数组的 240 多个函数,您可以像 MATLAB 数组那样与这些数组进行交互,并且可以在 worker 上远程操作可用的数据,而无需进行低级的 MPI 编程。可用的函数包括基于 ScaLAPACK 的线性代数例程,如 mldivide(也称作反除运算符 (\))。 luchol以及用于与 MAT 文件之间移动分布式数据的函数。

Parallel Computing Toolbox 还扩展了内置到 MATLAB 中的 mapreduce 功能,让您能够在本地 worker 上运行基于 mapreduce 的应用程序,以提高性能。通过将此工具箱与 MATLAB Distributed Computing Server 配合使用,在 Hadoop 集群上运行并行 mapreduce ,可以进一步扩展这些应用程序。

为了对并行化方案进行细粒度的控制,该工具箱提供了单程序多数据 (spmd) 结构和基于 MPI 标准库 (MPICH2) 的多个消息传递例程。使用 spmd 结构,可以指定代码区段,跨参与并行计算的不同 worker 同时运行。在程序执行过程中, spmd 会自动将在其内部使用的数据和代码传输给 worker,并在执行完毕后将结果返回给 MATLAB 客户端会话。用于发送、接收、广播、同步、以及探测操作的消息传递函数均可用。

使用分布式数组进行编程。利用分布式数组和并行算法,仅需对代码做最少的更改即可创建数据并行的 MATLAB 程序,且无需使用 MPI 编程。


以交互方式和作为批处理作业运行并行应用程序

您可以使用 Parallel Computing Toolbox 以交互方式或批处理方式执行并行应用程序。使用 parpool 命令,可以将您的 MATLAB 会话连接到 MATLAB worker 池,这些 worker 既可在台式机上本地运行(使用该工具箱),也可在计算机集群上运行(使用 MATLAB Distributed Computing Server)),从而设置专用的交互式并行执行环境。您可以在这些 worker 上从 MATLAB 提示符下执行并行应用程序,并在计算完成时立即获取结果,就像您在任何 MATLAB 会话中一样。

当执行时间相对较短时,适合以交互方式运行应用程序。当您的应用程序需要运行较长时间时,您可以使用该工具箱将它们设置为作为批处理作业来运行。执行大型 MATLAB 和 Simulink 应用程序时,这让您可以腾出 MATLAB 会话用于其它活动。

当您的应用程序以批处理方式执行时,您可以关闭 MATLAB 会话,稍后检索结果。该工具箱提供了多种管理脱机执行并行程序的机制,如 batch 函数和 jobtask 对象。 batch 函数和 jobtask 对象均可用于从桌面 MATLAB 会话脱离串行 MATLAB 和 Simulink 应用程序的执行。

以交互方式和作为批处理作业运行并行应用程序。您可以使用该工具箱随带的本地 worker 在工作站上,也可以使用 MATLAB Distributed Computing Server 随带的更多 worker 在计算机集群上运行应用程序。