小编use*_*266的帖子

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

我正在尝试使用MPI send和recv函数发送std:vector但我没有到达哪里.我得到的错误就像

Fatal error in MPI_Recv: Invalid buffer pointer, error stack:
MPI_Recv(186): MPI_Recv(buf=(nil), count=2, MPI_INT, src=0, tag=0, MPI_COMM_WORLD, status=0x7fff9e5e0c80) failed
MPI_Recv(124): Null buffer pointer
Run Code Online (Sandbox Code Playgroud)

我尝试了多种组合

A)像用于发送数组的那些..

 std::vector<uint32_t> m_image_data2; // definition of  m_image_data2
     m_image_data2.push_back(1);
     m_image_data2.push_back(2);
     m_image_data2.push_back(3);
     m_image_data2.push_back(4);
     m_image_data2.push_back(5);

MPI_Send( &m_image_data2[0], 2, MPI_INT, 1, 0, MPI_COMM_WORLD);
MPI_Send( &m_image_data2[2], 2, MPI_INT, 1, 0, MPI_COMM_WORLD);

MPI_Recv( &m_image_data2[0], 2, MPI_INT, 0, 0, MPI_COMM_WORLD, &status );
Run Code Online (Sandbox Code Playgroud)

B)没有[]

MPI_Send( &m_image_data2, 2, MPI_INT, 1, 0, MPI_COMM_WORLD);
MPI_Send( &m_image_data2 + 2, 2, MPI_INT, 1, 0, MPI_COMM_WORLD);

MPI_Recv( &m_image_data2, 2, …
Run Code Online (Sandbox Code Playgroud)

c++ parallel-processing hpc vector mpi

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

hpc ×1

mpi ×1

parallel-processing ×1

vector ×1