NewMadeleine

Documentation

« back to PM2 home.
nm_launcher_private.h File Reference

Internal definitions and functions for launchers. More...

#include <nm_launcher_interface.h>
#include <nm_core_interface.h>
#include <Padico/Puk.h>
Include dependency graph for nm_launcher_private.h:

Go to the source code of this file.

Data Structures

struct  nm_launcher_info_s
 block of info given by the launcher More...
 
struct  nm_launcher_driver_s
 
struct  nm_launcher_gate_s
 an entry for a remote node More...
 
struct  nm_launcher_gates_s
 a set of gates to manage connection establishment by launcher More...
 

Typedefs

typedef nm_drv_vect_t(* nm_launcher_selector_t) (const char *url, void *_arg)
 Type for 'selector'.
 

Functions

 PUK_IFACE_TYPE (NewMad_Launcher, struct nm_launcher_driver_s)
 
 PUK_HASHTABLE_TYPE (nm_component, puk_component_t, nm_drv_t, &puk_hash_pointer_default_hash, &puk_hash_pointer_default_eq, NULL)
 hash nm drivers by component
 
void nm_launcher_gates_init (struct nm_launcher_gates_s *p_gates, int size, int rank)
 
void nm_launcher_gates_destroy (struct nm_launcher_gates_s *p_gates)
 
void nm_launcher_gates_connect (struct nm_launcher_gates_s *p_gates)
 connects the given set of gates
 
void nm_launcher_set_info (const struct nm_launcher_info_s *p_info)
 Declare the rank, size & properties of job/launcher.
 
nm_drv_t nm_launcher_add_driver (puk_component_t component, nm_trk_kind_t kind)
 Add a driver to the session.
 
void nm_launcher_set_selector (nm_launcher_selector_t selector, void *_arg)
 Declare the selector to use to establish connections.
 
int nm_launcher_get_url (const char **p_local_url)
 Finalizes process of driver loading & return local url.
 
int nm_launcher_connect_async (nm_gate_t *pp_gate, const char *remote_url)
 Asynchronously start connection establishment for the given gate.
 
int nm_launcher_connect_wait (nm_gate_t p_gate)
 Wait for a given async connection to get ready.
 
void nm_launcher_isend (struct nm_req_s *p_req, struct nm_data_s *p_data, struct nm_gate_s *p_gate)
 
void nm_launcher_send (struct nm_data_s *p_data, struct nm_gate_s *p_gate)
 
void nm_launcher_irecv (struct nm_req_s *p_req, struct nm_data_s *p_data, struct nm_gate_s *p_gate)
 
void nm_launcher_recv (struct nm_data_s *p_data, struct nm_gate_s *p_gate)
 

Detailed Description

Internal definitions and functions for launchers.

This file is not part of the public interface; it is supposed to be used only by launchers. The interface for endusers is nm_launcher_interface.h

Definition in file nm_launcher_private.h.

Typedef Documentation

◆ nm_launcher_selector_t

typedef nm_drv_vect_t(* nm_launcher_selector_t) (const char *url, void *_arg)

Type for 'selector'.

Returns drivers to connect to given gate.

Definition at line 99 of file nm_launcher_private.h.

Function Documentation

◆ nm_launcher_add_driver()

nm_drv_t nm_launcher_add_driver ( puk_component_t  component,
nm_trk_kind_t  kind 
)

Add a driver to the session.

Note
call to this function is optional. Default drivers will be loaded if no driver is loaded manually.

Referenced by nm_launcher_gates_populate_ns().

◆ nm_launcher_connect_async()

int nm_launcher_connect_async ( nm_gate_t pp_gate,
const char *  remote_url 
)

Asynchronously start connection establishment for the given gate.

the remote node must call this function with our url

Note
nm_launcher_connect_wait() must be called later on this gate.

◆ nm_launcher_connect_wait()

int nm_launcher_connect_wait ( nm_gate_t  p_gate)

Wait for a given async connection to get ready.

◆ nm_launcher_gates_connect()

void nm_launcher_gates_connect ( struct nm_launcher_gates_s p_gates)

connects the given set of gates

◆ nm_launcher_gates_destroy()

void nm_launcher_gates_destroy ( struct nm_launcher_gates_s p_gates)

◆ nm_launcher_gates_init()

void nm_launcher_gates_init ( struct nm_launcher_gates_s p_gates,
int  size,
int  rank 
)

◆ nm_launcher_get_url()

int nm_launcher_get_url ( const char **  p_local_url)

Finalizes process of driver loading & return local url.

'p_local_url' is a return parameter, pointing to an object allocated in the launcher- do not free nor modify!

◆ nm_launcher_irecv()

void nm_launcher_irecv ( struct nm_req_s p_req,
struct nm_data_s p_data,
struct nm_gate_s p_gate 
)

◆ nm_launcher_isend()

void nm_launcher_isend ( struct nm_req_s p_req,
struct nm_data_s p_data,
struct nm_gate_s p_gate 
)

◆ nm_launcher_recv()

void nm_launcher_recv ( struct nm_data_s p_data,
struct nm_gate_s p_gate 
)

◆ nm_launcher_send()

void nm_launcher_send ( struct nm_data_s p_data,
struct nm_gate_s p_gate 
)

◆ nm_launcher_set_info()

void nm_launcher_set_info ( const struct nm_launcher_info_s p_info)

Declare the rank, size & properties of job/launcher.

◆ nm_launcher_set_selector()

void nm_launcher_set_selector ( nm_launcher_selector_t  selector,
void *  _arg 
)

Declare the selector to use to establish connections.

Referenced by nm_launcher_gates_populate_ns().

◆ PUK_HASHTABLE_TYPE()

PUK_HASHTABLE_TYPE ( nm_component  ,
puk_component_t  ,
nm_drv_t  ,
puk_hash_pointer_default_hash,
puk_hash_pointer_default_eq,
NULL   
)

hash nm drivers by component

◆ PUK_IFACE_TYPE()

PUK_IFACE_TYPE ( NewMad_Launcher  ,
struct nm_launcher_driver_s   
)