---
title: 数据分布
description: "SCALAPACK中的进程以进程网格的形式排列，一般情况下进程网格是2D的，当然也存在1D的进程网格。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC2/accel/kunpengaccel_kml_16_0395.html
sourcePath: /source/zh/kunpengboostkithistory/240RC2/accel/kunpengaccel_kml_16_0395.html
indexId: 5d8dd4cdfa51441459950b9e4f8b7a7816e39e7cf0817d92bbbb34ecd7a7959a76
---
# 数据分布

SCALAPACK中的进程以进程网格的形式排列，一般情况下进程网格是2D的，当然也存在1D的进程网格。

在2D网格中，若进程形成的进程网格拥有P个进程行和Q个进程列，可以用它在进程网格中的坐标表示为（p，q），其中0≤p≤P，0≤q≤Q，下面为6个节点的进程分布。


上图中进程是以行优先顺序分布至进程网格上，除此之外还可以使用列优先顺序分布至进程网格上。在默认情况下，使用行优先顺序进行进程网格映射。

当进程网格确定后，矩阵按照预先设置的分块大小mb x nb，循环往复地分配至进程网格上。下面是将矩阵分布在进程网格上，各块所在的进程编号情况：


当P或Q被设置为1时，进程网格被设置为1D，在进程网格中的坐标可以按照进程编号设置为p或者q，其中0≤p≤P或0≤q≤Q。


将相同大小的矩阵分配至该1D进程网格上，矩阵划分及每个列块所在进程编号如下图所示：


上图为将P置为1的1D进程网格的数据分布情况，在实际应用中，也可以将Q置为1，此时进程网格上的数据块以行为基本划分单元。
