#include #include #include #include #include #define Products 10 int main(int argc, char **argv ) { int myid, numprocs; int true = 1; int false = 0; int ncustomers = 20; int still_working, messages; int i, j, g, index, ready_bb, items, local_bagged_items, customer_items; int *all_bagged_items; int sumbagged, maxbagged, minbagged; float avgbagged; /* Note, Products below are defined in order of increasing weight */ char Groceries[Products][20] = {"Chips","Lettuce","Bread","Eggs", \ "Pork Chops","Carrots","Rice","Canned Beans", \ "Spaghetti Sauce","Potatoes"}; MPI_Request *mgr_req; MPI_Status status; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); MPI_Comm_rank(MPI_COMM_WORLD,&myid); if (numprocs < 2) { printf("ERROR: Must have at least 2 processes to run\n"); } else { if (myid == 0) // Manager { srand((unsigned)time(NULL)+myid); //initialize random numbers all_bagged_items = (int *) malloc((numprocs-1) * sizeof(int)); mgr_req = (MPI_Request *) malloc((numprocs-1) * sizeof(MPI_Request)); for (i=1;i maxbagged) \ maxbagged = all_bagged_items[i]; if (all_bagged_items[i] < minbagged) \ minbagged = all_bagged_items[i]; } printf("Bagboy report, numbers of items bagged by each was:\n"); for (i=0;i