NewMadeleine

Documentation

« back to PM2 home.
nm_coll_private.h File Reference
#include <nm_public.h>
#include <nm_sendrecv_interface.h>
#include <nm_private.h>
#include <Padico/Puk.h>
#include "nm_coll_interface.h"
Include dependency graph for nm_coll_private.h:

Go to the source code of this file.

Data Structures

struct  nm_coll_req_s
 
struct  nm_coll_profile_s
 profiling block for collective ops More...
 

Macros

#define NM_COLL_TAG_MASK_P2P   0x7FFFFFFF
 maximum tag usable by enduser for p2p
 
#define NM_COLL_TAG_BASE   0xFF000000
 base tag used for collectives
 
#define NM_COLL_TAG_COMM_CREATE_1   ( NM_COLL_TAG_BASE | 0x04 )
 comm_create phase 1
 
#define NM_COLL_TAG_COMM_CREATE_2   ( NM_COLL_TAG_BASE | 0x05 )
 comm_create phase 2
 
#define NM_COLL_PROFILE_ADD(PROF_LOCAL, PROF_GLOBAL, BYTES, NODES)
 

Typedefs

typedef enum nm_coll_req_kind_e nm_coll_req_kind_t
 
typedef void(* nm_coll_req_destructor_t) (struct nm_coll_req_s *)
 

Enumerations

enum  nm_coll_req_kind_e {
  NM_COLL_REQ_NONE = 0 , NM_COLL_REQ_BARRIER , NM_COLL_REQ_BCAST_TREE , NM_COLL_REQ_BCAST_PIPELINE ,
  NM_COLL_REQ_BCAST_2TREES , NM_COLL_REQ_SCATTER , NM_COLL_REQ_GATHER , NM_COLL_REQ_OTHER ,
  _NM_COLL_REQ_KIND_MAX
}
 

Functions

struct nm_coll_req_snm_coll_req_alloc (nm_len_t payload_size, nm_coll_req_kind_t kind, nm_coll_req_destructor_t p_destructor, nm_coll_req_notifier_t p_notify, void *p_ref)
 
static void * nm_coll_req_payload (struct nm_coll_req_s *p_coll_req)
 
static struct nm_coll_req_snm_coll_req_container (void *p_payload)
 
void nm_coll_req_signal (struct nm_coll_req_s *p_coll_req)
 used internally to signal the completion of a coll req
 

Macro Definition Documentation

◆ NM_COLL_PROFILE_ADD

#define NM_COLL_PROFILE_ADD (   PROF_LOCAL,
  PROF_GLOBAL,
  BYTES,
  NODES 
)

Definition at line 135 of file nm_coll_private.h.

◆ NM_COLL_TAG_BASE

#define NM_COLL_TAG_BASE   0xFF000000

base tag used for collectives

Definition at line 31 of file nm_coll_private.h.

◆ NM_COLL_TAG_COMM_CREATE_1

#define NM_COLL_TAG_COMM_CREATE_1   ( NM_COLL_TAG_BASE | 0x04 )

comm_create phase 1

Definition at line 33 of file nm_coll_private.h.

◆ NM_COLL_TAG_COMM_CREATE_2

#define NM_COLL_TAG_COMM_CREATE_2   ( NM_COLL_TAG_BASE | 0x05 )

comm_create phase 2

Definition at line 35 of file nm_coll_private.h.

◆ NM_COLL_TAG_MASK_P2P

#define NM_COLL_TAG_MASK_P2P   0x7FFFFFFF

maximum tag usable by enduser for p2p

Definition at line 29 of file nm_coll_private.h.

Typedef Documentation

◆ nm_coll_req_destructor_t

typedef void(* nm_coll_req_destructor_t) (struct nm_coll_req_s *)

Definition at line 52 of file nm_coll_private.h.

◆ nm_coll_req_kind_t

Definition at line 50 of file nm_coll_private.h.

Enumeration Type Documentation

◆ nm_coll_req_kind_e

Enumerator
NM_COLL_REQ_NONE 
NM_COLL_REQ_BARRIER 
NM_COLL_REQ_BCAST_TREE 
NM_COLL_REQ_BCAST_PIPELINE 
NM_COLL_REQ_BCAST_2TREES 
NM_COLL_REQ_SCATTER 
NM_COLL_REQ_GATHER 
NM_COLL_REQ_OTHER 

external use of nm_coll_req_e

_NM_COLL_REQ_KIND_MAX 

Definition at line 37 of file nm_coll_private.h.

Function Documentation

◆ nm_coll_req_alloc()

struct nm_coll_req_s * nm_coll_req_alloc ( nm_len_t  payload_size,
nm_coll_req_kind_t  kind,
nm_coll_req_destructor_t  p_destructor,
nm_coll_req_notifier_t  p_notify,
void *  p_ref 
)

◆ nm_coll_req_container()

static struct nm_coll_req_s * nm_coll_req_container ( void *  p_payload)
inlinestatic

Definition at line 76 of file nm_coll_private.h.

References nm_coll_req_s::_payload, nm_container_of, and p_coll_req.

◆ nm_coll_req_payload()

static void * nm_coll_req_payload ( struct nm_coll_req_s p_coll_req)
inlinestatic

Definition at line 71 of file nm_coll_private.h.

References nm_coll_req_s::_payload, and p_coll_req.

◆ nm_coll_req_signal()

void nm_coll_req_signal ( struct nm_coll_req_s p_coll_req)

used internally to signal the completion of a coll req