run_build_mode Subroutine

public subroutine run_build_mode(ctx)

The real build: a case build and one substep on 1 GPU in this process, measured with cudaMemGetInfo. The estimate stands when the num_gpus=1 row is DOES_NOT_FIT or the inputs are not valid.

Arguments

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

Calls

proc~~run_build_mode~~CallsGraph proc~run_build_mode m_memcheck_build::run_build_mode none~capture_solver_info m_cuda_memcheck_device::cuda_memcheck_device_t%capture_solver_info proc~run_build_mode->none~capture_solver_info none~footprint_bytes m_cuda_memcheck_device::cuda_memcheck_device_t%footprint_bytes proc~run_build_mode->none~footprint_bytes none~init~5 m_backend_setup::backend_setup_t%init proc~run_build_mode->none~init~5 none~mem_info m_cuda_memcheck_device::cuda_memcheck_device_t%mem_info proc~run_build_mode->none~mem_info postprocess postprocess proc~run_build_mode->postprocess proc~allocate_flow_case m_case_factory::allocate_flow_case proc~run_build_mode->proc~allocate_flow_case proc~card_shared_skip m_memcheck_report::card_shared_skip proc~run_build_mode->proc~card_shared_skip proc~estimate_for_num_gpus m_memcheck_estimate::estimate_for_num_gpus proc~run_build_mode->proc~estimate_for_num_gpus proc~fields_plus_halo_bytes_n m_memcheck_estimate::fields_plus_halo_bytes_n proc~run_build_mode->proc~fields_plus_halo_bytes_n proc~finish_step m_base_case::base_case_t%finish_step proc~run_build_mode->proc~finish_step proc~ibm_mask_filename m_ibm::ibm_mask_filename proc~run_build_mode->proc~ibm_mask_filename proc~is_supported_flow_case m_case_factory::is_supported_flow_case proc~run_build_mode->proc~is_supported_flow_case proc~log_info m_logger::log_info proc~run_build_mode->proc~log_info proc~log_warn m_logger::log_warn proc~run_build_mode->proc~log_warn proc~num_gpus_unsupported_reason m_memcheck_estimate::num_gpus_unsupported_reason proc~run_build_mode->proc~num_gpus_unsupported_reason proc~output_field_active m_config::output_field_active proc~run_build_mode->proc~output_field_active proc~peak_fields_lookup m_memory_estimate::peak_fields_lookup proc~run_build_mode->proc~peak_fields_lookup proc~poisson_uses_2decomp m_backend_setup::poisson_uses_2decomp proc~run_build_mode->proc~poisson_uses_2decomp proc~print_rule m_memcheck_report::print_rule proc~run_build_mode->proc~print_rule proc~print_table_header m_memcheck_report::print_table_header proc~run_build_mode->proc~print_table_header proc~print_table_row m_memcheck_report::print_table_row proc~run_build_mode->proc~print_table_row proc~requested_unsupported_reason m_memcheck_estimate::requested_unsupported_reason proc~run_build_mode->proc~requested_unsupported_reason proc~set_curr_fields m_base_case::base_case_t%set_curr_fields proc~run_build_mode->proc~set_curr_fields proc~substep m_base_case::base_case_t%substep proc~run_build_mode->proc~substep proc~to_gib m_memcheck_estimate::to_gib proc~run_build_mode->proc~to_gib proc~abort_run m_logger::abort_run none~capture_solver_info->proc~abort_run none~init~5->proc~log_info cudagetdevicecount cudagetdevicecount none~init~5->cudagetdevicecount cudasetdevice cudasetdevice none~init~5->cudasetdevice mpi_comm_rank mpi_comm_rank none~init~5->mpi_comm_rank omp_get_num_devices omp_get_num_devices none~init~5->omp_get_num_devices omp_set_default_device omp_set_default_device none~init~5->omp_set_default_device none~init~5->proc~abort_run proc~check_cuda m_cuda_errors::check_cuda none~init~5->proc~check_cuda proc~get_dims m_mesh::mesh_t%get_dims none~init~5->proc~get_dims cudamemgetinfo cudamemgetinfo none~mem_info->cudamemgetinfo none~mem_info->proc~abort_run proc~allocate_flow_case->proc~abort_run proc~card_shared_skip->proc~log_info proc~card_shared_skip->proc~to_gib proc~estimate_for_num_gpus->proc~fields_plus_halo_bytes_n proc~estimate_for_num_gpus->proc~log_info proc~estimate_for_num_gpus->proc~to_gib none~fft_path_known m_cuda_memcheck_device::cuda_memcheck_device_t%fft_path_known proc~estimate_for_num_gpus->none~fft_path_known none~overhead_floor_bytes m_cuda_memcheck_device::cuda_memcheck_device_t%overhead_floor_bytes proc~estimate_for_num_gpus->none~overhead_floor_bytes none~overhead_query_bytes m_cuda_memcheck_device::cuda_memcheck_device_t%overhead_query_bytes proc~estimate_for_num_gpus->none~overhead_query_bytes none~probe_ran m_cuda_memcheck_device::cuda_memcheck_device_t%probe_ran proc~estimate_for_num_gpus->none~probe_ran none~uses_distributed_fft m_cuda_memcheck_device::cuda_memcheck_device_t%uses_distributed_fft proc~estimate_for_num_gpus->none~uses_distributed_fft proc~classify m_memcheck_estimate::classify proc~estimate_for_num_gpus->proc~classify proc~cuda_fft_spectral_dims m_cuda_poisson_fft::cuda_fft_spectral_dims proc~estimate_for_num_gpus->proc~cuda_fft_spectral_dims proc~gpu_io_staging_bytes m_memory_estimate::gpu_io_staging_bytes proc~estimate_for_num_gpus->proc~gpu_io_staging_bytes proc~mirror_buffer_bytes_100 m_memory_estimate::mirror_buffer_bytes_100 proc~estimate_for_num_gpus->proc~mirror_buffer_bytes_100 proc~spectral_extra_bytes_110 m_memory_estimate::spectral_extra_bytes_110 proc~estimate_for_num_gpus->proc~spectral_extra_bytes_110 proc~spectral_slab_bytes m_memory_estimate::spectral_slab_bytes proc~estimate_for_num_gpus->proc~spectral_slab_bytes proc~stretched_y_matrix_bytes m_memory_estimate::stretched_y_matrix_bytes proc~estimate_for_num_gpus->proc~stretched_y_matrix_bytes none~sz~6 m_cuda_memcheck_device::cuda_memcheck_device_t%sz proc~fields_plus_halo_bytes_n->none~sz~6 proc~padded_cells m_memory_estimate::padded_cells proc~fields_plus_halo_bytes_n->proc~padded_cells proc~padded_halo_bytes m_memory_estimate::padded_halo_bytes proc~fields_plus_halo_bytes_n->proc~padded_halo_bytes proc~compute_derived_fields m_postprocess::compute_derived_fields proc~finish_step->proc~compute_derived_fields proc~compute_pressure_vert m_postprocess::compute_pressure_vert proc~finish_step->proc~compute_pressure_vert interface~str m_logger::str proc~log_info->interface~str proc~log_info->mpi_comm_rank mpi_comm_size mpi_comm_size proc~log_info->mpi_comm_size mpi_finalized mpi_finalized proc~log_info->mpi_finalized mpi_initialized mpi_initialized proc~log_info->mpi_initialized proc~log_warn->interface~str proc~log_warn->mpi_comm_rank proc~log_warn->mpi_comm_size proc~log_warn->mpi_finalized proc~log_warn->mpi_initialized proc~cuda_fft_decomp_reason m_cuda_poisson_fft::cuda_fft_decomp_reason proc~num_gpus_unsupported_reason->proc~cuda_fft_decomp_reason proc~has_output_field m_config::has_output_field proc~output_field_active->proc~has_output_field proc~nolds_of m_time_integrator::nolds_of proc~peak_fields_lookup->proc~nolds_of proc~print_rule->proc~log_info proc~print_table_header->proc~log_info proc~print_table_row->proc~log_info proc~requested_unsupported_reason->proc~num_gpus_unsupported_reason apply_BC apply_BC proc~substep->apply_BC define_BC define_BC proc~substep->define_BC forcings forcings proc~substep->forcings none~body m_ibm::ibm_t%body proc~substep->none~body proc~get_block m_allocator::allocator_t%get_block proc~substep->proc~get_block proc~precorrect_walls m_solver::solver_t%precorrect_walls proc~substep->proc~precorrect_walls proc~pressure_correction m_solver::solver_t%pressure_correction proc~substep->proc~pressure_correction proc~release_block m_allocator::allocator_t%release_block proc~substep->proc~release_block proc~vecmult_base m_base_backend::base_backend_t%vecmult_base none~body->proc~vecmult_base none~heap_bytes m_cuda_memcheck_device::cuda_memcheck_device_t%heap_bytes none~overhead_floor_bytes->none~heap_bytes proc~abort_run->interface~str proc~abort_run->mpi_comm_rank proc~abort_run->mpi_comm_size proc~abort_run->mpi_finalized proc~abort_run->mpi_initialized mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier proc~check_cuda->interface~str proc~check_cuda->proc~abort_run cudageterrorstring cudageterrorstring proc~check_cuda->cudageterrorstring proc~compute_derived_fields->proc~get_block proc~compute_derived_fields->proc~release_block proc~compute_qcriterion_base m_base_backend::base_backend_t%compute_qcriterion_base proc~compute_derived_fields->proc~compute_qcriterion_base proc~compute_vorticity_base m_base_backend::base_backend_t%compute_vorticity_base proc~compute_derived_fields->proc~compute_vorticity_base proc~reorder_base m_base_backend::base_backend_t%reorder_base proc~compute_derived_fields->proc~reorder_base proc~tds_solve_base m_base_backend::base_backend_t%tds_solve_base proc~compute_derived_fields->proc~tds_solve_base proc~compute_pressure_vert->proc~abort_run proc~compute_pressure_vert->proc~get_block proc~interpl_c2v m_vector_calculus::vector_calculus_t%interpl_c2v proc~compute_pressure_vert->proc~interpl_c2v proc~vecadd_base m_base_backend::base_backend_t%vecadd_base proc~compute_pressure_vert->proc~vecadd_base proc~create_block m_allocator::allocator_t%create_block proc~get_block->proc~create_block proc~set_shape m_field::field_t%set_shape proc~get_block->proc~set_shape proc~get_dims_dataloc m_mesh::get_dims_dataloc proc~get_dims->proc~get_dims_dataloc proc~gpu_io_staging_parts m_memory_estimate::gpu_io_staging_parts proc~gpu_io_staging_bytes->proc~gpu_io_staging_parts proc~nolds_of->proc~abort_run proc~padded_dim m_allocator::padded_dim proc~padded_cells->proc~padded_dim proc~halo_bytes m_memory_estimate::halo_bytes proc~padded_halo_bytes->proc~halo_bytes proc~padded_halo_bytes->proc~padded_dim proc~precorrect_walls->proc~abort_run proc~field_add_face_from_field_base m_base_backend::base_backend_t%field_add_face_from_field_base proc~precorrect_walls->proc~field_add_face_from_field_base proc~field_scale_base m_base_backend::base_backend_t%field_scale_base proc~precorrect_walls->proc~field_scale_base proc~field_set_face_base m_base_backend::base_backend_t%field_set_face_base proc~precorrect_walls->proc~field_set_face_base proc~pressure_correction->proc~get_block proc~pressure_correction->proc~release_block proc~divergence_v2p m_solver::solver_t%divergence_v2p proc~pressure_correction->proc~divergence_v2p proc~gradient_p2v m_solver::solver_t%gradient_p2v proc~pressure_correction->proc~gradient_p2v proc~set_data_loc m_field::field_t%set_data_loc proc~pressure_correction->proc~set_data_loc proc~pressure_correction->proc~vecadd_base proc~spectral_extra_bytes_110->proc~spectral_slab_bytes proc~compute_qcriterion_base->proc~abort_run proc~compute_vorticity_base->proc~abort_run proc~divergence_v2c m_vector_calculus::vector_calculus_t%divergence_v2c proc~divergence_v2p->proc~divergence_v2c proc~field_add_face_from_field_base->proc~abort_run proc~field_scale_base->proc~abort_run proc~field_set_face_base->proc~abort_run proc~gradient_c2v m_vector_calculus::vector_calculus_t%gradient_c2v proc~gradient_p2v->proc~gradient_c2v proc~interpl_c2v->proc~abort_run proc~interpl_c2v->proc~get_block proc~interpl_c2v->proc~release_block proc~interpl_c2v->proc~reorder_base proc~interpl_c2v->proc~tds_solve_base proc~reorder_base->proc~abort_run proc~tds_solve_base->proc~abort_run proc~vecadd_base->proc~abort_run proc~vecmult_base->proc~abort_run proc~divergence_v2c->proc~abort_run proc~divergence_v2c->proc~get_block proc~divergence_v2c->proc~release_block proc~divergence_v2c->proc~reorder_base proc~divergence_v2c->proc~tds_solve_base proc~divergence_v2c->proc~vecadd_base proc~gradient_c2v->proc~abort_run proc~gradient_c2v->proc~get_block proc~gradient_c2v->proc~release_block proc~gradient_c2v->proc~reorder_base proc~gradient_c2v->proc~tds_solve_base

Called by

proc~~run_build_mode~~CalledByGraph proc~run_build_mode m_memcheck_build::run_build_mode program~x3d2_memcheck x3d2_memcheck program~x3d2_memcheck->proc~run_build_mode