Skip to content

Commit 34c92f0

Browse files
authored
Merge pull request pmodels#7240 from hzhou/2412_dynamic_am
comm: re-implement dynamic processes using mpir-layer lpid Approved-by: Ken Raffenetti
2 parents eb682fd + 2b84634 commit 34c92f0

40 files changed

+547
-2464
lines changed

src/include/mpir_comm.h

Lines changed: 4 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -31,44 +31,6 @@ typedef enum MPIR_Comm_hierarchy_kind_t {
3131
MPIR_COMM_HIERARCHY_KIND__MULTI_LEADS = 4, /* is the multi_leaders_comm for a node */
3232
} MPIR_Comm_hierarchy_kind_t;
3333

34-
typedef enum {
35-
MPIR_COMM_MAP_TYPE__DUP,
36-
MPIR_COMM_MAP_TYPE__IRREGULAR
37-
} MPIR_Comm_map_type_t;
38-
39-
/* direction of mapping: local to local, local to remote, remote to
40-
* local, remote to remote */
41-
typedef enum {
42-
MPIR_COMM_MAP_DIR__L2L,
43-
MPIR_COMM_MAP_DIR__L2R,
44-
MPIR_COMM_MAP_DIR__R2L,
45-
MPIR_COMM_MAP_DIR__R2R
46-
} MPIR_Comm_map_dir_t;
47-
48-
typedef struct MPIR_Comm_map {
49-
MPIR_Comm_map_type_t type;
50-
51-
struct MPIR_Comm *src_comm;
52-
53-
/* mapping direction for intercomms, which contain local and
54-
* remote groups */
55-
MPIR_Comm_map_dir_t dir;
56-
57-
/* only valid for irregular map type */
58-
int src_mapping_size;
59-
int *src_mapping;
60-
int free_mapping; /* we allocated the mapping */
61-
62-
struct MPIR_Comm_map *next;
63-
} MPIR_Comm_map_t;
64-
65-
int MPIR_Comm_map_irregular(struct MPIR_Comm *newcomm, struct MPIR_Comm *src_comm,
66-
int *src_mapping, int src_mapping_size,
67-
MPIR_Comm_map_dir_t dir, MPIR_Comm_map_t ** map);
68-
int MPIR_Comm_map_dup(struct MPIR_Comm *newcomm, struct MPIR_Comm *src_comm,
69-
MPIR_Comm_map_dir_t dir);
70-
int MPIR_Comm_map_free(struct MPIR_Comm *comm);
71-
7234
/* Communicator info hint */
7335
#define MPIR_COMM_HINT_TYPE_BOOL 0
7436
#define MPIR_COMM_HINT_TYPE_INT 1
@@ -251,12 +213,6 @@ struct MPIR_Comm {
251213
hcoll_comm_priv_t hcoll_priv;
252214
#endif /* HAVE_HCOLL */
253215

254-
/* the mapper is temporarily filled out in order to allow the
255-
* device to setup its network addresses. it will be freed after
256-
* the device has initialized the comm. */
257-
MPIR_Comm_map_t *mapper_head;
258-
MPIR_Comm_map_t *mapper_tail;
259-
260216
enum { MPIR_STREAM_COMM_NONE, MPIR_STREAM_COMM_SINGLE, MPIR_STREAM_COMM_MULTIPLEX }
261217
stream_comm_type;
262218
union {
@@ -383,10 +339,6 @@ int MPIR_Comm_commit(MPIR_Comm *);
383339

384340
int MPIR_Comm_is_parent_comm(MPIR_Comm *);
385341

386-
/* peer intercomm is an internal 1-to-1 intercomm used for connecting dynamic processes */
387-
int MPIR_peer_intercomm_create(int context_id, int recvcontext_id,
388-
MPIR_Lpid remote_lpid, int is_low_group, MPIR_Comm ** newcomm);
389-
390342
#define MPIR_Comm_rank(comm_ptr) ((comm_ptr)->rank)
391343
#define MPIR_Comm_size(comm_ptr) ((comm_ptr)->local_size)
392344

@@ -426,6 +378,10 @@ int MPIR_Comm_split_type(MPIR_Comm * comm_ptr, int split_type, int key, MPIR_Inf
426378
int MPIR_Comm_split_type_neighborhood(MPIR_Comm * comm_ptr, int split_type, int key,
427379
MPIR_Info * info_ptr, MPIR_Comm ** newcomm_ptr);
428380

381+
int MPIR_Intercomm_create_timeout(MPIR_Comm * local_comm_ptr, int local_leader,
382+
MPIR_Comm * peer_comm_ptr, int remote_leader,
383+
int tag, int timeout, MPIR_Comm ** new_intercomm_ptr);
384+
429385
/* Preallocated comm objects. There are 3: comm_world, comm_self, and
430386
a private (non-user accessible) dup of comm world that is provided
431387
if needed in MPI_Finalize. Having a separate version of comm_world
@@ -455,16 +411,6 @@ int MPII_Comm_copy_data(MPIR_Comm * comm_ptr, MPIR_Info * info, MPIR_Comm ** out
455411

456412
int MPII_Setup_intercomm_localcomm(MPIR_Comm *);
457413

458-
/* comm_create helper functions, used by both comm_create and comm_create_group */
459-
int MPII_Comm_create_calculate_mapping(MPIR_Group * group_ptr,
460-
MPIR_Comm * comm_ptr,
461-
int **mapping_out, MPIR_Comm ** mapping_comm);
462-
463-
int MPII_Comm_create_map(int local_n,
464-
int remote_n,
465-
int *local_mapping,
466-
int *remote_mapping, MPIR_Comm * mapping_comm, MPIR_Comm * newcomm);
467-
468414
int MPII_Comm_set_hints(MPIR_Comm * comm_ptr, MPIR_Info * info, bool in_comm_create);
469415
int MPII_Comm_get_hints(MPIR_Comm * comm_ptr, MPIR_Info * info);
470416
int MPII_Comm_check_hints(MPIR_Comm * comm_ptr);

0 commit comments

Comments
 (0)