17.2.92. MPI错误
所有MPI例程(除了MPI_Wtime和MPI_Wtick)都会返回一个错误值;C语言例程通过函数返回值返回,Fortran例程通过最后一个参数返回。在返回值之前,会调用当前的MPI错误处理程序。默认情况下,该错误处理程序会中止MPI作业。可以通过MPI_Comm_set_errhandler来更改错误处理程序;预定义错误处理程序MPI_ERRORS_RETURN可用于使错误值被返回。请注意,MPI不保证MPI程序在出错后能够继续执行。
有关Open MPI错误代码的更多信息,请参阅include目录中的mpi.h文件。
Open MPI的标准错误返回类:
错误名称 |
数值 |
描述 |
|---|---|---|
MPI_SUCCESS |
0 |
成功返回码。 |
MPI_ERR_BUFFER |
1 |
无效的缓冲区指针。 |
MPI_ERR_COUNT |
2 |
无效的计数参数。 |
MPI_ERR_TYPE |
3 |
无效的数据类型参数。 |
MPI_ERR_TAG |
4 |
无效的标签参数。 |
MPI_ERR_COMM |
5 |
无效的通信器。 |
MPI_ERR_RANK |
6 |
无效的等级。 |
MPI_ERR_REQUEST |
7 |
无效的MPI_Request句柄。 |
MPI_ERR_ROOT |
8 |
无效的根节点。 |
MPI_ERR_GROUP |
9 |
向函数传递了空组。 |
MPI_ERR_OP |
10 |
无效操作。 |
MPI_ERR_TOPOLOGY |
11 |
无效的拓扑结构。 |
MPI_ERR_DIMS |
12 |
非法的维度参数。 |
MPI_ERR_ARG |
13 |
无效参数。 |
MPI_ERR_UNKNOWN |
14 |
未知错误。 |
MPI_ERR_TRUNCATE |
15 |
接收消息时被截断。 |
MPI_ERR_OTHER |
16 |
其他错误;请使用Error_string。 |
MPI_ERR_INTERN |
17 |
内部错误代码。 |
MPI_ERR_IN_STATUS |
18 |
在状态中查找错误值。 |
MPI_ERR_PENDING |
19 |
待处理的请求。 |
MPI_ERR_ACCESS |
20 |
权限被拒绝。 |
MPI_ERR_AMODE |
21 |
传递给open的amode不被支持。 |
MPI_ERR_ASSERT |
22 |
无效断言。 |
MPI_ERR_BAD_FILE |
23 |
无效的文件名(例如,路径名过长)。 |
MPI_ERR_BASE |
24 |
无效的基础值。 |
MPI_ERR_CONVERSION |
25 |
用户提供的数据转换函数中发生错误。 |
MPI_ERR_DISP |
26 |
无效的位移量。 |
MPI_ERR_DUP_DATAREP |
27 |
无法注册转换函数,因为向MPI_Register_datarep传递了已定义的数据表示标识符。 |
MPI_ERR_FILE_EXISTS |
28 |
文件已存在。 |
MPI_ERR_FILE_IN_USE |
29 |
文件操作无法完成,因为该文件当前已被某个进程打开。 |
MPI_ERR_FILE |
30 |
无效的文件句柄。 |
MPI_ERR_INFO_KEY |
31 |
非法信息键。 |
MPI_ERR_INFO_NOKEY |
32 |
无此键值。 |
MPI_ERR_INFO_VALUE |
33 |
非法的信息值。 |
MPI_ERR_INFO |
34 |
无效的信息对象。 |
MPI_ERR_IO |
35 |
输入/输出错误。 |
MPI_ERR_KEYVAL |
36 |
非法的键值。 |
MPI_ERR_LOCKTYPE |
37 |
无效的锁类型。 |
MPI_ERR_NAME |
38 |
未找到名称。 |
MPI_ERR_NO_MEM |
39 |
内存耗尽。 |
MPI_ERR_NOT_SAME |
40 |
集合参数在所有进程中不一致,或不同进程以不同顺序调用了集合例程。 |
MPI_ERR_NO_SPACE |
41 |
Not enough space. |
MPI_ERR_NO_SUCH_FILE |
42 |
文件(或目录)不存在。 |
MPI_ERR_PORT |
43 |
无效端口。 |
MPI_ERR_PROC_ABORTED |
74 |
操作失败,因为远程节点已中止。 |
MPI_ERR_QUOTA |
44 |
超出配额限制。 |
MPI_ERR_READ_ONLY |
45 |
只读文件系统。 |
MPI_ERR_RMA_CONFLICT |
46 |
对窗口的访问冲突。 |
MPI_ERR_RMA_SYNC |
47 |
错误的RMA同步。 |
MPI_ERR_SERVICE |
48 |
无效的发布/取消发布操作。 |
MPI_ERR_SIZE |
49 |
无效的大小。 |
MPI_ERR_SPAWN |
50 |
生成进程时出错。 |
MPI_ERR_UNSUPPORTED_DATAREP |
51 |
传递给MPI_File_set_view的数据表示格式不受支持。 |
MPI_ERR_UNSUPPORTED_OPERATION |
52 |
不支持的操作,例如在仅支持顺序访问的文件上进行查找。 |
MPI_ERR_WIN |
53 |
无效的窗口。 |
MPI_T_ERR_MEMORY |
54 |
Out of memory. |
MPI_T_ERR_NOT_INITIALIZED |
55 |
接口未初始化。 |
MPI_T_ERR_CANNOT_INIT |
56 |
接口未处于可初始化状态。 |
MPI_T_ERR_INVALID_INDEX |
57 |
枚举索引无效。 |
MPI_T_ERR_INVALID_ITEM |
8 |
查询的项目索引超出范围。 |
MPI_T_ERR_INVALID_HANDLE |
59 |
句柄无效。 |
MPI_T_ERR_OUT_OF_HANDLES |
60 |
无更多可用句柄。 |
MPI_T_ERR_OUT_OF_SESSIONS |
61 |
没有可用的会话。 |
MPI_T_ERR_INVALID_SESSION |
62 |
会话参数不是有效的会话。 |
MPI_T_ERR_CVAR_SET_NOT_NOW |
63 |
当前无法设置该变量。 |
MPI_T_ERR_CVAR_SET_NEVER |
64 |
变量在执行结束前无法被设置。 |
MPI_T_ERR_PVAR_NO_STARTSTOP |
65 |
变量无法启动或停止。 |
MPI_T_ERR_PVAR_NO_WRITE |
6 |
变量无法写入或重置。 |
MPI_T_ERR_PVAR_NO_ATOMIC |
67 |
变量无法以原子方式读写。 |
MPI_ERR_RMA_RANGE |
68 |
目标内存不属于窗口范围(对于使用MPI_Win_create_dynamic创建的窗口,目标内存未附加) |
MPI_ERR_RMA_ATTACH |
69 |
无法附加内存(例如由于资源耗尽)。 |
MPI_ERR_RMA_FLAVOR |
70 |
传递的窗口对于被调用的函数具有错误类型。 |
MPI_ERR_RMA_SHARED |
71 |
内存无法共享(例如,指定通信器组中的某些进程无法暴露共享内存)。 |
MPI_T_ERR_INVALID |
72 |
接口使用无效或参数值错误。 |
MPI_T_ERR_INVALID_NAME |
73 |
变量或类别名称无效。 |
MPI_ERR_SESSION |
78 |
无效会话 |
MPI_ERR_LASTCODE |
93 |
最后一个错误代码。 |