int main(int argc, char ** argv) { INIT_AGENTS; double new_price = 0; ulong t; for(t = 0; t < number_trials; ++t) { ulong i; Agent * agent; for(agent = agents, i = number_local_agents; i--; ++agent) agent->refresh(agent); double min_whole_ask, max_whole_bid; get_extreme_value(&min_whole_ask, &max_whole_bid, agents, number_local_agents); if(myid == 0) if(max_whole_bid > min_whole_ask) { new_price = (min_whole_ask + max_whole_bid) / 2; printf("%ld %lf\n", t, new_price); } MPI_Bcast(&new_price, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD); for(; new_price; new_price = 0) for(agent = agents, i = number_local_agents; i--; ++agent) agent->set(agent, new_price); } MPI_Finalize(); return 0; }
int main(int argc, char ** argv) { int myid, numprocs; int n1, n2; n1 = atoi(argv[1]); n2 = atoi(argv[2]); if (n1 > 0){ ALL_N_AGENTS=n1; } if (n2 > 0){ N_TRIAL=n2; } Agent * agents = init(&argc, argv, &myid, &numprocs); if(myid == 0){ printf("%d %d %d\n", ALL_N_AGENTS, N_AGENTS, N_TRIAL); } double new_price = 0; int t; for(t = 0; t < N_TRIAL; ++t) { int i; Agent * agent; for(agent = agents, i = N_AGENTS; i--; ++agent) agent->refresh(agent); double g_min_ask, g_max_bid; get_extreme_value(&g_min_ask, &g_max_bid, agents); if(myid == 0) if(g_max_bid > g_min_ask) { new_price = (g_min_ask + g_max_bid) / 2; printf("%d %lf\n", t, new_price); // fflush(stdout); } MPI_Bcast(&new_price, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD); for(;new_price; new_price = 0) for(agent = agents, i = N_AGENTS; i--; ++agent) agent->set(agent, new_price); } MPI_Finalize(); return 0; }