草庐IT

mpi_status

全部标签

c++ - 无法使用 MPI_Send 和 MPI_Recv 发送 std::vector

我正在尝试使用MPI发送和接收函数发送std:vector但我没有到达任何地方。我收到类似的错误FatalerrorinMPI_Recv:Invalidbufferpointer,errorstack:MPI_Recv(186):MPI_Recv(buf=(nil),count=2,MPI_INT,src=0,tag=0,MPI_COMM_WORLD,status=0x7fff9e5e0c80)failedMPI_Recv(124):Nullbufferpointer我尝试了多种组合A)就像用来发送数组的..std::vectorm_image_data2;//definitionof

c++ - 使用 MPI::Send 可以发送的最大数据量

使用MPI::Isendas的语法MPI::RequestMPI::Comm::Isend(constvoid*buf,intcount,constMPI::Datatype&datatype,intdest,inttag)const;是限制发送的数据量std::numeric_limits::max()许多其他MPI函数都有int参数。这是MPI的限制吗? 最佳答案 MPI-2.2定义数据长度参数为int.自int以来,这可能而且通常是大多数64位Unix系统上的问题。仍然是32位的。此类系统称为LP64,这意味着long和指针是

c++ - 使用 Boost.MPI 库的目的是什么?

使用Boost.MPI库的目的是什么?它会boost性能吗?它和MPICH库有什么区别? 最佳答案 Boost.MPIprovidesanalternativeC++interfacetoMPIthatbettersupportsmodernC++developmentstyles,includingcompletesupportforuser-defineddatatypesandC++StandardLibrarytypes,arbitraryfunctionobjectsforcollectivealgorithms,andt

c++ - MPI 查找位移的不同方法

假设我有一个结构类型如下:typedefstruct{floatx,y,z;floatvelocity;intn,type;}Particle;我要发送。我必须创建一个MPI_Type。我知道4种方法。我在下面列出了它们。我想知道它们的区别、限制和好处是什么。使用MPI_Type_extent使用offsetof()在stddef.h,在这个答案中有解释:MPIDerivedTypeSendanswer使用MPI_Get_address,也是同一个答案中的一个例子。使用reinterpret_cast,我没试过,但这里有一个例子:MPICreateCustomData

c++ - collect2.exe : error: ld returned 5 exit status

我最近更新了所有msys2包,现在我无法构建我的项目。错误发生在链接其中一个.dll-target_library.dll时。我不清楚错误消息。状态5是什么意思?collect2.exe:error:ldreturned5exitstatus完整消息:g++-Wl,-s,--relax,--gc-sections-shared-Wl,-subsystem,windows-mthreads-Wl,--out-implib,C:/msys64/workspace/Project_Root_Directory/project/src/../build/release/plugins/libt

c++ - 使用 boost::mpi 的 mpi 中的消息大小是否有限制?

我目前正在openMPI之上使用boost::mpi编写模拟,一切运行良好。但是,一旦我扩大系统规模,因此必须发送更大的std::vectors,我就会出错。我已将问题简化为以下问题:#include#include#include#include#include#includenamespacempi=boost::mpi;intmain(){mpi::environmentenv;mpi::communicatorworld;std::vectora;std::vectorb;if(world.rank()==0){for(size_ti=1;i打印出来:a1B1a2B2a4B4.

c++ - MPI - 异步广播/收集

我有一个项目需要“n”个进程才能解决问题。每个从属进程执行相同的代码。当某个条件出现时,该进程需要以非阻塞方式通知所有其他进程。其他进程也需要以非阻塞的方式接收这个消息。有没有一种方法可以不用线程化一个单独的循环? 最佳答案 我已经有一段时间没有使用MPI了。但是I函数是非阻塞的。也许是这样的:intcomm_size=comm.Get_size();intcomm_rank=comm.Get_rank();int*data=newint[comm_size];while(some_condition){//Duringeachit

c++ - 谐波级数和 c++ MPI 和 OpenMP

我正在尝试同时使用MPI和opemMP制作并行版本的“HarmonicProgressionSum”问题。但是输出在每个过程中都是不同的。谁能帮我解决这个问题?并行程序:(MPI和OpenMP)#include#include#include#include#include#include#include#defined10//NumbersofDigits(Example:5=>0,xxxxx)#definen1000//ValueofN(Example:5=>1/1+1/2+1/3+1/4+1/5)usingnamespacestd;doublet_ini,t_fim,t_tot;

c++ - MPI_Allgather 中的奇怪死锁

经过大量谷歌搜索,我不知道是什么导致了这个问题。在这里:我在我的代码中有一个对MPI_Allgather的简单调用,我对它进行了双重、三次和四次检查以确保正确(发送/接收缓冲区大小合适;调用中的发送/接收大小正确),但是对于“大量”进程导致死锁或MPI_ERR_TRUNCATE。用于Allgather的通信器使用MPI_Comm_split从MPI_COMM_WORLD中分离出来。对于我当前的测试,等级0分配给一个通信器,其余等级分配给第二个通信器。对于6个或更少的总等级,Allgather工作得很好。如果我使用7个等级,我会得到一个MPI_ERR_TRUNCATE。8个行列,僵局。我

c++ - clock() 和 MPI_Wtime() 之间的区别

快速提问。对于我的代码的MPI实现,我在这两个方面都有很大的不同。我知道MPI_Wtime是每个处理器经过的实时时间,而clock()给出了预期时间的粗略概念。有人想添加一些断言吗? 最佳答案 clock函数完全没用。它测量cpu时间,而不是实时/墙上时间,而且它有以下严重问题:在大多数实现中,分辨率都非常差,例如1/100秒。CLOCKS_PER_SECOND不是分辨率,只是比例。使用CLOCKS_PER_SECOND的典型值(例如,Unix标准要求它为100万),clock将在32-分钟内溢出位系统。溢出后返回-1。大多数历史实