You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This ISSUE describes the various options that can be used to link a context to a particular team and space. Now, the default shmem_ctx_create creates a context with a set of options, and shmem_team_create_ctx creates a context with a set of options on a particular team.
How do we handle when we introduce space in OpenSHMEM-1.6? Do we introduce a new API, break compatibility and fix the existing APIs? Or do we need to make the current APIs extendable? Or do we fix the current APIs?
Different API options available for us are listed below from the Feb/6/2020 F2F discussion:
Current (OpenSHMEM-1.5 Draft):
int shmem_ctx_create(long options, shmem_ctx_t *ctx);
intshmem_team_create_ctx(shmem_team_t team, long options, shmem_ctx_t *ctx);
/*** BELOW REQUIRE CHANGES in OpenSHMEM 1.5 ***/
Option_1:
(a) intshmem_ctx_create(long options, shmem_ctx_t *ctx); /* No ABI breakage */
(b) intshmem_ctx_create(long options, shmem_ctx_t *ctx, ...); /* Break ABI now */intshmem_team_create_ctx(shmem_team_t team, long options, shmem_ctx_t *ctx, ...);
Option_2:
// Want mask to avoid passing bits to shmem_ctx_create that aren't valid in that functionintshmem_ctx_create(long options, shmem_ctx_t *ctx);
intshmem_team_create_ctx(shmem_team_t team, long options, shmem_ctx_t *ctx, long mask, constshmem_ctx_opt_t *opt);
Option_5:
intshmem_ctx_create(long options, shmem_ctx_t *ctx);
intshmem_ext_ctx_create(long options, shmem_ctx_t *ctx, shmem_ctx_opt_t opt); /* Add in 1.5 *//*** BELOW CAN BE DONE WITH CHANGES ONLY IN 1.6 ***/
Option_3:
// Breaks ABI (not API) backward compabitilityintshmem_ctx_create(long options, shmem_ctx_t *ctx, ...);
intshmem_team_create_ctx(shmem_team_t team, long options, shmem_ctx_t *ctx, ...);
Option_4:
// Don't need mask, can reuse options in this caseintshmem_ctx_create(long options, shmem_ctx_t *ctx);
intshmem_team_create_ctx(shmem_team_t team, long options, shmem_ctx_t *ctx);
intshmem_ext_ctx_create(long options, shmem_ctx_t *ctx, shmem_ctx_opt_t opt); /* Add in 1.6 */
Option_6:
options += SHMEM_CTX_NOSPACE /* 1.6 */intshmem_ctx_create(long options, shmem_ctx_t *ctx);
intshmem_team_create_ctx(shmem_team_t team, long options, shmem_ctx_t *ctx);
intshmem_ctx_space_attach(shmem_ctx_t ctx, shmem_space_t space); /* 1.6 */
The text was updated successfully, but these errors were encountered:
This ISSUE describes the various options that can be used to link a context to a particular team and space. Now, the default
shmem_ctx_create
creates a context with a set ofoptions
, andshmem_team_create_ctx
creates a context with a set ofoptions
on a particularteam
.How do we handle when we introduce space in OpenSHMEM-1.6? Do we introduce a new API, break compatibility and fix the existing APIs? Or do we need to make the current APIs extendable? Or do we fix the current APIs?
Different API options available for us are listed below from the Feb/6/2020 F2F discussion:
The text was updated successfully, but these errors were encountered: