mpi4py.MPI.Exception: MPI_ERR_RANK: invalid rank 解决方案

2023-05-16

问题描述

今天在跟着mpi4py简单使用教程执行以下代码时:

from mpi4py import MPI
import numpy as np
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()
if rank == 0:
    data = range(10)
    comm.send(data, dest=1, tag=11)
    print("process {} send {}...".format(rank, data))
else:
    data = comm.recv(source=0, tag=11)
    print("process {} recv {}...".format(rank, data))

出现了如题目中描述的错误:

 

很不理解,于是去查找相关资料。

解决方案 

参考以下链接中描述的解决方案mpi4py - MPI_Send(100): Invalid rank has value 1 but must be nonnegative and less than 1 - Stack Overflow

在命令行中用以下方式运行代码,不再报错并产生正确的输出:

# main.py是你的文件名称
mpirun -np 2 python main.py

注意:如果你是以root身份运行的该代码,应当运行以下命令:

# main.py是你的文件名称
mpirun -np 2 --allow-run-as-root python main.py
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mpi4py.MPI.Exception: MPI_ERR_RANK: invalid rank 解决方案 的相关文章

  • Python 中的“finally”总是执行吗?

    对于Python中任何可能的try finally块 是否保证finally块总是会被执行吗 例如 假设我在except block try 1 0 except ZeroDivisionError return finally print
  • 未定义异常变量时通过引用捕获

    捕获异常时 标准指导是按值抛出 按引用捕获 据我了解 这有两个原因 如果由于内存不足异常而引发异常 我们将不会调用可能终止程序的复制构造函数 如果异常是继承层次结构的一部分 我们可能会对异常进行对象切片 如果我们有一个场景 我们没有在 ca
  • 如何将 printStackTrace() 中的异常写入 Java 中的文本文件?

    我需要用 Java 捕获文本文件中的异常 例如 try File f new File catch FileNotFoundException f f printStackTrace instead of printing into con
  • yii2:抛出新异常的正确方法

    只是为了测试 我在模型中添加了这段代码 同时设置 debug true 和 false if packagedays lt 1 throw new yii base Exception package days cannot be less
  • Spring boot with Scheduler-BeanCreationNotAllowedException:创建名为“entityManagerFactory”的 bean 时出错:不允许创建单例 bean

    我们有一个带有调度程序的 Spring Boot 项目 它以固定的时间间隔从数据库读取数据 使用 Maven 从 STS 构建项目时 我们在控制台中收到以下错误当它运行测试用例时即使最终构建状态是成功 org springframework
  • MPI - 发送和接收列

    我需要从一个进程发送矩阵列并从另一个进程接收它 我尝试运行以下程序 但得到了一个奇怪的结果 至少我这么认为 仅复制矩阵的第一个元素 某些矩阵元素会发生意外变化 include
  • VBA 错误处理有哪些好的模式? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 VBA 中有哪些好的错误处理模式 特别是 在这种情况下我应该做什么 some code some code where an error mig
  • “引发异常()”和“引发异常”(不带括号)之间有区别吗?

    定义无参数异常 class MyException Exception pass 当提出时 以下之间有什么区别 raise MyException and raise MyException 我找不到任何 它只是一个重载语法吗 简短的回答是
  • 对于每个抛出异常的语句,try/catch 是否被视为反模式?

    我目前正在审查同事的 Java 代码 我看到很多情况下 每个可能抛出异常的语句都被封装在自己的 try catch 中 其中 catch 块都执行相同的操作 哪个操作与我的问题无关 对我来说 这似乎是一种代码味道 我记得读到过它是一种常见的
  • MPI_Gatherv:根数组中收到的垃圾值

    我正在尝试实施MPI Gatherv函数于C 根据我的程序 包括 root 在内的每个进程都应该创建一个大小等于 进程的等级 1 这将在所有单元格中保持进程的等级 然后这个本地数组被收集到根的 rcv array 中 不知何故 我得到了垃圾
  • C++ 中的错误分配异常

    在我的一个学校项目中 我被要求创建一个程序而不使用STL 在程序中我使用了很多 Pointer new Something if Pointer NULL throw AllocationError 我的问题是关于分配错误 有没有一个自动例
  • 处理导入模块异常

    Python 中如何处理模块特定的异常 例如 如果我想捕获 python 中 sqlite3 模块抛出的错误 我将在 中放置什么来处理该异常 import sqlite3 try except 答案已经在这里了如何在Python中引用异常类
  • 使用Android WebView时JavaScript异常在哪里显示?

    我有一个简单的 HTML 我将其加载到 Android WebView SDK 版本 1 5 中 h1 Hello World h1 函数 nomethod 不存在 但 LogCat 不显示任何错误 似乎任何未捕获的异常都无法追踪 知道如何
  • 事件处理程序中的“对 SetCurrentCellAddressCore 的可重入调用” - 仅当单元格行索引和列索引相等时

    我正在制作一个 WinForms 应用程序 其中包含一个使用DataGridView处理简单的数据操作 确保准确输入 同时减少混乱 阅读 不使用DataGridViewComboBoxColumn 我有几个事件处理程序可以暂时将DataGr
  • 如何使用 Python 正确传播错误消息

    我对正确的 Python 错误处理有点陌生 并且我很难找到处理多种方法链中的错误的最佳方法 我有3种方法 a b c a正在打电话b and b正在打电话c 如何从方法中传播错误c回到方法a所以我可以例如将其存储在某处或在 API 响应期间
  • Python 中的“断言”有什么用?

    什么是assert意思是 它是如何使用的 The assert语句几乎存在于所有编程语言中 它有两个主要用途 它有助于在程序早期发现问题 原因明确 而不是等到其他操作失败时才发现问题 例如 Python 中的类型错误在实际引发错误之前可能会
  • 关于捕获异常的良好实践

    我正在用 C 11 编写一个小程序 并且第一次真正使用异常 我有一个关于如何有效捕获异常的问题 经过一番谷歌搜索后我仍然没有答案 这是问题 通过 const 左值引用捕获异常还是通过 const 右值引用捕获异常 哪个更有效 或推荐 在代码
  • 为什么单线程异常会导致整个程序崩溃(如何防止这种情况?)

    例如 如果我跑步 int x 0x00000 程序崩溃了 但为什么整个程序崩溃而不是单个线程崩溃呢 我创建了多个连续睡眠的线程来测试这一点 有什么方法可以让当前线程退出 而不是整个程序 在Windows上使用winapi Thanks 但为
  • Swift 中的运行时错误处理

    我完全知道 Swift 没有 try catch 机制来捕获异常 好吧 Swift 2 0 现在支持它们 我还了解到 许多 API 方法都会返回一个 NSError 如果出现问题 该错误对象将被填充为错误对象 所以请不要向我指出这个问题 S
  • XAML解析异常

    我有一个简单的 XAML 页面 当它作为 Visual Studio 中任何应用程序的一部分加载时 加载效果良好 但是 当我使用 ClickOnce 部署此应用程序时 出现以下异常 Type System Windows Markup Xa

随机推荐