User Tools

Site Tools


unite_python_mpi_4_py

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
unite_python_mpi_4_py [2026/04/10 13:37] nshegunovunite_python_mpi_4_py [2026/04/10 13:49] (current) nshegunov
Line 1: Line 1:
-==== MPI4py Ping-Pong Example for Cluster ====+====== MPI4py Ping-Pong Example for Cluster ======
  
 This example shows a NumPy-based ping-pong benchmark using the ''mpi4py'' library on a cluster. Two MPI ranks exchange a NumPy array for several message sizes and measure round-trip time, one-way latency, and effective bandwidth. This example shows a NumPy-based ping-pong benchmark using the ''mpi4py'' library on a cluster. Two MPI ranks exchange a NumPy array for several message sizes and measure round-trip time, one-way latency, and effective bandwidth.
 +
 +=====  Instructions =====
 +
 +To run this example, create the Python script and Slurm batch script provided below.
 +
 +The Python script uses the mpi4py library to measure MPI communication performance with the classic ping-pong benchmark. The Slurm script loads the required modules and submits the job across 2 nodes.
 +
 +Optional interactive testing:
 +<code bash>
 +srun --partition=short --ntasks=2 --gres=gpu:1 --time=02:00:00 --pty bash
 +</code>
 +
 +Use this command to request an interactive session on a single node for experimentation.
  
 ===  Python Script (pingpong_mpi4py.py) ==== ===  Python Script (pingpong_mpi4py.py) ====
Line 80: Line 93:
 mpirun -np $SLURM_NTASKS python3 ./pingpong_mpi4py.py mpirun -np $SLURM_NTASKS python3 ./pingpong_mpi4py.py
 </code> </code>
 +
 +===== Run =====
 +
 +<code bash>
 +sbatch slurm_pingpong.job
 +</code>
 +
 +===== Example output =====
 +
 +<code bash>
 +Loading unite/python/3.14/mpi4py
 +  Loading requirement: unite/python/3.14/python-3.14.0 unite/mpi/4.1
 +
 +size=       1 bytes | RTT=     10.08 us | latency=      5.04 us | bandwidth=      0.20 MB/s
 +size=       8 bytes | RTT=      3.80 us | latency=      1.90 us | bandwidth=      4.21 MB/s
 +size=      64 bytes | RTT=      4.49 us | latency=      2.24 us | bandwidth=     28.54 MB/s
 +size=     512 bytes | RTT=     27.33 us | latency=     13.66 us | bandwidth=     37.47 MB/s
 +size=    1024 bytes | RTT=      6.46 us | latency=      3.23 us | bandwidth=    317.16 MB/s
 +size=    4096 bytes | RTT=      8.90 us | latency=      4.45 us | bandwidth=    920.86 MB/s
 +size=   16384 bytes | RTT=     15.53 us | latency=      7.77 us | bandwidth=   2109.61 MB/s
 +size=   65536 bytes | RTT=     29.86 us | latency=     14.93 us | bandwidth=   4390.07 MB/s
 +size=  262144 bytes | RTT=     72.79 us | latency=     36.40 us | bandwidth=   7202.47 MB/s
 +Ping-pong benchmark completed.
 +
 +</code>
 +
unite_python_mpi_4_py.1775817435.txt.gz · Last modified: 2026/04/10 13:37 by nshegunov

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki