分布式数组
使用分布式数组和同时执行功能并行分析大数据集
Parallel Computing Toolbox™ 支持分布式数组,以对大型数组进行分区到多个 MATLAB® 工作单元上。您可以将整个数组作为单个实体进行操作,但是,工作单元仅对其所属的数组部分进行操作,并在必要时自动在它们之间传输数据。单程序多数据 (spmd) 语言构造支持同时执行,有助于工作单元之间的通信。使用分布式矩阵运算和函数可直接处理这些数组,而无需进一步修改。您可以使用 Parallel Computing Toolbox 中的分布式数组,利用集群总内存来运行大数据应用程序。
函数
类
主题
分布式数组
- 创建和使用分布式数组
当您的数据数组太大而无法放入单台计算机的内存时,您可以创建一个distributed数组。 - 使用分布式数组运行 MATLAB 函数
对分布式数组进行操作的 MATLAB 函数。 - 将数组分发给并行工作单元
使用datastore或distributed创建分布式数组并在您的工作单元之间划分数据。 - 非分布式与分布式数组
描述在通信作业中使用的各种类型的数组。 - 使用分布式数组通过直接方法求解线性方程组
此示例显示如何使用分布式数组的直接方法并行求解形式为 的线性方程组。 - 使用分布式数组通过迭代方法求解线性方程组
对于大规模数学计算,迭代方法比直接方法更有效。此示例显示如何使用分布式数组和迭代方法并行求解形式为 的线性方程组。 - 解决错误:客户端与工作单元断开连接
在并行池中运行代码时,排查“与工作单元连接丢失”错误。 (自 R2026a 起)
单程序多数据 (spmd)
- 在 spmd、parfor 和 parfeval 之间选择
将spmd与其他并行计算功能(例如parfor和parfeval)进行比较和对比。 - 在多个数据集上运行单个程序
使用spmd语句在多个数据集上运行相同的代码并控制共存分布式数组。 - 使用共存分布式数组
描述如何使用共存分布式数组进行计算。 - 使用 Composite 访问工作单元变量
MATLAB 客户端会话中的 Composite 对象让您直接访问工作单元上的数据值。您通常在spmd语句中分配这些变量。在显示和使用方面,Composite 类似于元胞数组。有两种方法可以创建 Composite: - 利用消息传递法估算圆周率
本示例展示了在spmd语句中使用消息传递的基本原理,这与《消息传递接口》(MPI) 规范中的集体操作类似。例如,在此示例中,您通过将一个积分的计算任务分配给多个工作单元来近似计算 的值,然后将各工作单元的计算结果合并,从而得到 的值。 - Train Network in Parallel with Custom Training Loop (Deep Learning Toolbox)
This example shows how to set up a custom training loop to train a network in parallel. - 遍历分布式范围(for-drange)
描述如何用共存分布式数组编写for循环。 - 使用 spmdReduce 来实现 MPI_Allreduce 的函数
本示例演示了如何在并行池中的所有工作单元上执行聚合操作,例如求和、求积、求最小值或求最大值。在消息传递接口 (MPI) 规范中,这些被称为集体操作,例如MPI_SUM、MPI_PROD、MPI_MIN和MPI_MAX。在 MATLAB ® 中,您可以使用spmdPlus、spmdCat和spmdReduce函数实现类似的功能。 - SPMD 计算中工作单元之间的通信
使用spmdSend和spmdReceive在工作单元之间交换数据,这类似于消息传递接口 (MPI) 标准中的点对点通信。 - 使用 drange 拟合分布式逻辑回归
本示例演示了如何使用分布式数组和for-drange循环对大规模数据进行逻辑回归分析。 - 利用 SPMD 计算实现并行前缀扫描
利用并行工作单元,实现一种基于 SPMD、可重用且可扩展的前缀扫描算法。 - 处理远程数据
处理 Amazon S3™、Azure® Blob 存储或 HDFS™ 中的远程数据。





