# include <header.h>int main(int argc, char **argv){ int number_of_processes = 1; <variable definitions> <variable definitions> local_integral = <customFunction(local a, local b)> // send / receive result += local_integral; return 0;}
Parallel
#include <header.h>#include <mpi.h>int main(int argc, char **argv){ MPI_Init(&argc, &argv); // MPI_Init( int *argc, char ***argv ) int number_of_processes = 1; int my_rank = 0; int tag = 0; <variable definitions> <variable definitions> MPI_Comm_rank(MPI_COMM_WORLD,&my_rank); MPI_Comm_size(MPI_COMM_WORLD,&number_of_processes); local_integral = <integrationfunction> // send / receive // set up an if statement such that: // - only the slaves are sent with the calculation if (my_rank !=0){ // slaves int receiver_id = 0; MPI_Send(&local_integral,1, MPI_DOUBLE, receiver_id, tag, MPI_COMM_WORLD ); } else{ // master double receive_buffer; MPI_Status status; for (int source_id=1;source_id<number_of_processes; source_id++){ MPI_Recv(&receive_buffer,1,MPI_DOUBLE,source_id,tag,MPI_COMM_WORLD,&status); result+=receive_buffer; } } result += local_integral; MPI_Finalize(); return 0;}