#include<stdio.h>
#include<stdlib.h>
#include<mpi.h>
#define ARRAY_SIZE 1000
int main(int argc, char *argv[]) {
int rank, size;
int numbers[ARRAY_SIZE];
int max_local, max_global;
MPI_Init(&argc, &argv)
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
for(i = 0; i < ARRAY_SIZE; i++) {
}
max_local = numbers[0];
for (int i = 1; i < ARRAY_SIZE; i++) {
if (numbers[i] > max_local) {
max_local = numbers[i];
}
}
MPI_Reduce(&max_local, &max_global, 1, MPI_INT, MPI_MAX, 0, MPI_COMM_WORLD);
if (rank == 0) {
printf("Global maximum number: %d\n", max_global
); }
MPI_Finalize();
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPG1waS5oPgoKI2RlZmluZSBBUlJBWV9TSVpFIDEwMDAKCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKICAgIGludCByYW5rLCBzaXplOwogICAgaW50IG51bWJlcnNbQVJSQVlfU0laRV07CiAgICBpbnQgbWF4X2xvY2FsLCBtYXhfZ2xvYmFsOwoKICAgIE1QSV9Jbml0KCZhcmdjLCAmYXJndikKICAgIE1QSV9Db21tX3JhbmsoTVBJX0NPTU1fV09STEQsICZyYW5rKTsKICAgIE1QSV9Db21tX3NpemUoTVBJX0NPTU1fV09STEQsICZzaXplKTsKCiAgICBzcmFuZChyYW5rICsgMSk7CgogICAgZm9yKGkgPSAwOyBpIDwgQVJSQVlfU0laRTsgaSsrKSB7CiAgICAgICBudW1iZXJzW2ldID0gcmFuZCgpOwoKICAgIH0KCiAgIAogICAgbWF4X2xvY2FsID0gbnVtYmVyc1swXTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgQVJSQVlfU0laRTsgaSsrKSB7CiAgICAgICAgaWYgKG51bWJlcnNbaV0gPiBtYXhfbG9jYWwpIHsKICAgICAgICAgICBtYXhfbG9jYWwgPSBudW1iZXJzW2ldOwogICAgICAgIH0KICAgIH0KCiAgICAKICAgIE1QSV9SZWR1Y2UoJm1heF9sb2NhbCwgJm1heF9nbG9iYWwsIDEsIE1QSV9JTlQsIE1QSV9NQVgsIDAsIE1QSV9DT01NX1dPUkxEKTsKCgogICAgaWYgKHJhbmsgPT0gMCkgewogICAgICAgIHByaW50ZigiR2xvYmFsIG1heGltdW0gbnVtYmVyOiAlZFxuIiwgbWF4X2dsb2JhbCk7CiAgICB9CgogICAgTVBJX0ZpbmFsaXplKCk7CgogICAgcmV0dXJuIDA7Cn0=