mpi4py初始化和运行时设置

本文从本人简书博客同步过来

上一篇中我们介绍了 mpi4py 并行读/写 numpy npy 文件的方法,下面我们将介绍 mpi4py 软件包初始化相关的一些设置。

初始化及运行时设置

有在 C/C++/Fortran 等其它计算机语言下编写 MPI 并行计算程序经验的读者都知道,在使用 MPI 时除了要导入 MPI 的相应头文件之外,还要首先调用 MPI_Init/MPI_Init_thread 来初始化 MPI 环境,然后才能使用 MPI 库提供的各项功能,在结束 MPI 程序时一般还需要调用 MPI_Finalize 以结束 MPI 环境。但是在使用 mpi4py 时,我们一般并没有调用 mpi4py 中对应的函数 mpi4py.MPI.Init/mpi4py.MPI.Init_thread 和 mpi4py.MPI.Finalize,这是为什么呢?原来在导入和使用 mpi4py 时,mpi4py 软件包会做大量的初始化工作。在导入 mpi4py 时如果不做一些特定的设置,就会采用 mpi4py 的默认初始化设置,其中就包括对 mpi4py.MPI.Init/mpi4py.MPI.Init_thread 和 mpi4py.MPI.Finalize 的默认调用。这些默认的初始化设置在大多数情况下都是合适的,并不需要我们显式地进行设置,因此能够节省我们一部分工作,使我们可以简洁而方便地编写 Python 环境下的 MPI 并行计算程序。但是在某些情况下,我们需要进行一些特定的初始化设置,mpi4py 允许定制一些特定的初始化选项,我们只需在导入 mpi4py 的 MPI 模块之前进行相应的设置或调用相应的函数即可。下面是 mpi4py 提供的初始化及运行时设置函数:

mpi4py.rc(**kargs)

mpi4py 运行时设置(Runtime configuration)函数。可以设置的参数包括:initialize 是否在 import MPI 时自动调用 MPI.Init 函数以初始化 MPI 环境,默认为 True;threads 是否要求多线程支持,默认为 True;thread_level,要求的线程级别,默认为 ‘multiple’,可供选择的级别有 ‘multiple’, ‘serialized’, ‘funneled’ 和 ‘single’;finalize,是否在程序退出时自动调用 MPI.Finalize,默认为 None,表示和 initialize 的值相同,也可以设置为 True 或 False;fast_reduce,是否使用树算法进行快速的规约操作,默认为 True;recv_mprobe,是否采用匹配的 probe 方法来接收消息,默认为 True;errors,错误处理策略,默认为 ‘ex

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值