Agent * init(int * argc, char ** argv, int * myid, int * numprocs) { MPI_Init(argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, numprocs); MPI_Comm_rank(MPI_COMM_WORLD, myid); /* ローカルのエージェント数は、割り算で */ N_AGENTS = ALL_N_AGENTS / *numprocs; init_rand(myid); Agent * agents = malloc(sizeof(Agent) * N_AGENTS); init_agents(agents, N_AGENTS); return agents; }
Agent * init(int * argc, char ** argv, ulong * number_total_agents, ulong * number_local_agents, ulong * number_trials, int * myid, int * numprocs) { init_rand(); MPI_Init(argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, numprocs); MPI_Comm_rank(MPI_COMM_WORLD, myid); *number_total_agents = atoi(argv[1]); *number_local_agents = *number_total_agents / *numprocs; *number_trials = atoi(argv[2]); Agent * agents = malloc(sizeof(Agent) * *number_local_agents); init_agents(agents, *number_local_agents); return agents; }