mpi相关内容

MPI中的MPI_Probe和MPI_Get_count有什么区别

我发现 MPI_Probe 用于查找消息大小,并使用 MPI_Get_count 查找消息长度.消息长度和消息大小有什么区别?他们两个不是一样的吗?此外,MPI_Send 或 MPI_Recv 中的计数参数表示什么?这是否意味着从进程 x 向进程 y 发送/接收相同消息的次数? 解决方案 虽然 MPI_Probe 可用于查找消息的大小,但您必须使用 MPI_Get_count 来获取那个大 ..
发布时间:2021-06-04 18:36:06 其他开发

使用 MPI 从不同过程中收集小矩阵部分

我花了一些时间思考计算矩阵的方案,一切都说得通,但还有最后一部分我不知道如何处理. 这是我打算做的(场景): 要求计算一个 10(w)x5(h) 矩阵. 我有 10 个处理器可用. 在每个处理器上声明一个 1x5 矩阵,包括等级 0 的 proc. 计算每个处理器上的每个子矩阵的偏移量. MPI_Barrier 等待所有 10 个处理器完成计算. 显示完整矩阵. 一 ..
发布时间:2021-06-04 18:36:03 其他开发

从 MPICH 切换到 OpenMPI

我的 Ubuntu 20.04 中有 mpich 和 openmpi. $ dpkg -l |grep mpi |库...ii libmpich-dev:amd64 3.3.2-2build1 amd64 MPICH 开发文件ii libmpich12:amd64 3.3.2-2build1 amd64 MPICH 共享库...ii libopenmpi-dev:amd64 4.0.3-0ubu ..
发布时间:2021-06-04 18:36:00 其他开发

mpi4py 发送字符

我想使用更快的发送(而不是更慢的发送)方法将一些字符从一个进程传输到另一个进程,但无法使用 mpi4py 获得有效的解决方案(仅限于使用这种语言,Python3) 这是我的玩具代码 - 如果有人能指出我做错了什么(以及如何解决),我将不胜感激. from mpi4py import MPI导入 numpy从数组导入数组comm = MPI.COMM_WORLD如果 comm.rank == ..
发布时间:2021-06-04 18:35:57 Python

mpi 和 mpich2 文件夹之间的区别?

因此配置 MPI 标志我意识到在 /usr/include 目录中有两个文件夹具有相同的文件.所以有两个相关的问题: 这对于 MPICH 安装是否正常? 它们之间有什么区别? 祝一切顺利,提前致谢 解决方案 这取决于您的安装,但这是提供多个并行 MPI 安装的常用方法. 我安装了 MPICH2 和 OpenMPI,/usr/include 中的这个文件夹: lrwxr ..
发布时间:2021-06-04 18:35:54 服务器开发

MPI_Reduce 和 MPI_MIN 如何工作?

如果我有这个代码: int main(void) {整数结果=0;int num[6] = {1, 2, 4, 3, 7, 1};如果(我的排名!= 0){MPI_Reduce(num, &result, 6, MPI_INT, MPI_MIN, 0, MPI_COMM_WORLD);} 别的 {MPI_Reduce(num, &result, 6, MPI_INT, MPI_MIN, 0, M ..
发布时间:2021-06-04 18:35:48 其他开发

使用带有二维连续数组的 MPI_Sendrecv 的分段错误

我的问题很简单.使用 MPI_Sendrecv 时,它会系统地生成段错误.我之前在使用 2D 数组和基本 MPI_Send 时遇到了同样的问题,但最终解决了它.当我尝试在最后一种情况下使用相同的解决方案时,这并没有改变任何东西.因此我在寻求帮助! 所以基本上,我通过这段代码分配了我所有的矩阵: 双**分配矩阵(整数行,整数列){双**M;//行指针双*Mdata;//实际存储数据的位置M ..
发布时间:2021-06-04 18:35:38 其他开发

mpi4py:空闲内核显着放缓

我有一个 Python 脚本,用于招募 MPI 进行并行计算.计算方案如下:数据处理第 1 轮 - 进程之间的数据交换 - 数据处理第 2 轮.我有一台 16 逻辑核心机器(2 x Intel Xeon E5520 2.27GHz).由于某种原因,第 1 轮不能并行运行.因此,有 15 个内核处于空闲状态.然而,尽管如此,计算速度还是慢了 2 倍. 这个脚本说明了问题(另存为test.py) ..
发布时间:2021-06-04 18:35:31 Python

MPI、python、Scatterv 和重叠数据

MPI 标准 3.0 说明了 mpi_scatterv: 计数、类型和位移的规范不应导致根上的任何位置被多次读取." 但是,我用下面的代码在python中测试mpi4py并没有表明从root读取数据不止一次有问题: 将 numpy 导入为 np从 sharethewealth 进口 sharethewealthcomm = MPI.COMM_WORLDnprocs = comm.Ge ..
发布时间:2021-06-04 18:35:28 Python

MPI:广播 long long int

这个程序通过将随机的“飞镖"(采样点)扔到一个圆或半径 = 1 的圆上来估计 Pi,该圆或半径 = 1 的方板内接长度 = 2.使用关系 圆面积/正方形面积 = Pi/4 我们可以使用相同的关系来估计 Pi 圆内飞镖/圆外飞镖 = Pi/4 当我在 #define 中指定 NDARTS 时,程序工作正常,但是当尝试将它作为 long long int 广播时,请阅读从 scanf,我得到以 ..
发布时间:2021-06-04 18:35:25 其他开发

杀死一个mpi进程

我想知道是否有办法让一个 MPI 进程向另一个 MPI 进程发送终止信号? 或者不同的是,当进程中的一个仍然处于活动状态时,有没有一种方法可以优雅地退出 MPI 环境?(即 mpi_abort() 打印错误消息). 谢谢 解决方案 不,这在使用 MPI 库的 MPI 应用程序中是不可能的. 单个进程不会知道其他进程的位置,也不会知道其他进程的进程 ID - MPI 规范中 ..
发布时间:2021-06-04 18:35:22 其他开发

GProf 输出中缺少函数

我正在尝试分析一些 C 代码,但在 GProf 输出中没有显示最直观的开销函数之一. int main() {初始化...光环交换();为了(...) {职能...传播();职能...}}无效传播(){对于 (x)对于 (y)对于 (z)网格[xNew][yNew][zNew] = 网格[x][y][z];光环交换();}void haloSwap() {//水平交换创建缓冲区...MPI_Se ..
发布时间:2021-06-04 18:35:19 其他开发

我是否需要为 MPI::Isend 提供相应的 MPI::Irecv?

一个看似愚蠢的问题,但我似乎无法以一种或另一种方式找到明确的答案. 基本问题是我是否需要为 MPI::Isend 提供相应的 MPI::Irecv? 也就是说,即使消息发送是非阻塞的,只要我在重用发送缓冲区之前等待发送完成,我是否需要使用非阻塞接收 &等待接收发送的缓冲区? 我的观点是,我想在发送消息时使用非阻塞发送来“做其他事情",但接收器进程将立即使用缓冲区,因此我希望它们阻 ..
发布时间:2021-06-04 18:35:11 其他开发

通过MPI进程同步数组,如果每个线程改变了一部分?

我有一个要使用 MPI 并行化的程序.我之前没有与 MPI 合作过. 该程序计算大量对象随时间的行为.的数据这些对象存储在数组中,例如double precision :: body_x(10000) x 坐标. 要计算对象的行为,需要有关所有其他对象的信息,所以每个线程都需要保存所有数据,但只会更新其中的一部分.但在此之前每个线程需要从所有其他线程获取信息的新时间步. 据我所知 ..
发布时间:2021-06-04 18:35:08 其他开发

在 Sun Grid Engine (SGE) 中将作业分布在集群的不同节点上

我正在尝试使用 sun gridending (sge) 在集群的所有节点上运行 MPI 作业的单独进程. 实际情况是每个节点有 12 个处理器,因此 SGE 将我的 60 个进程中的 12 个分配给 5 个单独的节点. 我希望它为 30 个可用节点中的每一个分配 2 个进程,因为每个节点上运行 12 个进程(dna 序列对齐),节点内存不足. 所以我想知道是否可以明确地让 SG ..
发布时间:2021-06-04 18:35:00 其他开发

使用 MPI-IO 读取文本文件?

我有一个文本文件,其中包含一个带有矩阵维度的标题,然后是矩阵.以下是 3x3 矩阵的示例: 3 31 56 812 3 09 44 81 我一直使用 MPI-IO 获取垃圾值,并发现它仅适用于二进制文件,而不适用于文本文件. 我以为我会读入字符流并转换为整数,但我不确定如何解决这个问题,因为矩阵元素的位数是可变的.我真的不知道如何处理这个问题? 解决方案 通常你知道二进制文件中写 ..
发布时间:2021-06-04 18:34:56 其他开发