Supported/Unsupported Features#

The following tables indicate which APIs are supported in Intel® SHMEM as of the 1.0.0 release. The Intel® SHMEM development team strives to eventually support all OpenSHMEM APIs. Currently unsupported interfaces are targeted for implementation in future releases of Intel® SHMEM.

Library Setup Query

Supported?

ishmem_init

Yes

ishmemx_init_attr

Yes

ishmem_init_thread

No

ishmem_my_pe

Yes

ishmem_n_pes

Yes

ishmem_finalize

Yes

ishmem_global_exit

No

ishmem_pe_accessible

No

ishmem_addr_accessible

No

ishmem_ptr

Yes

ishmem_team_ptr

No

ishmem_info_get_version

Yes

ishmem_info_get_name

Yes

Memory Management

Supported?

ishmem_malloc

Yes

ishmem_free

Yes

ishmem_realloc

No

ishmem_align

Yes

ishmem_malloc_with_hints

No

ishmem_calloc

Yes

OpenSHMEM Communication Contexts

Supported?

All routines

No

OpenSHMEM Team Managment

Supported?

All routines

No

Remote Memory Access

Supported?

ishmem_TYPENAME_put

Yes

ishmemx_TYPENAME_put_work_group

Yes

ishmem_putmem

Yes

ishmemx_TYPENAME_putmem_work_group

Yes

ishmem_TYPENAME_p

Yes

ishmem_TYPENAME_iput

Yes

ishmemx_TYPENAME_iput_work_group

Yes

ishmem_TYPENAME_get

Yes

ishmemx_TYPENAME_get_work_group

Yes

ishmem_getmem

Yes

ishmemx_TYPENAME_getmem_work_group

Yes

ishmem_TYPENAME_g

Yes

ishmem_TYPENAME_iget

Yes

ishmemx_TYPENAME_iget_work_group

Yes

ishmem_TYPENAME_put_nbi

Yes

ishmemx_TYPENAME_put_nbi_work_group

Yes

ishmem_TYPENAME_putmem_nbi

Yes

ishmemx_TYPENAME_putmem_nbi_work_group

Yes

ishmem_TYPENAME_get_nbi

Yes

ishmemx_TYPENAME_get_nbi_work_group

Yes

ishmem_TYPENAME_getmem_nbi

Yes

ishmemx_TYPENAME_getmem_nbi_work_group

Yes

All putSIZE and getSIZE routines where SIZE is 8, 16, 32, 64, 128

No

C++ function template routines*

Yes

Atomic Memory Operations

Supported?

ishmem_TYPENAME_atomic_fetch

Yes

ishmem_TYPENAME_atomic_set

Yes

ishmem_TYPENAME_atomic_compare_swap

Yes

ishmem_TYPENAME_atomic_swap

Yes

ishmem_TYPENAME_atomic_fetch_inc

Yes

ishmem_TYPENAME_atomic_inc

Yes

ishmem_TYPENAME_atomic_fetch_add

Yes

ishmem_TYPENAME_atomic_add

Yes

ishmem_TYPENAME_atomic_fetch_and

Yes

ishmem_TYPENAME_atomic_and

Yes

ishmem_TYPENAME_atomic_fetch_or

Yes

ishmem_TYPENAME_atomic_or

Yes

ishmem_TYPENAME_fetch_xor

Yes

ishmem_TYPENAME_xor

Yes

C++ function template routines*

Yes

Non-blocking Atomic Memory Operations

Supported?

All routines

No

Signaling Operations

Supported?

ishmem_TYPENAME_put_signal

Yes

ishmemx_TYPENAME_put_signal_work_group

Yes

ishmem_TYPENAME_put_signal_nbi

Yes

ishmemx_TYPENAME_put_signal_nbi_work_group

Yes

ishmem_putmem_signal

Yes

ishmem_putmem_signal_nbi

Yes

ishmemx_putmem_signal_nbi_work_group

Yes

ishmem_signal_fetch

Yes

All putSIZE_signal and getSIZE_signal routines where SIZE is 8, 16, 32, 64, 128

No

Synchronization and Ordering

Supported?

ishmem_fence

Yes

ishmemx_fence_work_group

Yes

ishmem_quiet

Yes

ishmemx_quiet_work_group

Yes

Collective Communication

Supported?

ishmem_barrier_all

Yes

ishmemx_barrier_all_work_group

Yes

ishmem_sync_all

Yes

ishmemx_sync_all_work_group

Yes

ishmem_TYPENAME_alltoall

Yes

ishmemx_TYPENAME_alltoall_work_group

Yes

ishmem_TYPENAME_alltoalls

No

ishmemx_TYPENAME_alltoalls_work_group

No

ishmem_TYPENAME_broadcast

Yes

ishmem_broadcastmem

Yes

ishmemx_TYPENAME_broadcast_work_group

Yes

ishmemx_broadcastmem_work_group

Yes

ishmem_TYPENAME_collect

Yes

ishmem_TYPENAME_fcollect

Yes

ishmem_collectmem

Yes

ishmem_fcollectmem

Yes

ishmemx_TYPENAME_collect_work_group

Yes

ishmemx_TYPENAME_fcollect_work_group

Yes

ishmemx_collectmem_work_group

Yes

ishmemx_fcollectmem_work_group

Yes

ishmem_TYPENAME_OP_reduce

Yes

ishmemx_TYPENAME_OP_reduce_work_group

Yes

C++ function template routines*

Yes

Point-to-Point Synchronization

Supported?

ishmem_test

Yes

ishmemx_test_work_group

Yes

ishmem_wait_until

Yes

ishmemx_wait_until_work_group

Yes

C++ function template routines*

Yes

Mutual Exclusion

Supported?

All routines

No

Library Constants

Supported?

ISHMEM_THREAD_SINGLE

No

ISHMEM_THREAD_FUNNELED

No

ISHMEM_THREAD_SERIALIZED

No

ISHMEM_THREAD_MULTIPLE

No

ISHMEM_MAJOR_VERSION

Yes

ISHMEM_MINOR_VERSION

Yes

ISHMEM_MAX_NAME_LEN

Yes

ISHMEM_VENDOR_STRING

Yes

Environment Variables

Supported?

ISHMEM_VERSION

No

ISHMEM_INFO

No

ISHMEM_SYMMETRIC_SIZE

Yes

ISHMEM_DEBUG

Yes

ISHMEM_SHMEM_LIB_NAME

Yes

ISHMEM_ENABLE_GPU_IPC

Yes

ISHMEM_ENABLE_GPU_IPC_PIDFD

Yes

* C11 generic selection routines from the OpenSHMEM specification are replaced with corresponding C++ template function routines in Intel® SHMEM.