NewMadeleine

Documentation

« back to PM2 home.
nmad core interface

This is the interface of the NewMad core. More...

Modules

 Core init & connect.
 
 Requests status and flags
 
 Tags for core
 
 Core events management
 
 Core tasks: internal asynchronous tasks.
 Core tasks are defined here only for the sake of inlining, but are private.
 
 Requests packing/unpacking
 
 Synchronization primitives using conditions
 nm_cond_* functions are used to manage synchronization with & without pioman.
 
 Front-end to deal with status in requests
 
 Front-end for atomic ops
 Use atomic instructions only in multi-threaded mode.
 
 Front-end for generic locking
 locking with pioman: always use all locks (even if the application is not threaded, pioman itself is threaded).
 
 Error management
 
 Check ABI config consistency
 

Files

file  nm_core_interface.h
 

Detailed Description

This is the interface of the NewMad core.

All other include files in the core are internal and shouldn't be included outside of the core.

End-users are not supposed to use directly this core interface. They should use instead a higher level interface such as sendrecv interface (sendrecv), Pack interface (pack), or MadMPI: MPI Interface (MadMPI) for messaging, and Launcher interface (launcher) for init and connection establishment.

When developping in nmad, this is the main API exposed to high-level interfaces and is thus the central hub.