smpi_global->host_count = 0;
// running hosts
- smpi_global->running_hosts_count_mutex = SIMIX_mutex_init();
smpi_global->running_hosts_count = 0;
// mallocators
// queues
smpi_global->pending_send_request_queues = xbt_new(xbt_fifo_t, size);
- smpi_global->pending_send_request_queues_mutexes =
- xbt_new(smx_mutex_t, size);
smpi_global->pending_recv_request_queues = xbt_new(xbt_fifo_t, size);
- smpi_global->pending_recv_request_queues_mutexes =
- xbt_new(smx_mutex_t, size);
smpi_global->received_message_queues = xbt_new(xbt_fifo_t, size);
- smpi_global->received_message_queues_mutexes = xbt_new(smx_mutex_t, size);
// sender/receiver processes
smpi_global->sender_processes = xbt_new(smx_process_t, size);
for (i = 0; i < size; i++) {
smpi_global->pending_send_request_queues[i] = xbt_fifo_new();
- smpi_global->pending_send_request_queues_mutexes[i] = SIMIX_mutex_init();
smpi_global->pending_recv_request_queues[i] = xbt_fifo_new();
- smpi_global->pending_recv_request_queues_mutexes[i] = SIMIX_mutex_init();
smpi_global->received_message_queues[i] = xbt_fifo_new();
- smpi_global->received_message_queues_mutexes[i] = SIMIX_mutex_init();
}
smpi_global->hosts = SIMIX_host_get_table();
xbt_free(smpi_global->sender_processes);
xbt_free(smpi_global->receiver_processes);
- // running hosts
- SIMIX_mutex_destroy(smpi_global->running_hosts_count_mutex);
-
// mallocators
xbt_mallocator_free(smpi_global->request_mallocator);
xbt_mallocator_free(smpi_global->message_mallocator);
for (i = 0; i < size; i++) {
xbt_fifo_free(smpi_global->pending_send_request_queues[i]);
- SIMIX_mutex_destroy(smpi_global->pending_send_request_queues_mutexes[i]);
xbt_fifo_free(smpi_global->pending_recv_request_queues[i]);
- SIMIX_mutex_destroy(smpi_global->pending_recv_request_queues_mutexes[i]);
xbt_fifo_free(smpi_global->received_message_queues[i]);
- SIMIX_mutex_destroy(smpi_global->received_message_queues_mutexes[i]);
}
xbt_free(smpi_global->pending_send_request_queues);
- xbt_free(smpi_global->pending_send_request_queues_mutexes);
xbt_free(smpi_global->pending_recv_request_queues);
- xbt_free(smpi_global->pending_recv_request_queues_mutexes);
xbt_free(smpi_global->received_message_queues);
- xbt_free(smpi_global->received_message_queues_mutexes);
xbt_free(smpi_global);
SIMIX_create_environment(argv[1]);
SIMIX_function_register("smpi_simulated_main", smpi_simulated_main);
- SIMIX_function_register("smpi_sender", smpi_sender);
- SIMIX_function_register("smpi_receiver", smpi_receiver);
SIMIX_launch_application(argv[2]);
// must initialize globals between creating environment and launching app....