Newer
Older
#include "mpi.h"
#include <vector>
#include <sstream>
int main(int argc, char **argv) {
MPI_Init(&argc, &argv);
int rank, size;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
std::stringstream ss(argv[1]);
int datasize;
ss >> datasize;
std::vector<double> send(datasize);
std::vector<double> recv(datasize);
int SOURCE = (size + rank - 1) % size;
int TARGET = (size + rank + 1) % size;
MPI_Send(send.data(), send.size(), MPI_DOUBLE, TARGET, 0, MPI_COMM_WORLD);
MPI_Recv(recv.data(), recv.size(), MPI_DOUBLE, SOURCE, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
MPI_Finalize();
return 0;
}