m_memcheck_context Module

Run state of x3d2-memcheck, passed explicitly to every routine.


Uses

  • module~~m_memcheck_context~~UsesGraph module~m_memcheck_context m_memcheck_context module~m_common m_common module~m_memcheck_context->module~m_common module~m_config m_config module~m_memcheck_context->module~m_config module~m_cuda_memcheck_device m_cuda_memcheck_device module~m_memcheck_context->module~m_cuda_memcheck_device module~m_logger m_logger module~m_memcheck_context->module~m_logger module~m_mesh m_mesh module~m_memcheck_context->module~m_mesh module~m_common->module~m_logger m_mpi m_mpi module~m_common->m_mpi module~m_config->module~m_common module~m_config->module~m_logger iso_fortran_env iso_fortran_env module~m_config->iso_fortran_env module~m_cuda_memcheck_device->module~m_common module~m_cuda_memcheck_device->module~m_logger module~m_cuda_memcheck_device->module~m_mesh cudafor cudafor module~m_cuda_memcheck_device->cudafor cufft cufft module~m_cuda_memcheck_device->cufft cufftXt cufftXt module~m_cuda_memcheck_device->cufftXt iso_c_binding iso_c_binding module~m_cuda_memcheck_device->iso_c_binding module~m_base_case m_base_case module~m_cuda_memcheck_device->module~m_base_case module~m_cuda_common m_cuda_common module~m_cuda_memcheck_device->module~m_cuda_common module~m_cuda_poisson_fft m_cuda_poisson_fft module~m_cuda_memcheck_device->module~m_cuda_poisson_fft module~m_memory_estimate m_memory_estimate module~m_cuda_memcheck_device->module~m_memory_estimate module~m_logger->iso_fortran_env module~m_logger->m_mpi module~m_mesh->module~m_common module~m_mesh->module~m_logger module~m_mesh->m_mpi module~m_field m_field module~m_mesh->module~m_field module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content module~m_base_case->module~m_common module~m_base_case->module~m_config module~m_base_case->module~m_logger module~m_base_case->module~m_mesh module~m_base_case->m_mpi module~m_base_case->module~m_field module~m_allocator m_allocator module~m_base_case->module~m_allocator module~m_base_backend m_base_backend module~m_base_case->module~m_base_backend module~m_io_manager m_io_manager module~m_base_case->module~m_io_manager module~m_monitoring m_monitoring module~m_base_case->module~m_monitoring module~m_postprocess m_postprocess module~m_base_case->module~m_postprocess module~m_solver m_solver module~m_base_case->module~m_solver module~m_cuda_poisson_fft->module~m_common module~m_cuda_poisson_fft->module~m_logger module~m_cuda_poisson_fft->module~m_mesh module~m_cuda_poisson_fft->cudafor module~m_cuda_poisson_fft->cufft module~m_cuda_poisson_fft->cufftXt module~m_cuda_poisson_fft->iso_c_binding module~m_cuda_poisson_fft->m_mpi module~m_cuda_poisson_fft->module~m_field module~m_cuda_allocator m_cuda_allocator module~m_cuda_poisson_fft->module~m_cuda_allocator module~m_cuda_errors m_cuda_errors module~m_cuda_poisson_fft->module~m_cuda_errors module~m_cuda_sendrecv m_cuda_sendrecv module~m_cuda_poisson_fft->module~m_cuda_sendrecv module~m_cuda_spectral m_cuda_spectral module~m_cuda_poisson_fft->module~m_cuda_spectral module~m_poisson_fft m_poisson_fft module~m_cuda_poisson_fft->module~m_poisson_fft module~m_tdsops m_tdsops module~m_cuda_poisson_fft->module~m_tdsops module~m_field->module~m_common module~m_field->iso_c_binding module~m_memory_estimate->module~m_common module~m_memory_estimate->module~m_config module~m_memory_estimate->module~m_allocator module~m_time_integrator m_time_integrator module~m_memory_estimate->module~m_time_integrator module~m_mesh_content->module~m_common module~m_mesh_content->module~m_logger module~m_allocator->module~m_common module~m_allocator->module~m_field module~m_base_backend->module~m_common module~m_base_backend->module~m_logger module~m_base_backend->module~m_mesh module~m_base_backend->iso_c_binding module~m_base_backend->m_mpi module~m_base_backend->module~m_field module~m_base_backend->module~m_allocator module~m_base_backend->module~m_poisson_fft module~m_base_backend->module~m_tdsops module~m_cuda_allocator->module~m_common module~m_cuda_allocator->module~m_mesh module~m_cuda_allocator->module~m_field module~m_cuda_allocator->module~m_allocator module~m_cuda_errors->module~m_logger module~m_cuda_errors->cudafor module~m_cuda_sendrecv->module~m_common module~m_cuda_sendrecv->module~m_logger module~m_cuda_sendrecv->cudafor module~m_cuda_sendrecv->m_mpi module~m_cuda_sendrecv->module~m_cuda_errors module~m_cuda_spectral->module~m_common module~m_cuda_spectral->cudafor module~m_io_manager->m_mpi module~m_io_manager->module~m_solver module~m_checkpoint_manager m_checkpoint_manager module~m_io_manager->module~m_checkpoint_manager module~m_checkpoint_state m_checkpoint_state module~m_io_manager->module~m_checkpoint_state module~m_snapshot_manager m_snapshot_manager module~m_io_manager->module~m_snapshot_manager module~m_stats m_stats module~m_io_manager->module~m_stats module~m_monitoring->module~m_common module~m_monitoring->module~m_logger module~m_monitoring->module~m_field module~m_monitoring->module~m_solver module~m_scalar_series m_scalar_series module~m_monitoring->module~m_scalar_series module~m_poisson_fft->module~m_common module~m_poisson_fft->module~m_logger module~m_poisson_fft->module~m_mesh module~m_poisson_fft->module~m_field module~m_poisson_fft->module~m_tdsops module~m_postprocess->module~m_common module~m_postprocess->module~m_logger module~m_postprocess->module~m_field module~m_postprocess->module~m_solver module~m_solver->module~m_common module~m_solver->module~m_config module~m_solver->module~m_logger module~m_solver->module~m_mesh module~m_solver->module~m_field module~m_solver->module~m_allocator module~m_solver->module~m_base_backend module~m_solver->module~m_tdsops module~m_solver->module~m_time_integrator module~m_ibm m_ibm module~m_solver->module~m_ibm module~m_les m_les module~m_solver->module~m_les module~m_tdsops_setup m_tdsops_setup module~m_solver->module~m_tdsops_setup module~m_vector_calculus m_vector_calculus module~m_solver->module~m_vector_calculus module~m_tdsops->module~m_common module~m_tdsops->module~m_logger module~m_time_integrator->module~m_common module~m_time_integrator->module~m_logger module~m_time_integrator->module~m_field module~m_time_integrator->module~m_allocator module~m_time_integrator->module~m_base_backend module~m_checkpoint_manager->module~m_common module~m_checkpoint_manager->module~m_config module~m_checkpoint_manager->module~m_logger module~m_checkpoint_manager->m_mpi module~m_checkpoint_manager->module~m_field module~m_checkpoint_manager->module~m_solver module~m_checkpoint_manager->module~m_checkpoint_state module~m_checkpoint_manager->module~m_stats module~m_io_field_utils m_io_field_utils module~m_checkpoint_manager->module~m_io_field_utils module~m_io_session m_io_session module~m_checkpoint_manager->module~m_io_session module~m_checkpoint_state->module~m_io_session module~m_ibm->module~m_common module~m_ibm->module~m_logger module~m_ibm->module~m_mesh module~m_ibm->m_mpi module~m_ibm->module~m_field module~m_ibm->module~m_allocator module~m_ibm->module~m_base_backend module~m_ibm->module~m_io_session module~m_les->module~m_common module~m_les->module~m_config module~m_les->module~m_logger module~m_les->module~m_mesh module~m_les->module~m_field module~m_les->module~m_base_backend module~m_les->module~m_tdsops module~m_scalar_series->module~m_common module~m_scalar_series->module~m_logger module~m_snapshot_manager->module~m_common module~m_snapshot_manager->module~m_config module~m_snapshot_manager->module~m_logger module~m_snapshot_manager->m_mpi module~m_snapshot_manager->module~m_field module~m_snapshot_manager->module~m_solver module~m_snapshot_manager->module~m_io_field_utils module~m_snapshot_manager->module~m_io_session module~m_stats->module~m_common module~m_stats->module~m_config module~m_stats->module~m_logger module~m_stats->module~m_field module~m_stats->module~m_solver module~m_stats->module~m_io_session module~m_tdsops_setup->module~m_common module~m_tdsops_setup->module~m_logger module~m_tdsops_setup->module~m_mesh module~m_tdsops_setup->module~m_base_backend module~m_tdsops_setup->module~m_tdsops module~m_vector_calculus->module~m_common module~m_vector_calculus->module~m_logger module~m_vector_calculus->module~m_field module~m_vector_calculus->module~m_allocator module~m_vector_calculus->module~m_base_backend module~m_vector_calculus->module~m_tdsops module~m_io_field_utils->module~m_common module~m_io_field_utils->module~m_logger module~m_io_field_utils->module~m_field module~m_io_field_utils->module~m_solver module~m_io_base m_io_base module~m_io_field_utils->module~m_io_base module~m_nvtx m_nvtx module~m_io_field_utils->module~m_nvtx module~m_io_session->module~m_common module~m_io_session->module~m_logger module~m_io_session->module~m_field module~m_io_session->module~m_base_backend module~m_io_backend m_io_backend module~m_io_session->module~m_io_backend module~m_io_session->module~m_io_base module~m_io_backend->module~m_common module~m_io_backend->module~m_logger module~m_io_backend->module~m_field module~m_io_backend->module~m_base_backend module~m_io_backend->module~m_io_base module~m_io_base->module~m_common module~m_io_base->module~m_field module~m_io_base->module~m_base_backend module~m_nvtx->iso_c_binding

Used by

  • module~~m_memcheck_context~~UsedByGraph module~m_memcheck_context m_memcheck_context module~m_memcheck_build m_memcheck_build module~m_memcheck_build->module~m_memcheck_context module~m_memcheck_estimate m_memcheck_estimate module~m_memcheck_build->module~m_memcheck_estimate module~m_memcheck_report m_memcheck_report module~m_memcheck_build->module~m_memcheck_report module~m_memcheck_estimate->module~m_memcheck_context module~m_memcheck_report->module~m_memcheck_context module~m_memcheck_report->module~m_memcheck_estimate program~x3d2_memcheck x3d2_memcheck program~x3d2_memcheck->module~m_memcheck_context program~x3d2_memcheck->module~m_memcheck_build program~x3d2_memcheck->module~m_memcheck_estimate program~x3d2_memcheck->module~m_memcheck_report

Derived Types

type, public ::  memcheck_ctx_t

Components

Type Visibility Attributes Name Initial
type(cuda_memcheck_device_t), public :: device
character(len=256), public :: input_path
character(len=7), public :: run_mode

STATIC (--static), DEFAULT (no flag) or BUILD (--build).

integer, public :: extensive_substeps = 0

The substep count of --extensive, 0 when it is not given.

type(domain_config_t), public :: domain_cfg
type(solver_config_t), public :: solver_cfg
type(les_config_t), public :: les_cfg
type(checkpoint_config_t), public :: checkpoint_cfg
integer, public :: gdims(3)
integer, public :: cdims(3)
logical, public :: periodic_x
logical, public :: periodic_y
logical, public :: periodic_z
integer, public :: bc_code
logical, public :: bc_is_000
logical, public :: bc_is_010
logical, public :: bc_is_100
logical, public :: bc_is_110
logical, public :: multi_gpu_supported
integer, public :: peak_fields
real(kind=dp), public :: card_gib
real(kind=dp), public :: card_free_gib = 0._dp

Free memory on the card at the start.

logical, public :: gpu_io_device_write = .false.

Whether snapshot and checkpoint writes stage through a device buffer, the write mode name, and the reason when there is no staging.

character(len=16), public :: gpu_io_mode_name = 'auto'
character(len=64), public :: gpu_io_reason = ''
real(kind=dp), public :: estimate_ng1_gib

The num_gpus=1 row of the estimate: the CHECK line of --build compares it with the measurement. The verdict is blank for an unsupported row.

character(len=12), public :: ng1_verdict = ''
character(len=5), public :: probe_plan = 'small'

The FFT probe plan: 'full' when the estimate uses the full-grid probe's result, else 'small' (also when the full-grid probe failed). probe_reason says why the full-grid probe has no result, and probe_note_shown is set once estimate_for_num_gpus has printed it.

character(len=96), public :: probe_reason = ''
logical, public :: probe_note_shown = .false.
character(len=12), public :: final_verdict

The verdict of the requested nproc_dir, which sets the exit code.

real(kind=dp), public :: io_staging_ng1_gib = 0._dp

The IO staging term (GiB) at num_gpus=1.

logical, public :: output_vorticity = .false.

The output fields and the substep count the real build measured.

logical, public :: output_qcriterion = .false.

The output fields and the substep count the real build measured.

integer, public :: measured_n_substeps
integer, public :: irank

Subroutines

public subroutine parse_args(ctx)

Arguments

Type IntentOptional Attributes Name
type(memcheck_ctx_t), intent(inout) :: ctx

public subroutine read_config(ctx)

Arguments

Type IntentOptional Attributes Name
type(memcheck_ctx_t), intent(inout) :: ctx

public subroutine classify_bc(ctx)

The BC parse and four-way split of classify_boundaries in m_mesh.

Arguments

Type IntentOptional Attributes Name
type(memcheck_ctx_t), intent(inout) :: ctx

public subroutine resolve_gpu_io_mode(ctx)

Resolves whether snapshot and checkpoint writes stage through a device buffer, with the environment reader the solver uses for the write mode.

Arguments

Type IntentOptional Attributes Name
type(memcheck_ctx_t), intent(inout) :: ctx