NewMadeleine

Documentation

« back to PM2 home.

Primitives to manipulate groups of processes. More...

Files

file  nm_group.h
 

Data Structures

struct  nm_coll_topology_s
 a description of hierarchy of processes; both vects are empty when no topology is available More...
 
typedef struct nm_group_s * nm_group_t
 type for groups
 
nm_group_t nm_group_new (void)
 create a new empty group
 
void nm_group_add_node (nm_group_t p_group, nm_gate_t p_gate)
 
int nm_group_size (nm_group_t group)
 
int nm_group_rank (nm_group_t group)
 rank of self in the group; -1 if self is not member of the group
 
nm_gate_t nm_group_get_gate (nm_group_t p_group, int rank)
 
int nm_group_get_dest (nm_group_t p_group, nm_gate_t p_gate)
 
const struct nm_coll_topology_snm_group_get_topology (nm_group_t p_group)
 
nm_group_t nm_group_world (void)
 get a new group containing all nodes
 
int nm_group_compare (nm_group_t group1, nm_group_t group2)
 
void nm_group_free (nm_group_t group)
 
nm_group_t nm_group_dup (nm_group_t group)
 
nm_group_t nm_group_incl (nm_group_t group, int n, const int ranks[])
 
nm_group_t nm_group_excl (nm_group_t group, int n, const int ranks[])
 
nm_group_t nm_group_union (nm_group_t group1, nm_group_t group2)
 
nm_group_t nm_group_intersection (nm_group_t group1, nm_group_t group2)
 
nm_group_t nm_group_difference (nm_group_t group1, nm_group_t group2)
 
int nm_group_translate_ranks (nm_group_t p_group1, int n, const int *ranks1, nm_group_t p_group2, int *ranks2)
 

Detailed Description

Primitives to manipulate groups of processes.

Typedef Documentation

◆ nm_group_t

typedef struct nm_group_s* nm_group_t

type for groups

Definition at line 38 of file nm_group.h.

Function Documentation

◆ nm_group_add_node()

void nm_group_add_node ( nm_group_t  p_group,
nm_gate_t  p_gate 
)
extern

◆ nm_group_compare()

int nm_group_compare ( nm_group_t  group1,
nm_group_t  group2 
)
extern

◆ nm_group_difference()

nm_group_t nm_group_difference ( nm_group_t  group1,
nm_group_t  group2 
)
extern

◆ nm_group_dup()

nm_group_t nm_group_dup ( nm_group_t  group)
extern

◆ nm_group_excl()

nm_group_t nm_group_excl ( nm_group_t  group,
int  n,
const int  ranks[] 
)
extern

◆ nm_group_free()

void nm_group_free ( nm_group_t  group)
extern

◆ nm_group_get_dest()

int nm_group_get_dest ( nm_group_t  p_group,
nm_gate_t  p_gate 
)
extern
Note
slow, use with care (linear search)

Referenced by nm_comm_get_dest().

◆ nm_group_get_gate()

nm_gate_t nm_group_get_gate ( nm_group_t  p_group,
int  rank 
)
extern

◆ nm_group_get_topology()

const struct nm_coll_topology_s * nm_group_get_topology ( nm_group_t  p_group)
extern

◆ nm_group_incl()

nm_group_t nm_group_incl ( nm_group_t  group,
int  n,
const int  ranks[] 
)
extern

◆ nm_group_intersection()

nm_group_t nm_group_intersection ( nm_group_t  group1,
nm_group_t  group2 
)
extern

◆ nm_group_new()

nm_group_t nm_group_new ( void  )
extern

◆ nm_group_rank()

int nm_group_rank ( nm_group_t  group)
extern

rank of self in the group; -1 if self is not member of the group

Referenced by nm_comm_rank().

◆ nm_group_size()

int nm_group_size ( nm_group_t  group)
extern

◆ nm_group_translate_ranks()

int nm_group_translate_ranks ( nm_group_t  p_group1,
int  n,
const int *  ranks1,
nm_group_t  p_group2,
int *  ranks2 
)
extern

◆ nm_group_union()

nm_group_t nm_group_union ( nm_group_t  group1,
nm_group_t  group2 
)
extern

◆ nm_group_world()

nm_group_t nm_group_world ( void  )
extern

get a new group containing all nodes