mqc_group_batching Module


Uses

  • module~~mqc_group_batching~~UsesGraph module~mqc_group_batching mqc_group_batching module~mqc_mpi_tags mqc_mpi_tags module~mqc_group_batching->module~mqc_mpi_tags module~mqc_result_types mqc_result_types module~mqc_group_batching->module~mqc_result_types pic_io pic_io module~mqc_group_batching->pic_io pic_logger pic_logger module~mqc_group_batching->pic_logger pic_mpi_lib pic_mpi_lib module~mqc_group_batching->pic_mpi_lib pic_timer pic_timer module~mqc_group_batching->pic_timer pic_types pic_types module~mqc_group_batching->pic_types module~mqc_mpi_tags->pic_types module~mqc_result_types->pic_mpi_lib module~mqc_result_types->pic_types module~mqc_error mqc_error module~mqc_result_types->module~mqc_error

Used by

  • module~~mqc_group_batching~~UsedByGraph module~mqc_group_batching mqc_group_batching module~mpi_fragment_work_smod mpi_fragment_work_smod module~mpi_fragment_work_smod->module~mqc_group_batching module~mqc_gmbe_fragment_distribution_scheme mqc_gmbe_fragment_distribution_scheme module~mqc_gmbe_fragment_distribution_scheme->module~mqc_group_batching proc~gmbe_run_distributed gmbe_context_t%gmbe_run_distributed proc~gmbe_run_distributed->module~mqc_gmbe_fragment_distribution_scheme proc~gmbe_run_serial gmbe_context_t%gmbe_run_serial proc~gmbe_run_serial->module~mqc_gmbe_fragment_distribution_scheme

Subroutines

public subroutine append_result_to_batch(item_idx, result, batch_count, batch_ids, batch_results)

Append a completed fragment result to the current outbound batch.

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: item_idx
type(calculation_result_t), intent(in) :: result
integer(kind=int32), intent(inout) :: batch_count
integer(kind=int64), intent(inout) :: batch_ids(:)
type(calculation_result_t), intent(inout) :: batch_results(:)

public subroutine flush_group_results(world_comm, batch_count, batch_ids, batch_results)

Send all currently batched results to rank 0 and reset the batch.

Arguments

Type IntentOptional Attributes Name
type(comm_t), intent(in) :: world_comm
integer(kind=int32), intent(inout) :: batch_count
integer(kind=int64), intent(inout) :: batch_ids(:)
type(calculation_result_t), intent(inout) :: batch_results(:)

public subroutine handle_group_results(world_comm, results, results_received, total_items, coord_timer, group_done_count, label)

Receive grouped result batches on rank 0 and update global progress counters.

Arguments

Type IntentOptional Attributes Name
type(comm_t), intent(in) :: world_comm
type(calculation_result_t), intent(inout) :: results(:)
integer(kind=int64), intent(inout) :: results_received
integer(kind=int64), intent(in) :: total_items
type(timer_type), intent(in) :: coord_timer
integer, intent(inout) :: group_done_count
character(len=*), intent(in), optional :: label

public subroutine handle_local_worker_results_to_batch(node_comm, world_comm, worker_map, batch_count, batch_ids, batch_results, results_received)

Drain pending local worker results and append them to the outbound batch.

Arguments

Type IntentOptional Attributes Name
type(comm_t), intent(in) :: node_comm
type(comm_t), intent(in) :: world_comm
integer(kind=int64), intent(inout) :: worker_map(:)
integer(kind=int32), intent(inout) :: batch_count
integer(kind=int64), intent(inout) :: batch_ids(:)
type(calculation_result_t), intent(inout) :: batch_results(:)
integer(kind=int64), intent(inout), optional :: results_received

public subroutine handle_node_results_to_batch(world_comm, batch_count, batch_ids, batch_results, results_received)

Drain pending node-level results and append them to the outbound batch.

Arguments

Type IntentOptional Attributes Name
type(comm_t), intent(in) :: world_comm
integer(kind=int32), intent(inout) :: batch_count
integer(kind=int64), intent(inout) :: batch_ids(:)
type(calculation_result_t), intent(inout) :: batch_results(:)
integer(kind=int64), intent(inout), optional :: results_received