[ET Trac] [Einstein Toolkit] #2112: move CCTK_MyHost and friends into flesh

Einstein Toolkit trac-noreply at einsteintoolkit.org
Wed Feb 7 13:12:53 CST 2018


#2112: move CCTK_MyHost and friends into flesh
--------------------------+-------------------------------------------------
  Reporter:  rhaas        |       Owner:                     
      Type:  enhancement  |      Status:  new                
  Priority:  minor        |   Milestone:                     
 Component:  Cactus       |     Version:  development version
Resolution:               |    Keywords:  Carpet PUGH driver 
--------------------------+-------------------------------------------------

Comment (by rhaas):

 I see. The hope is that the the complex logic can stay in Carpet (or go
 into the ExternalLibraries/MPI thorn since it is not driver specific), I
 am at this point only advocating to make {{{CCTK_MyHostID}}} a Cactus
 overloaded function rather than an aliased function it is now.

 The flesh still could then stay MPI-free (except the MPI_Init() calls
 which are required) if possible.

 The MPI3 method is definitely easier it seems. Another way to do this
 without having to rely on hostname and string surgery seems to use POSIX
 (or SysIV) shared memory sections which are basically the same as the MPI3
 shared communicators. I have not tried this exactly but have used shared
 memory (which is what made me wish for a hostid function) and semaphores.

 1. make a shared memory section of a known name which will automatically
 be shared by all ranks on a node
 1. use POSIX or SysIV semaphores to have exactly one rank per node write
 its global MPI rank into the shared memory, this rank will be random since
 it depends on which process first grabs the semaphore
 1. one needs a couple of MPI_Barriers to make sure that there is proper
 serialization in some places

 The method is not too hard (easier probably than string surgery) and works
 as long as one has POSIX or SysIV IPC capabilities (so hopefully
 everywhere, in particular since we do require POSIX by now).

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/2112#comment:2>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list