bem_periodic_checkpoint Module

accepted batch 境界で二重化した定期チェックポイントを保存・解決する。


Uses

  • module~~bem_periodic_checkpoint~~UsesGraph module~bem_periodic_checkpoint bem_periodic_checkpoint module~bem_app_config_types bem_app_config_types module~bem_periodic_checkpoint->module~bem_app_config_types module~bem_charge_ledger bem_charge_ledger module~bem_periodic_checkpoint->module~bem_charge_ledger module~bem_checkpoint_contract bem_checkpoint_contract module~bem_periodic_checkpoint->module~bem_checkpoint_contract module~bem_filesystem bem_filesystem module~bem_periodic_checkpoint->module~bem_filesystem module~bem_kinds bem_kinds module~bem_periodic_checkpoint->module~bem_kinds module~bem_mpi bem_mpi module~bem_periodic_checkpoint->module~bem_mpi module~bem_output_writer bem_output_writer module~bem_periodic_checkpoint->module~bem_output_writer module~bem_restart bem_restart module~bem_periodic_checkpoint->module~bem_restart module~bem_types bem_types module~bem_periodic_checkpoint->module~bem_types module~bem_app_config_types->module~bem_kinds module~bem_app_config_types->module~bem_types module~bem_physics_config_types bem_physics_config_types module~bem_app_config_types->module~bem_physics_config_types module~bem_charge_ledger->module~bem_kinds ieee_arithmetic ieee_arithmetic module~bem_charge_ledger->ieee_arithmetic module~bem_checkpoint_contract->module~bem_filesystem module~bem_checkpoint_contract->module~bem_kinds iso_c_binding iso_c_binding module~bem_filesystem->iso_c_binding iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env module~bem_mpi->module~bem_kinds module~bem_output_writer->module~bem_app_config_types module~bem_output_writer->module~bem_charge_ledger module~bem_output_writer->module~bem_checkpoint_contract module~bem_output_writer->module~bem_filesystem module~bem_output_writer->module~bem_kinds module~bem_output_writer->module~bem_types module~bem_electrostatic_snapshot bem_electrostatic_snapshot module~bem_output_writer->module~bem_electrostatic_snapshot module~bem_restart->module~bem_app_config_types module~bem_restart->module~bem_charge_ledger module~bem_restart->module~bem_checkpoint_contract module~bem_restart->module~bem_kinds module~bem_restart->module~bem_mpi module~bem_restart->module~bem_types module~bem_restart->ieee_arithmetic module~bem_types->module~bem_kinds module~bem_electrostatic_snapshot->module~bem_kinds module~bem_electrostatic_snapshot->module~bem_types module~bem_electrostatic_snapshot->ieee_arithmetic module~bem_electrostatic_snapshot->module~bem_physics_config_types module~bem_constants bem_constants module~bem_electrostatic_snapshot->module~bem_constants module~bem_coulomb_fmm_periodic_nonzero_reference bem_coulomb_fmm_periodic_nonzero_reference module~bem_electrostatic_snapshot->module~bem_coulomb_fmm_periodic_nonzero_reference module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum bem_coulomb_fmm_periodic_nonzero_upper_vacuum module~bem_electrostatic_snapshot->module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum module~bem_field_solver bem_field_solver module~bem_electrostatic_snapshot->module~bem_field_solver module~bem_panel_geometry bem_panel_geometry module~bem_electrostatic_snapshot->module~bem_panel_geometry module~bem_panel_kernel bem_panel_kernel module~bem_electrostatic_snapshot->module~bem_panel_kernel module~bem_periodic_zero_mode_eval bem_periodic_zero_mode_eval module~bem_electrostatic_snapshot->module~bem_periodic_zero_mode_eval module~bem_periodic_zero_mode_plan bem_periodic_zero_mode_plan module~bem_electrostatic_snapshot->module~bem_periodic_zero_mode_plan module~bem_string_utils bem_string_utils module~bem_electrostatic_snapshot->module~bem_string_utils module~bem_physics_config_types->module~bem_kinds module~bem_physics_config_types->module~bem_types module~bem_physics_config_types->ieee_arithmetic module~bem_physics_config_types->module~bem_string_utils module~bem_constants->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_types module~bem_coulomb_fmm_periodic_nonzero_reference->ieee_arithmetic module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_constants module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_panel_geometry module~bem_triangle_quadrature bem_triangle_quadrature module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_triangle_quadrature module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_types module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->ieee_arithmetic module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_constants module~bem_field_solver->module~bem_kinds module~bem_field_solver->module~bem_types module~bem_field_solver->ieee_arithmetic module~bem_field_solver->module~bem_physics_config_types module~bem_field_solver->module~bem_constants module~bem_field_solver->module~bem_string_utils module~bem_coulomb_fmm_core bem_coulomb_fmm_core module~bem_field_solver->module~bem_coulomb_fmm_core module~bem_panel_geometry->module~bem_kinds module~bem_panel_geometry->ieee_arithmetic module~bem_panel_kernel->module~bem_kinds module~bem_panel_kernel->module~bem_constants module~bem_panel_kernel->module~bem_panel_geometry module~bem_panel_self_terms bem_panel_self_terms module~bem_panel_kernel->module~bem_panel_self_terms module~bem_periodic_zero_mode_eval->module~bem_kinds module~bem_periodic_zero_mode_eval->module~bem_constants module~bem_periodic_zero_mode_eval->module~bem_periodic_zero_mode_plan module~bem_periodic_zero_mode_plan->module~bem_kinds module~bem_periodic_zero_mode_plan->module~bem_types module~bem_periodic_zero_mode_plan->ieee_arithmetic module~bem_periodic_zero_mode_plan->module~bem_constants module~bem_coulomb_fmm_core->module~bem_kinds module~bem_coulomb_fmm_types bem_coulomb_fmm_types module~bem_coulomb_fmm_core->module~bem_coulomb_fmm_types module~bem_panel_self_terms->module~bem_kinds module~bem_panel_self_terms->module~bem_panel_geometry module~bem_triangle_quadrature->module~bem_kinds module~bem_triangle_quadrature->module~bem_constants module~bem_triangle_quadrature->module~bem_panel_geometry module~bem_coulomb_fmm_types->module~bem_kinds module~bem_coulomb_fmm_types->module~bem_panel_geometry module~bem_coulomb_fmm_types->module~bem_periodic_zero_mode_plan

Used by

  • module~~bem_periodic_checkpoint~~UsedByGraph module~bem_periodic_checkpoint bem_periodic_checkpoint module~bem_simulator_loop bem_simulator_loop module~bem_simulator_loop->module~bem_periodic_checkpoint program~main main program~main->module~bem_periodic_checkpoint

Subroutines

public subroutine maybe_write_periodic_checkpoint(app, mesh, stats, state, mpi, charge_ledger)

設定した stride の accepted batch で、非active slotへ完全な再開状態を書いてからindexを切り替える。

Arguments

Type IntentOptional Attributes Name
type(app_config), intent(in) :: app
type(mesh_type), intent(in) :: mesh
type(sim_stats), intent(in) :: stats
type(injection_state), intent(in), optional :: state
type(mpi_context), intent(in) :: mpi
type(charge_ledger_type), intent(in), optional :: charge_ledger

public subroutine resolve_latest_checkpoint_dir(base_dir, checkpoint_dir)

base directory直下の最終出力と両定期slotを比較し、batch数が新しい完全checkpointを返す。 indexは同batchのslotを選ぶtie-breakにだけ使う。欠落、破損、古いindexは complete manifestを持つload可能なslotの回収を妨げない。

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: base_dir
character(len=*), intent(out) :: checkpoint_dir