#include #include #include int main(int argc, char** argv) { // Initialize the MPI environment MPI_Init(NULL, NULL); // Get the number of processes int world_size; MPI_Comm_size(MPI_COMM_WORLD, &world_size); // Get the rank of the process int world_rank; MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); // Get the name of the processor char processor_name[MPI_MAX_PROCESSOR_NAME]; int name_len; MPI_Get_processor_name(processor_name, &name_len); // Print off a hello world message printf("Hello world from processor %s, rank %d" " out of %d processors\n", processor_name, world_rank, world_size); unsigned long int i; double sum; int sign; srand(world_rank+1); unsigned long int N = 10000000000; unsigned long int N_CURRENT_PROC = N / world_size; for (i=world_rank*N_CURRENT_PROC; i < (world_rank+1)*N_CURRENT_PROC; i++) { sign = rand(); if (sign > RAND_MAX/2) sign = 1; else sign = -1; sum += sign*rand(); } printf("THREAD %d: %f\n",world_rank,sum); // Finalize the MPI environment. MPI_Finalize(); }