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.