@@ -103,7 +103,7 @@ static int _algorithm_central_counter(struct oshmem_group_t *group,
103
103
int rc = OSHMEM_SUCCESS ;
104
104
long value = SHMEM_SYNC_INIT ;
105
105
int root_id = 0 ;
106
- int PE_root = oshmem_proc_pe (group -> proc_array [ root_id ] );
106
+ int PE_root = oshmem_proc_pe_vpid (group , root_id );
107
107
int i = 0 ;
108
108
109
109
SCOLL_VERBOSE (12 , "[#%d] Barrier algorithm: Central Counter" , group -> my_pe );
@@ -124,7 +124,7 @@ static int _algorithm_central_counter(struct oshmem_group_t *group,
124
124
125
125
wait_pe_count = group -> proc_count ;
126
126
for (i = 0 ; i < group -> proc_count ; i ++ ) {
127
- wait_pe_array [i ] = oshmem_proc_pe (group -> proc_array [ i ] );
127
+ wait_pe_array [i ] = oshmem_proc_pe_vpid (group , i );
128
128
}
129
129
wait_pe_array [root_id ] = OSHMEM_PE_INVALID ;
130
130
wait_pe_count -- ;
@@ -151,7 +151,7 @@ static int _algorithm_central_counter(struct oshmem_group_t *group,
151
151
value = SHMEM_SYNC_RUN ;
152
152
for (i = 0 ; (i < group -> proc_count ) && (rc == OSHMEM_SUCCESS );
153
153
i ++ ) {
154
- pe_cur = oshmem_proc_pe (group -> proc_array [ i ] );
154
+ pe_cur = oshmem_proc_pe_vpid (group , i );
155
155
if (pe_cur != PE_root ) {
156
156
rc = MCA_SPML_CALL (put (oshmem_ctx_default , (void * )pSync , sizeof (value ), (void * )& value , pe_cur ));
157
157
}
@@ -238,7 +238,7 @@ static int _algorithm_tournament(struct oshmem_group_t *group, long *pSync)
238
238
SCOLL_VERBOSE (14 , "[#%d] round = %d wait" , group -> my_pe , round );
239
239
rc = MCA_SPML_CALL (wait ((void * )pSync , SHMEM_CMP_EQ , (void * )& value , SHMEM_LONG ));
240
240
} else {
241
- peer_pe = oshmem_proc_pe (group -> proc_array [ peer_id ] );
241
+ peer_pe = oshmem_proc_pe_vpid (group , peer_id );
242
242
243
243
#if 1 /* It is ugly implementation of compare and swap operation
244
244
Usage of this hack does not give performance improvement but
@@ -284,7 +284,7 @@ static int _algorithm_tournament(struct oshmem_group_t *group, long *pSync)
284
284
for (peer_id = 1 ;
285
285
(peer_id < group -> proc_count ) && (rc == OSHMEM_SUCCESS );
286
286
peer_id ++ ) {
287
- peer_pe = oshmem_proc_pe (group -> proc_array [ peer_id ] );
287
+ peer_pe = oshmem_proc_pe_vpid (group , peer_id );
288
288
rc = MCA_SPML_CALL (put (oshmem_ctx_default , (void * )pSync , sizeof (value ), (void * )& value , peer_pe ));
289
289
}
290
290
}
@@ -333,7 +333,7 @@ static int _algorithm_recursive_doubling(struct oshmem_group_t *group,
333
333
if (my_id >= floor2_proc ) {
334
334
/* I am in extra group, my partner is node (my_id-y) in basic group */
335
335
peer_id = my_id - floor2_proc ;
336
- peer_pe = oshmem_proc_pe (group -> proc_array [ peer_id ] );
336
+ peer_pe = oshmem_proc_pe_vpid (group , peer_id );
337
337
338
338
SCOLL_VERBOSE (14 ,
339
339
"[#%d] is extra and signal to #%d" ,
@@ -357,7 +357,7 @@ static int _algorithm_recursive_doubling(struct oshmem_group_t *group,
357
357
if ((group -> proc_count - floor2_proc ) > my_id ) {
358
358
/* I am in basic group, my partner is node (my_id+y) in extra group */
359
359
peer_id = my_id + floor2_proc ;
360
- peer_pe = oshmem_proc_pe (group -> proc_array [ peer_id ] );
360
+ peer_pe = oshmem_proc_pe_vpid (group , peer_id );
361
361
362
362
SCOLL_VERBOSE (14 ,
363
363
"[#%d] wait a signal from #%d" ,
@@ -376,8 +376,7 @@ static int _algorithm_recursive_doubling(struct oshmem_group_t *group,
376
376
/* Update exit condition and round counter */
377
377
exit_flag >>= 1 ;
378
378
round ++ ;
379
-
380
- peer_pe = oshmem_proc_pe (group -> proc_array [peer_id ]);
379
+ peer_pe = oshmem_proc_pe_vpid (group , peer_id );
381
380
382
381
#if 1 /* It is ugly implementation of compare and swap operation
383
382
Usage of this hack does not give performance improvement but
@@ -420,7 +419,7 @@ static int _algorithm_recursive_doubling(struct oshmem_group_t *group,
420
419
if ((group -> proc_count - floor2_proc ) > my_id ) {
421
420
/* I am in basic group, my partner is node (my_id+y) in extra group */
422
421
peer_id = my_id + floor2_proc ;
423
- peer_pe = oshmem_proc_pe (group -> proc_array [ peer_id ] );
422
+ peer_pe = oshmem_proc_pe_vpid (group , peer_id );
424
423
425
424
SCOLL_VERBOSE (14 , "[#%d] signals to #%d" , group -> my_pe , peer_pe );
426
425
value = SHMEM_SYNC_RUN ;
@@ -462,8 +461,7 @@ static int _algorithm_dissemination(struct oshmem_group_t *group, long *pSync)
462
461
for (round = 0 ; (round <= log2_proc ) && (rc == OSHMEM_SUCCESS ); round ++ ) {
463
462
/* Define a peer to send signal */
464
463
peer_id = (my_id + (1 << round )) % group -> proc_count ;
465
-
466
- peer_pe = oshmem_proc_pe (group -> proc_array [peer_id ]);
464
+ peer_pe = oshmem_proc_pe_vpid (group , peer_id );
467
465
468
466
#if 1 /* It is ugly implementation of compare and swap operation
469
467
Usage of this hack does not give performance improvement but
@@ -502,7 +500,7 @@ static int _algorithm_basic(struct oshmem_group_t *group, long *pSync)
502
500
{
503
501
int rc = OSHMEM_SUCCESS ;
504
502
int root_id = 0 ;
505
- int PE_root = oshmem_proc_pe (group -> proc_array [ root_id ] );
503
+ int PE_root = oshmem_proc_pe_vpid (group , root_id );
506
504
int i = 0 ;
507
505
508
506
SCOLL_VERBOSE (12 , "[#%d] Barrier algorithm: Basic" , group -> my_pe );
@@ -525,7 +523,7 @@ static int _algorithm_basic(struct oshmem_group_t *group, long *pSync)
525
523
int pe_cur = 0 ;
526
524
527
525
for (i = 0 ; (i < group -> proc_count ) && (rc == OSHMEM_SUCCESS ); i ++ ) {
528
- pe_cur = oshmem_proc_pe (group -> proc_array [ i ] );
526
+ pe_cur = oshmem_proc_pe_vpid (group , i );
529
527
if (pe_cur != PE_root ) {
530
528
rc = MCA_SPML_CALL (recv (NULL , 0 , pe_cur ));
531
529
}
@@ -535,7 +533,7 @@ static int _algorithm_basic(struct oshmem_group_t *group, long *pSync)
535
533
}
536
534
537
535
for (i = 0 ; (i < group -> proc_count ) && (rc == OSHMEM_SUCCESS ); i ++ ) {
538
- pe_cur = oshmem_proc_pe (group -> proc_array [ i ] );
536
+ pe_cur = oshmem_proc_pe_vpid (group , i );
539
537
if (pe_cur != PE_root ) {
540
538
rc = MCA_SPML_CALL (send (NULL , 0 , pe_cur , MCA_SPML_BASE_PUT_STANDARD ));
541
539
}
@@ -564,7 +562,7 @@ static int _algorithm_adaptive(struct oshmem_group_t *group, long *pSync)
564
562
if (i == my_id )
565
563
continue ;
566
564
567
- if (!OPAL_PROC_ON_LOCAL_NODE ( group -> proc_array [ i ] -> super . proc_flags )) {
565
+ if (!oshmem_proc_on_local_node ( i )) {
568
566
local_peers_only = false;
569
567
break ;
570
568
}
0 commit comments