Parallel Computing Toolbox

主要特性

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

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

编写并行应用程序

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

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

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

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

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

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

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

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

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

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

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

使用 GPU 加速 MATLAB 计算

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

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

使用 MATLAB 进行 GPU 计算。

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

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

借助 Parallel Computing Toolbox,可以使用多达 12 个 worker 在多核计算机上本地执行并行应用程序。结合 MATLAB Distributed Computing Server 使用该工具箱,可以在大规模计算资源(比如计算机集群或网格以及云计算服务)上运行使用更多 worker 的应用程序。该服务器还支持交互式和批处理工作流。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

试用 Parallel Computing Toolbox

获取试用版软件

MATLAB快速雷达系统设计与仿真

观看网上技术交流会录像