当每个等级使用他的一个GPU(内部GPU为自动P2P,外部GPU为自动RDMA)时,如何使用扩展MPI?

时间:2019-05-19 06:46:14

标签: cuda multi-gpu mvapich2

我有Linux,使用--enable-cuda编译了MVAPICH2 2.3,有2个GPU(支持CUDA 8+),支持P2P和RDMA。

我用C ++编写。我用MV2_USE_CUDA进行编译。我运行1个MPI节点,并为此节点运行2个MPI进程,每个进程使用他的GPU(0级使用GPU_0,1级使用GPU_1)。我如何确保通过P2P进行MPI交换?

下一步,我运行N个MPI节点,并为每个节点运行2个MPI进程,每个MPI进程都使用他的GPU _(#LocalRank)。我如何确保通过P2P(在每个节点内部)和RDMA(在节点之间)进行MPI交换?我使用MPI_AlltoAllv函数,其中部分交换必须是P2P(如果交换节点内的GPU),部分必须是RDMA(交换不同节点上的GPU)。

// I would like so
// code code

// MPI exchange which use auto P2P, RDMA

MPI_Status status;

MPI_SendRecv(d_data_out, count, MPI_DOUBLE, rankTo, 777, data_in_out, count, 

MPI_DOUBLE, rankTo, 777, &status);
// ....................


// code code

0 个答案:

没有答案
相关问题