{"library":"nvidia-nvshmem-cu12","title":"NVIDIA NVSHMEM (nvshmem4py) - CUDA 12","description":"NVIDIA NVSHMEM is an implementation of the OpenSHMEM specification for NVIDIA GPUs, providing a Partitioned Global Address Space (PGAS) for efficient and scalable communication in GPU clusters. The `nvidia-nvshmem-cu12` package provides the official Python bindings (NVSHMEM4Py) for CUDA 12.x compatible environments, enabling Python applications to leverage NVSHMEM's high-performance communication model. The current version is 3.6.5, with releases typically occurring several times a year to align with NVSHMEM and CUDA toolkit updates.","language":"python","status":"active","last_verified":"Tue May 12","install":{"commands":["pip install nvidia-nvshmem-cu12"],"cli":null},"imports":["import nvshmem.core as nvshmem"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import nvshmem.core as nvshmem\nimport os\n\ndef main():\n    # Initialize NVSHMEM. This is a collective operation.\n    # In a real scenario, this script would be launched with `mpiexec` or `nvshmrun`.\n    nvshmem.init()\n\n    # Query PE information\n    my_pe = nvshmem.my_pe()\n    n_pes = nvshmem.n_pes()\n\n    print(f\"Hello from PE {my_pe} of {n_pes}\")\n\n    # Perform some simple collective (e.g., a barrier)\n    # This ensures all PEs reach this point before proceeding\n    nvshmem.barrier_all()\n\n    # Finalize NVSHMEM. This is also a collective operation.\n    nvshmem.finalize()\n\nif __name__ == '__main__':\n    # Note: This script needs to be run using an MPI launcher (e.g., mpiexec -n 2 python your_script.py)\n    # or NVSHMEM's own launcher (nvshmrun). Running directly 'python your_script.py'\n    # will result in an error or hang if NVSHMEM expects multiple processes.\n    try:\n        main()\n    except Exception as e:\n        # Catch potential errors if not launched collectively, for a more graceful exit\n        print(f\"Error: {e}\")\n        print(\"Please ensure the script is launched collectively, e.g., 'mpiexec -n 2 python quickstart.py'\")","lang":"python","description":"This quickstart demonstrates the basic initialization and finalization of NVSHMEM within a Python program using `nvshmem4py`. It also shows how to query the current PE (processing element) ID and the total number of PEs. Note that NVSHMEM operations are collective and require the script to be launched via a parallel environment, such as `mpiexec` (from MPI) or `nvshmrun` (provided with NVSHMEM), to correctly allocate and coordinate multiple PEs across GPUs. Running the script directly with `python` will lead to an error if not launched collectively.","tag":null,"tag_description":null,"last_tested":"2026-04-24","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":-1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":-1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":-1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":-1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":-1}]},"compatibility":{"tag":"stale","tag_description":"widespread failures or data too old to trust","last_tested":"2026-05-12","installed_version":"3.6.5","pypi_latest":"3.6.5","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":25,"avg_install_s":4.8,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"nvidia-nvshmem-cu12","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":4.8,"import_time_s":null,"mem_mb":null,"disk_size":"248M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"nvidia-nvshmem-cu12","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":4.4,"import_time_s":null,"mem_mb":null,"disk_size":"249M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"nvidia-nvshmem-cu12","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":4.8,"import_time_s":null,"mem_mb":null,"disk_size":"241M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"nvidia-nvshmem-cu12","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":4.2,"import_time_s":null,"mem_mb":null,"disk_size":"241M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"nvidia-nvshmem-cu12","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":5.7,"import_time_s":null,"mem_mb":null,"disk_size":"247M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"nvidia-nvshmem-cu12","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}