草庐IT

MPI_ERR_BUFFER

全部标签

c++ - 可以在 Internet 上而不是在 LAN 集群内分发 MPI (C++) 程序吗?

我编写了一些MPI代码,可以在大型集群上完美运行。集群中的每个节点都具有相同的cpu架构,并且可以访问网络(即“公共(public)”)文件系统(以便每个节点都可以执行实际的二进制文件)。但请考虑这种情况:我办公室里有一台配备双核处理器(intel)的机器。我家里有一台配备双核处理器(amd)的机器。两台机器都运行linux,两台机器都可以在本地成功编译和运行MPI代码(即使用2核)。现在,是否可以通过MPI将两台机器链接在一起,以便我可以利用所有4个内核,同时考虑不同的体系结构,并考虑没有共享(网络)文件系统的事实?如果是,怎么做到的?谢谢,本。 最佳答案

c++ - 如何在 C++ 中传递 STL 对象的消息,例如 MPI 中的 std::map?

我想使用MPI在C++中传递STL对象,例如std::map和std::list,但我不知道如何实现。 最佳答案 不幸的是,这无法直接实现。您将需要进行某种序列化。既然您提到了MPI,您可能对高性能感兴趣。在这种情况下,使用序列化可能不是最好的主意。所以我会远离更复杂的STL结构,只使用std::vector。 关于c++-如何在C++中传递STL对象的消息,例如MPI中的std::map?,我们在StackOverflow上找到一个类似的问题: https:

c++ - 如何写入 boost::asio::mutable_buffer?

我有一些代码为我提供了一个指向缓冲区的指针,以及我需要用数据填充的缓冲区的大小。我用boost::asio::mutable_buffer实例表示这个缓冲区,但是我如何正确使用这个缓冲区(例如,向它写入一个字符串,...)并让boost强制执行缓冲区边界?这是一些伪代码:size_tsome_callback(void*ptr,size_t){//thisfunctioniscalledby3rdpartyreturnour_handler(boost::asio::mutable_buffer(ptr,size));}size_tour_handler(constboost::asi

c++ - 如何在 MPI 中创建新类型

我是MPI的新手,我想为Residencestruct创建一个新的数据类型。我只是想看看我是否能以正确的方式创建新类型。结构住宅{双x;双y;};我的新MPI类型MPI_DatatypecreateRecType(){//Set-uptheargumentsforthetypeconstructorMPI_Datatypenew_type;intcount=2;intblocklens[]={1,1};MPI_Aintindices[2];//indices[0]=0;MPI_Type_extent(MPI_DOUBLE,&indices[0]);MPI_Type_extent(MPI

c++ - 如何将长整数和/或无符号整数传递给 MPI 参数?

假设我有一个非常大的数组,我希望使用MPI(v1)发送或接收它。为了索引这个数组,我使用了一个无符号长整数。现在,我见过的所有MPI函数调用都使用int类型作为它们的“计数”参数,例如在这个例子中:MPI_Recv(void*buf,intcount,MPI_Datatypedatatype,intsource,inttag,MPI_Commcomm,MPI_Status*status)但是,如果在我的实现中,我需要能够发送/接收大于int可以容纳的最大数量的数组,该怎么办?当我尝试将无符号整数提供给“计数”参数时,编译器自然会给我一个“无效转换”错误。我想过做一个Actor,但后来我

c++ - PVOID buffer转PCHAR有什么意义?

我在MS代码示例中看到下一个代码:PVOIDalignedBuffer[BUFFER_SIZE/sizeof(PVOID)];PCHARbuffer=(PCHAR)alignedBuffer;hResult=FilterSendMessage(context->Port,&commandMessage,sizeof(COMMAND_MESSAGE),buffer,sizeof(alignedBuffer),&bytesReturned);(alignedBuffer将保存作为重播传递给FilterSendMessage调用的结构数组)将PVOID转换为PCHAR有什么意义,这是否有助于

C++ MPI 标准 3

MPI标准3于2011年发布没有C++绑定(bind)!我的问题是如何在没有MPI的情况下用C++编写分布式计算(注意我们还需要OpenMPCUDAOpenacc)在C++中是否有MPI的替代方案(不是MPI2.2,提升MPI)?MPI是基于TCP/IP构建的,所以我可以在C++中使用TCP/IP构建我自己的方式吗?是否有针对C++的MPI3的开源绑定(bind)?或者你必须坚持使用CGTK+CUDAOpenMPOpenGLMPI3如果你想要C++QTCUDAOpenMPOpenGL+分布式计算API怎么办?Ubuntu和许多Linux发行版试图用Wayland替换Xserver,MI

c++ - 16 位 float MPI_Reduce?

我有一个分布式应用程序,它使用MPI_Reduce()进行某些通信。在精度方面,我们使用16位float(半精度)得到完全准确的结果。要加速通信(减少数据移动量),有没有办法在16位float上调用MPI_Reduce()?(我查看了MPI文档,没有看到任何关于16位float的信息。) 最佳答案 MPI标准在其内部数据类型中仅定义了32位(MPI_FLOAT)或64位(MPI_DOUBLE)float。但是,您始终可以创建自己的MPI_Datatype和您自己的自定义归约操作。下面的代码给出了一些关于如何执行此操作的粗略概念。由于

c++ - 从 C++ 中的 Protocol Buffer 获取所有字段名称?

有没有办法在C++中使用其描述符获取protobuff消息的所有字段?在Python中有一种方法可以做到这一点:Gettingallfieldnamesfromaprotocolbuffer?只是想知道C++中是否有相同的东西。试图在descriptor.h上找到任何东西,但没有成功。 最佳答案 是的。如果你有Descriptor,您可以使用Descriptor::field_count()获取字段数。然后,您使用Descriptor::field(intindex)遍历字段,返回FieldDescriptor,您可以在其中使用Fi

c++ - OBJ、Buffer 对象和面索引

我最近在让顶点缓冲区对象工作方面取得了很大进展。所以我转向了元素数组,我想通过这样的实现我可以从一个对象加载顶点和面数据。我不太擅长用C++读取文件,所以我写了一个python文档来解析obj并写了2个单独的txts来给我一个顶点数组和面索引,并将它们直接粘贴到我的代码中。这就像6000行,但它可以工作(没有编译错误)。这是它的样子.我认为他们错了。我不确定。顶点和面的顺序并没有改变,只是从obj中提取出来,因为我还没有适用于缓冲区对象的法线或纹理。如果你看一下立方体,我有点喜欢,但不是真的。这是rendercodevoidMesh_handle::DrawTri(){glBindBu