mpi相关内容

创建并传达“结构数组".使用MPI衍生的数据类型

我正在尝试使用MPI_Type_create_struct使用MPI派生数据类型对MPI_Alltoallv进行编程.我找不到任何解决此特定问题的示例.大多数示例像这样使用一个单一的struct成员,而我的目标是一个struct数组.以下是一个更简单的测试代码,它尝试对使用DDT创建的结构数组执行MPI_Sendrecv操作: #include #include ..
发布时间:2020-05-12 20:06:45 其他开发

MPI中通信器之间的发送和接收操作

我之前的问题:无法实现MPI_Intercomm_create MPI_INTERCOMM_CREATE的问题已解决.但是,当我尝试在颜色0的进程0(全局等级= 0)和颜色1的进程0(即全局等级= 2)之间实现基本的发送接收操作时,代码只是在打印接收到的缓冲区后挂断. 代码: program hello include 'mpif.h' implicit none integer t ..
发布时间:2020-05-12 20:06:42 其他开发

MPI通讯模式

我想知道是否有一个聪明的方法来做到这一点.假设我有三个节点,0、1、2.还说每个节点都有一个数组a0,a1,a2.如果每个节点的内容都类似 a0 = {0, 1, 2, 1} a1 = {1, 2, 2, 0} a2 = {0, 0, 1, 2} 是否存在一种巧妙的通信模式,以便将每个数字移至其对应的节点,即 a0 = {0, 0, 0, 0} a1 = {1, 1, 1, 1} ..
发布时间:2020-05-12 20:06:35 其他开发

MPI_Irecv无法正确接收MPI_Send发送的数据

我有一个1D矩阵数据作为Q_send_matrix.在每次迭代中,每个处理器都会更新其Q_send_matrix并将其发送到前一个处理器(rank-1),而它会从下一个处理器(rank+1)接收一个新更新的矩阵作为Q_recv_matrix.例如,在迭代中,Proc[0]更新其Q_send_matrix并将其发送到Proc[3],而从Proc[1]接收Q_recv_matrix.正如您可能估计的那 ..
发布时间:2020-05-12 20:06:32 其他开发

MPI(求和)

我正在编写一个程序,该程序计算最多1000个数字的总和.例如1 + 2 + 3 + 4 + 5 .... + 100.首先,我将求和作业分配给10个处理器:处理器0获得1-100,处理器1获得101-200,依此类推.总和存储在一个数组中. 并行完成所有求和后,处理器将其值发送到处理器0(处理器0使用无阻塞发送/接收接收值),处理器0对所有值求和并显示结果. 这是代码: #inc ..
发布时间:2020-05-12 20:06:30 C/C++开发

MPI的Scatterv操作

我不确定我是否正确理解了MPI_Scatterv应该做什么.我有79个项目可以分散数量可变的节点.但是,当我使用MPI_Scatterv命令时,我得到了荒谬的数字(好像接收缓冲区的数组元素未初始化).这是相关的代码段: MPI_Init(&argc, &argv); int id, procs; MPI_Comm_rank(MPI_COMM_WORLD, &id); MPI_Comm_si ..
发布时间:2020-05-12 20:06:27 C/C++开发

MPI IO当不知道偏移量时写入文件

我想使用MPI IO写入文件. 进程处于while循环中,它调用一个函数,该函数生成随机量的数据.我想将此数据写入单个文件. 我该怎么做? 解决方案 在while循环的每次迭代中,每个进程都知道将要写入多少数据.使用MPI_SCAN共享该数据,然后使用MPI_File_write_at_all进行集体写入: incr = generate_random_data(); ..
发布时间:2020-05-12 20:06:25 其他开发

在C ++中的MPI中并行执行可执行文件

我已经使用MPI已有一段时间了,但是我没有经验.所以 我在这里问有关以下实现的一般结构的建议. 说,我的主C ++文件带有 MPI_Init(&narg,&arg); int me,nprocs; MPI_Comm_rank(MPI_COMM_WORLD,&me); MPI_Comm_size(MPI_COMM_WORLD,&nprocs); int N = 10; for (int i ..
发布时间:2020-05-12 20:06:22 C/C++开发

openMPI中缺少gethostname()函数

由于OpenFOAM对OpenMPI的依赖性,我不得不用OpenMPI替换mpich2. 在我的代码中(使用mpich2时)较早时,我正在使用gethostname()函数来获取用于调试目的的计算机名称.但是,此功能似乎不是标准的MPI功能,并且不能再与OpenMPI库一起使用.还有其他功能可用于获取OpenMPI或MPI标准中的主机名吗?我正在使用mpicc进行编译,并使用mpirun来运 ..
发布时间:2020-05-12 20:06:20 其他开发

MPI中异步发送的安全保证

在我的应用程序中,我使用MPI以主从方式分发作业.将作业交给从属,然后收集结果.在该程序的多线程版本中,当所有处理器同时尝试执行Send(阻塞)时,由于没有匹配的Recv,因此存在潜在的死锁.我想出了一个似乎可行的解决方案,但我想拥有保证书(而不是再测试一万次). 我的程序的安全性是肯定的,如果可以保证提供的代码很少,请提供符合标准的实现. (显然,这仅适用于两个处理器,而不能用于更多处理器 ..
发布时间:2020-05-12 20:06:18 C/C++开发

如何将MKL与MPI链接?

我想用MKL编译此C代码,但是当我使用命令mpicc -mkl mkl_thread.c运行它时,它给我一个关于无法识别的命令行选项-mkl的错误.当我以mpicc mkl_thread.c -o mkl_thread身份运行它时,它给出了另一个错误,说“对'MKL_Set_Num_Threads'的未定义引用".我不知道如何使用它或与MKL链接. 我的代码是: define NUM_ ..
发布时间:2020-05-12 20:06:15 其他开发

为什么此MPI代码执行不正确?

我正在尝试创建一个“你好,世界!" (Open)MPI中的应用程序,这样每个进程将按顺序打印出来. 我的想法是让第一个进程完成时向第二个进程发送消息,然后第二个进程向第三个进程发送消息,等等: #include #include int main(int argc,char **argv) { int rank, size; M ..
发布时间:2020-05-12 20:06:13 其他开发

开放的MPI排名不正确

当我运行"Open MPI"程序时,它通常以我想知道的随机顺序分配等级 有没有办法总是按顺序分配等级? 所以代替这个 Hello, World. I am 2 of 3 Hello, World. I am 0 of 3 Hello, World. I am 1 of 3 我能得到这个吗 Hello, World. I am 0 of 3 Hello, World. I a ..
发布时间:2020-05-12 20:06:08 其他开发

在服务器群集上运行openMPI期间无限等待?

我已经成功在服务器和计算机之间设置了密码less ssh. 有一个简单的openMPI程序,可以在单台计算机上很好地运行. 但是,不幸的是,当我在集群上尝试此操作时,我既没有收到密码提示(因为我已经设置了ssh授权),也没有执行进展. 主机文件如下所示, # The Hostfile for Open MPI # The master node, 'slots=8' is used ..
发布时间:2020-05-12 20:06:06 其他开发

使用Boost MPI并行化循环

我正在学习使用Boost.MPI并行化大量计算,这只是我的简单测试,看看是否可以正确获得MPI逻辑.但是,我没有使它起作用.我使用world.size()= 10,数据数组中总共有50个元素,每个进程将进行5次迭代.我希望通过让每个进程将更新的数据数组发送到根进程来更新数据数组,然后根进程接收更新的数据数组然后打印出来.但是我只更新了一些元素. 感谢您的帮助. #include ..
发布时间:2020-05-12 20:06:04 其他开发

共享对象库和MPI

我正在一个使用MPI创建并行进程的项目中,每个进程都使用dlopen()加载作为共享对象库构建的模块.我正在编写的模块之一使用第三方库(HDF).当我运行程序时,dlopen会引发错误: dlopen失败:/home/jwomble/QTProjects/Sur​​rogateModule/libsurrogate.so:未定义符号:H5T_NATIVE_INT32_g 未定义的符号在HDF ..
发布时间:2020-05-12 20:06:02 服务器开发

NCures无法恢复终端行为

你好,亲爱的通勤者, 我正在为我正在开发的并行软件创建终端动画状态报告.我正在使用NCurses. 我遇到了与恢复终端的标准行为有关的问题. 运行我的软件后,无论我叫endwin()还是不叫,终端始终只有24行. 这里是简化的代码: int size=10; initscr(); refresh(); while(KeepAlive){ int j=1; mvp ..
发布时间:2020-05-12 20:06:00 C/C++开发

MPI进程突发工作

我正在使用mpi4py为分布式应用程序建模. 我有n个进程在访问共享文件并在执行过程中将一些日志写入共享文件.我注意到日志不是统一编写的.以下是如何将日志写入共享文件的示例: process0.log0 process0.log1 process0.log2 process0.log3 process0.log4 process2.log0 process2.log1 process2 ..
发布时间:2020-05-12 20:05:58 Python