mus_comm_module Module

This module provides the definition and methods for musubi-specific communication. It includes the wrapper functions for the actual communication, which is defined in tem_comm_module.


Uses

  • module~~mus_comm_module~~UsesGraph module~mus_comm_module mus_comm_module module~env_module env_module module~mus_comm_module->module~env_module module~tem_comm_module tem_comm_module module~mus_comm_module->module~tem_comm_module module~tem_comm_env_module tem_comm_env_module module~mus_comm_module->module~tem_comm_env_module mpi mpi module~mus_comm_module->mpi

Used by

  • module~~mus_comm_module~~UsedByGraph module~mus_comm_module mus_comm_module module~mus_construction_module mus_construction_module module~mus_construction_module->module~mus_comm_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_construction_module module~mus_hvs_construction_module mus_hvs_construction_module module~mus_hvs_construction_module->module~mus_construction_module program~mus_harvesting mus_harvesting program~mus_harvesting->module~mus_construction_module program~mus_harvesting->module~mus_hvs_construction_module module~mus_program_module mus_program_module module~mus_program_module->module~mus_construction_module module~mus_program_module->module~mus_dynloadbal_module program~musubi musubi program~musubi->module~mus_program_module

Contents


Subroutines

public subroutine mus_init_longBuffers(comm, pattern)

Wrapper around the actual communication, to avoid copy-in, copy-out by the Intel compiler. (At least the intel compiler on pigeon (v12.0) seems to do copying here, if a sub-array is passed to an assumed size dummy argument. Therefore we use this wrapping with an assumed shape dummy argument, so we can pass a complete field to the actual exchange which has an assumed size argument, without copying complete state field around, just for communication. Ugly, but it doesn't seem to have an impact on performance, and right it seems to be the most suitable solution.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_communication_type), intent(inout) :: comm
type(tem_commPattern_type), intent(in) :: pattern