mqc_mpi_tags.f90 Source File

contains MPI tags used in the MQC parallel implementation


Files dependent on this one

sourcefile~~mqc_mpi_tags.f90~~AfferentGraph sourcefile~mqc_mpi_tags.f90 mqc_mpi_tags.f90 sourcefile~mqc_gmbe_fragment_distribution_scheme.f90 mqc_gmbe_fragment_distribution_scheme.f90 sourcefile~mqc_gmbe_fragment_distribution_scheme.f90->sourcefile~mqc_mpi_tags.f90 sourcefile~mqc_mbe_fragment_distribution_scheme.f90 mqc_mbe_fragment_distribution_scheme.F90 sourcefile~mqc_gmbe_fragment_distribution_scheme.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_mbe.f90 mqc_mbe.f90 sourcefile~mqc_mbe.f90->sourcefile~mqc_mpi_tags.f90 sourcefile~mqc_mbe_fragment_distribution_scheme.f90->sourcefile~mqc_mpi_tags.f90 sourcefile~mqc_mbe_fragment_distribution_scheme.f90->sourcefile~mqc_mbe.f90 sourcefile~mqc_driver.f90 mqc_driver.f90 sourcefile~mqc_driver.f90->sourcefile~mqc_mbe.f90 sourcefile~mqc_driver.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_many_body_expansion.f90 mqc_many_body_expansion.f90 sourcefile~mqc_driver.f90->sourcefile~mqc_many_body_expansion.f90 sourcefile~mqc_many_body_expansion.f90->sourcefile~mqc_gmbe_fragment_distribution_scheme.f90 sourcefile~mqc_many_body_expansion.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_mbe_fragment_distribution_scheme_hessian.f90 mqc_mbe_fragment_distribution_scheme_hessian.F90 sourcefile~mqc_mbe_fragment_distribution_scheme_hessian.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_mbe_mpi_fragment_distribution_scheme.f90 mqc_mbe_mpi_fragment_distribution_scheme.F90 sourcefile~mqc_mbe_mpi_fragment_distribution_scheme.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_serial_fragment_processor.f90 mqc_serial_fragment_processor.f90 sourcefile~mqc_serial_fragment_processor.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~mqc_unfragmented_workflow.f90 mqc_unfragmented_workflow.f90 sourcefile~mqc_unfragmented_workflow.f90->sourcefile~mqc_mbe_fragment_distribution_scheme.f90 sourcefile~main.f90 main.f90 sourcefile~main.f90->sourcefile~mqc_driver.f90 sourcefile~mqc_calculation_interface.f90 mqc_calculation_interface.f90 sourcefile~mqc_calculation_interface.f90->sourcefile~mqc_driver.f90

Source Code

!! contains MPI tags used in the MQC parallel implementation
module mqc_mpi_tags
   !! Module defining MPI communication tags for clarity and maintainability
   use pic_types, only: default_int
   implicit none
   private

   ! Local worker communication tags (shared memory within a node)
   integer(default_int), parameter, public :: TAG_WORKER_REQUEST = 200
      !! Worker requests work from node coordinator
   integer(default_int), parameter, public :: TAG_WORKER_FRAGMENT = 201
      !! Coordinator sends fragment data to worker
   integer(default_int), parameter, public :: TAG_WORKER_FINISH = 202
      !! Coordinator signals worker to finish
   integer(default_int), parameter, public :: TAG_WORKER_SCALAR_RESULT = 203
      !! Worker sends scalar results back to coordinator
   integer(default_int), parameter, public :: TAG_WORKER_MATRIX_RESULT = 204
      !! Worker sends matrix results back to coordinator

   ! Remote node communication tags (between nodes via world communicator)
   integer(default_int), parameter, public :: TAG_NODE_REQUEST = 300
      !! Node coordinator requests work from global coordinator
   integer(default_int), parameter, public :: TAG_NODE_FRAGMENT = 301
      !! Global coordinator sends fragment data to node coordinator
   integer(default_int), parameter, public :: TAG_NODE_FINISH = 302
      !! Global coordinator signals node coordinator to finish
   integer(default_int), parameter, public :: TAG_NODE_SCALAR_RESULT = 303
      !! Node coordinator sends results (fragment_idx + scalar) to global coordinator
   integer(default_int), parameter, public :: TAG_NODE_MATRIX_RESULT = 304
      !! Node coordinator sends matrix results to global coordinator

end module mqc_mpi_tags