Skip to content

Commit

Permalink
Merge pull request Sandia-OpenSHMEM#1105 from wrrobin/pr/head_preinit…
Browse files Browse the repository at this point in the history
…_thread

Heap preinitialization with thread level support
  • Loading branch information
wrrobin authored Oct 24, 2023
2 parents a645139 + aa5de22 commit 99a1fd3
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
1 change: 1 addition & 0 deletions mpp/shmemx_c_func.h4
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,5 @@ SHMEM_FUNCTION_ATTRIBUTES void SHPRE()shmemx_pcntr_get_all(shmem_ctx_t ctx, shme
/* Separate initializers */
SHMEM_FUNCTION_ATTRIBUTES void SHPRE()shmemx_heap_create(void *base, size_t size, int device_type, int device_index);
SHMEM_FUNCTION_ATTRIBUTES void SHPRE()shmemx_heap_preinit();
SHMEM_FUNCTION_ATTRIBUTES int SHPRE()shmemx_heap_preinit_thread(int requested, int *provided);
SHMEM_FUNCTION_ATTRIBUTES void SHPRE()shmemx_heap_postinit();
22 changes: 22 additions & 0 deletions src/init_c.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,18 @@
#pragma weak shmem_init = pshmem_init
#define shmem_init pshmem_init

#pragma weak shmemx_heap_preinit = pshmemx_heap_preinit
#define shmemx_heap_preinit pshmemx_heap_preinit

#pragma weak shmemx_heap_postinit = pshmemx_heap_postinit
#define shmemx_heap_postinit pshmemx_heap_postinit

#pragma weak shmem_init_thread = pshmem_init_thread
#define shmem_init_thread pshmem_init_thread

#pragma weak shmemx_heap_preinit_thread = pshmemx_heap_preinit_thread
#define shmemx_heap_preinit_thread pshmemx_heap_preinit_thread

#pragma weak shmem_finalize = pshmem_finalize
#define shmem_finalize pshmem_finalize

Expand Down Expand Up @@ -108,6 +117,19 @@ shmem_init_thread(int tl_requested, int *tl_provided)
}


int SHMEM_FUNCTION_ATTRIBUTES
shmemx_heap_preinit_thread(int tl_requested, int *tl_provided)
{
int ret;
if (shmem_internal_initialized) {
RAISE_ERROR_STR("attempt to reinitialize library");
}

ret = shmem_internal_heap_preinit(tl_requested, tl_provided);
return ret;
}


void SHMEM_FUNCTION_ATTRIBUTES
shmem_query_thread(int *provided)
{
Expand Down
3 changes: 3 additions & 0 deletions src/symmetric_heap_c.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@
#pragma weak shmem_malloc_with_hints = pshmem_malloc_with_hints
#define shmem_malloc_with_hints pshmem_malloc_with_hints

#pragma weak shmemx_heap_create = pshmemx_heap_create
#define shmemx_heap_create pshmemx_heap_create

#endif /* ENABLE_PROFILING */

static char *shmem_internal_heap_curr = NULL;
Expand Down

0 comments on commit 99a1fd3

Please sign in to comment.