Использование MPI_Put с окнами общей памяти - PullRequest
0 голосов
/ 16 мая 2018

Я создал окно общей памяти для связи с соседями внутри узла.

MPI_Win_allocate_shared(2*size*sizeof(double), 1, MPI_INFO_NULL, 
                        shmcomm, &mem, &win);
double *anew=mem; 
double *aold=mem+size; 

, и я хотел бы использовать MPI RMA, когда сосед находится в пределах местоположения между узлами, поэтому в идеале я хотел бысделать что-то вроде

MPI_Put(&aold[index], 1, Xtype, left, offset, 1, Xtype, win);

Однако это сообщает об ошибке, поскольку win было выделено в среде общей памяти, поэтому он не понимает соседей за пределами своего собственного узла.Есть ли способ создать дополнительное окно для использования с aold, чтобы я мог сделать что-то вроде

MPI_Put(&aold[index], 1, Xtype, left, offset, 1, Xtype, OtherWin);
...