decomp_log_summary Subroutine

public subroutine decomp_log_summary(d, nprocs)

Uses

    • pic_strings
    • pic_logger
  • proc~~decomp_log_summary~~UsesGraph proc~decomp_log_summary decomp_log_summary pic_logger pic_logger proc~decomp_log_summary->pic_logger pic_strings pic_strings proc~decomp_log_summary->pic_strings

Log the process grid + this rank’s subdomain shape. Call from rank 0 after decomp_init_from_config so a run’s decomposition is visible at startup (the halo perimeter is what auto_factor minimises, printed here as the per-rank interior:ghost ratio cue).

Arguments

Type IntentOptional Attributes Name
type(decomp_t), intent(in) :: d
integer, intent(in) :: nprocs

Total compute ranks (px*py)


Calls

proc~~decomp_log_summary~~CallsGraph proc~decomp_log_summary decomp_log_summary info info proc~decomp_log_summary->info to_string to_string proc~decomp_log_summary->to_string

Called by

proc~~decomp_log_summary~~CalledByGraph proc~decomp_log_summary decomp_log_summary proc~engine_setup engine_setup proc~engine_setup->proc~decomp_log_summary proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_setup proc~driver_validate driver_validate proc~driver_validate->proc~engine_setup proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~complete_ocean_create proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~complete_ocean_create

Variables

Type Visibility Attributes Name Initial
character(len=16), private :: shape_note

Source Code

   subroutine decomp_log_summary(d, nprocs)
      !! Log the process grid + this rank's subdomain shape.  Call from
      !! rank 0 after decomp_init_from_config so a run's decomposition is
      !! visible at startup (the halo perimeter is what auto_factor
      !! minimises, printed here as the per-rank interior:ghost ratio cue).
      use pic_logger, only: logger => global_logger
      use pic_strings, only: to_string
      type(decomp_t), intent(in) :: d
      integer, intent(in) :: nprocs
         !! Total compute ranks (px*py)

      character(len=16) :: shape_note

      if (d%px == 1) then
         shape_note = " (x-strips)"
      else if (d%py == 1) then
         shape_note = " (y-strips)"
      else
         shape_note = " (2-D tiles)"
      end if

      call logger%info("Domain decomposition: "//to_string(nprocs)// &
                       " ranks as "//to_string(d%px)//" x "//to_string(d%py)// &
                       " (px x py)"//trim(shape_note)//" over "// &
                       to_string(d%nx_global)//" x "//to_string(d%ny_global)//" cells")
      call logger%info("  rank-0 subdomain: "//to_string(d%nx_local)//" x "// &
                       to_string(d%ny_local)//" interior cells")
   end subroutine decomp_log_summary