openmpi相关内容

打开MPI-mpirun在简单程序上退出并出现错误

我最近在计算机上安装了OpenMPI,当我尝试运行一个简单的Hello World程序时,它退出并出现下一个错误: ------------------------------------------------------- Primary job terminated normally, but 1 process returned a non-zero exit code.. Per ..
发布时间:2020-05-12 20:01:09 其他开发

MPI_Barrier无法正常运行

我在下面编写了C应用程序,以帮助我理解MPI,以及为什么MPI_Barrier()在巨大的C ++应用程序中无法正常工作.但是,我能够用一个较小的C应用程序在庞大的应用程序中重现我的问题.本质上,我在for循环内调用MPI_Barrier(),并且MPI_Barrier()对所有节点可见,但是在循环2次迭代之后,程序变为死锁.有什么想法吗? #include #include ..
发布时间:2020-05-12 20:00:14 C/C++开发

MPI_SCAN的收集结果

我有这个数组[1 2 3 4 5 6 7 8 9],我正在对此进行扫描操作. 我有3个mpi任务,每个任务包含3个元素,然后每个任务计算其扫描并将结果返回给主任务 task 0 - [1 2 3] => [1 3 6] task 1 - [4 5 6 ] => [4 9 15] task 2 - [7 8 9] => [7 15 24] 现在任务0获得所有结果[1 3 6] [ ..
发布时间:2020-05-12 20:00:07 其他开发

mpi4py:关闭MPI Spawn吗?

我有一些python代码,在这些代码中我经常产生多个进程.我收到一个错误: ORTE_ERROR_LOG: The system limit on number of pipes a process can open was reached in file odls_default_module.c at line 809 我的代码大致如下: import mpi4py comm ..
发布时间:2020-05-12 19:59:36 Python

如何使用mpirun将不同的CPU内核用于不同的程序?

我有一个32核的虚拟机. 我正在运行一些仿真,我需要一次使用16个内核. 我使用以下命令在16个内核上运行作业: mpirun -n 16 程序名称 args > log.out 2>& 1 该程序在16个内核上运行. 现在,如果我想在其余内核上使用不同的参数运行相同的程序,则可以使用相同的命令,例如 mpirun -n 8 程序名称 diff_args > log_ ..
发布时间:2020-05-12 19:58:44 C/C++开发

OpenMPI中的动态节点

在MPI中,启动后是否可以添加新节点?例如,我有两台计算机已经在运行并行MPI应用程序.我在第三台计算机上启动此应用程序的另一个实例,并将其添加到现有的通信器中.所有计算机都在本地网络中. 解决方案 否,当前无法将新节点添加到正在运行的MPI应用程序中. MPI旨在了解程序启动时的节点总数. 工作正在完成(例如,在 MPI-3 上)在处理掉落的节点上.也许如果您可以向后添加故障节点, ..
发布时间:2020-05-12 19:58:31 其他开发

无法将所有内核与mpirun一起使用

我正在台式机上测试一个简单的MPI程序(Ubuntu LTS 16.04/Intel®Core™i3-6100U CPU @ 2.30GHz×4/gcc 4.8.5/OpenMPI 3.0.0),而mpirun不会让我使用机器上的所有内核(4).当我跑步时: $ mpirun -n 4 ./test2 我收到以下错误: ------------------------------- ..
发布时间:2020-05-12 19:58:26 其他开发

OpenMPI MPI_Barrier问题

使用MPI_Barrier的OpenMPI实现时出现一些同步问题: int rank; int nprocs; int rc = MPI_Init(&argc, &argv); if(rc != MPI_SUCCESS) { fprintf(stderr, "Unable to set up MPI"); MPI_Abort(MPI_COMM_WORLD, rc); } ..
发布时间:2020-05-12 19:58:16 其他开发

传输大数据时无法运行MPI

我用MPI_Isend将一个字符数组传输到从属节点.当数组的大小很小时,它可以工作,但是当我扩大数组的大小时,它就挂在那里了. 在主节点(等级0)上运行的代码: MPI_Send(&text_length,1,MPI_INT,dest,MSG_TEXT_LENGTH,MPI_COMM_WORLD); MPI_Isend(text->chars, 360358,MPI_CHAR,dest ..
发布时间:2020-05-12 19:56:07 其他开发

MPI未在FORTRAN代码中并行运行

我正在尝试在Ubuntu(14.04)计算机上安装OpenMPI,我认为我已经成功了,因为我可以使用 mpirun 运行代码,但是最近我注意到它不能真正并行运行. 我使用以下选项安装了openmpi: ./configure CXX=g++ CC=gcc F77=gfortran \ F90=gfortran \ ..
发布时间:2020-05-12 19:56:05 其他开发

用于阵列结构的MPI-3共享内存

我有一个简单的C ++结构,该结构基本上包装了一个标准C数组: struct MyArray { T* data; int length; // ... } 其中,T是数字类型,例如float或double. length是数组中元素的数量.通常,我的数组非常大(成千上万到数千万个元素). 我有一个MPI程序,我想通过MPI 3共享内存将两个MyArray实 ..
发布时间:2020-05-12 19:55:58 C/C++开发

将MPI进程映射到特定节点

我认为这个问题是不切实际的.但是不能帮助自己. 假设我有一个包含100个节点的集群,每个节点有16个核心. 我有一个mpi应用程序,其通信模式已经知道,我也知道集群拓扑(即节点之间的跳距离). 现在,我知道了到节点映射的过程,这些过程减少了网络上的争用.例如:进程到节点的映射是10-> 20,30-> 90. 如何将等级为10的进程映射到节点20? 请帮助我. 解决方案 如果您不受任何类型 ..
发布时间:2020-05-12 19:55:51 其他开发

用于mpirun的自定义中断处理程序

显然,mpirun使用SIGINT处理程序,将SIGINT信号“转发"到它产生的每个进程. 这意味着您可以为启用了mpi的代码编写中断处理程序,执行mpirun -np 3 my-mpi-enabled-executable,然后将为三个进程中的每个进程引发SIGINT.此后不久,mpirun退出.当您有一个小的自定义处理程序,该处理程序仅打印一条错误消息然后退出时,此方法可以很好地工作. ..

防止MPI忙循环

我有一个MPI程序,该程序超额预订/超额使用其处理器.那就是:进程比处理器多得多. 但是,在给定的时间中,只有少数几个进程处于活动状态,因此不应争用计算资源. 但是,就像海底总动员中的海鸥一样,当这些进程等待通信时,它们都忙于循环,问“我的?我的?我的?" b&b ; rel ="noreferrer"> 我同时使用Intel MPI和OpenMPI( ..
发布时间:2020-05-12 19:55:35 C/C++开发

配置MPI主机文件以使用多个用户身份

我想在不同的机器上运行带有mpirun的程序(所有带有Open Mpi 1.5的linux机器). 现在,我有可以使用username A登录的计算机,以及另一组可以使用username B的计算机.所有机器都可以通过ssh访问,但我不知道如何实现. 我的主机文件将如下所示: localhost #username local machine_set_A_1 ..
发布时间:2020-05-12 19:55:25 其他开发

mpirun-没有足够的可用插槽

通常,当我使用mpirun时,可以使用比计算机上实际可用数量更多的处理器来“重载"它.例如,在我的四核Mac上,我可以运行mpirun -np 29 python -c "print 'hey'"没问题.我现在在另一台计算机上,这将引发以下错误: $ mpirun -np 25 python -c "print 'hey'" --------------------------------- ..
发布时间:2020-05-12 19:55:17 其他开发

MPI_Send()和MPI_Ssend()之间的区别?

我知道MPI_Send()是一个阻塞调用,它等待直到可以安全地修改应用程序缓冲区以供重用.为了使发送呼叫同步(应该与接收者握手),我们需要使用MPI_Ssend(). 我想知道两者之间的区别.假设我需要在进程之间发送固定数量的字节,这应该花费更长的时间? 对于我来说,代码可以很好地调用MPI_Send(),但是可以无限期地等待MPI_Ssend(). 可能是什么原因? 最重要的是,我很确定 ..
发布时间:2020-05-12 19:54:43 其他开发

为共享内存配置MPI是什么意思?

我有一些与研究相关的问题. 当前,我已经完成了基于MPI的结构骨架框架工作的实现(特别是使用 openmpi 6.3 ) .框架应该在单台机器上使用. 现在,我将其与其他先前的框架实现(例如 scandium ,我注意到的一件事是我的实现的性能不如其他实现. 我认为这是因为,我的实现基于MPI(因此需要进行发送和接收操作匹配的双向通信) 而我正在比较的其他实现是基于共享内存的. (...但是 ..