#include "mpi.h" #include using namespace std; #define TAG_TEST 500 int main(int argc, char** argv) { int commSize, commRank, result; result = MPI_Init(&argc, &argv); if (result != MPI_SUCCESS) { cerr << "Error initializing MPI application!" << endl; MPI_Abort(MPI_COMM_WORLD, -1); } MPI_Comm_size(MPI_COMM_WORLD, &commSize); MPI_Comm_rank(MPI_COMM_WORLD, &commRank); int flag; MPI_Comm workerComm; MPI_Comm_get_parent(&workerComm); int size; MPI_Comm_remote_size(workerComm, &size); if (size != 1) { cerr << "Parent worker doesn't have size 1" << endl; return 1; } cout << "Slave started, contacting worker" << endl; MPI_Send(&size, 1, MPI_INT, 0, TAG_TEST, workerComm); MPI_Finalize(); return 0; }