---
title: 矩阵描述符
description: "一个通用的分布矩阵A（M_ × N_）由它的维度、用于其分解的基本MB_ × NB_块的大小、在其本地内存中具有第一个矩阵条目（RSRC_，CSRC_）的进程的坐标和BLACS定义此矩阵的上下文（CTXT_）决定。此外，本地前导维度LLD_与指向用于本地存储该分布式矩阵的数据结构的本地内存地址相关联。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengaccel/math-lib/devg-kml/kunpengaccel_kml_0748.html
sourcePath: /source/zh/kunpengaccel/math-lib/devg-kml/kunpengaccel_kml_0748.html
indexId: f828cf5bd346ef89384b8e22b8aa44c3bfbcc85064d35868246b4e6e88eab70068
---
# 矩阵描述符

#### 密集矩阵

一个通用的分布矩阵A（M_ × N_）由它的维度、用于其分解的基本MB_ × NB_块的大小、在其本地内存中具有第一个矩阵条目（RSRC_，CSRC_）的进程的坐标和BLACS定义此矩阵的上下文（CTXT_）决定。此外，本地前导维度LLD_与指向用于本地存储该分布式矩阵的数据结构的本地内存地址相关联。

| 描述符名称 | 范围 | 定义 |
| --- | --- | --- |
| DTYPE\_A | 全局 | 表示矩阵的类型。 |
| CTXT\_A | 全局 | BLACS上下文句柄，表示全局矩阵A在进程网格上的分布。 |
| M\_A | 全局 | 矩阵A的全局行数。 |
| N\_A | 全局 | 矩阵A的全局列数。 |
| MB\_A | 全局 | 用于分配行的分块因子。 |
| NB\_A | 全局 | 用于分配列的分块因子。 |
| RSRC\_A | 全局 | 分布在矩阵A的第一行的进程行。 |
| CSRC\_A | 全局 | 分布在矩阵A的第一列的进程列。 |
| LLD\_A | 本地 | 本地矩阵的前导维度。 |


矩阵描述符通过descinit_接口初始化。

```
int descA[9];
descinit_( descA,  &m, &n, &mb, &nb, &rsrc, &csrc, &ctxt, &lldA, &info);
```

其中，m和n表示全局矩阵行和列，mb和nb表示矩阵分块的大小，rsrc和csrc表示全局矩阵第一个元素(0,0)所在进程在进程网格中的位置，因此有0 <= rsrc < nprow，0 <= csrc< npcol。ctxt即为包含进程网格信息的上下文句柄，info是scalapack函数的返回值，用来表示函数调用是否报错及报错原因。
