03 - Communication Methods#

Description#

Compare custom MPI datatypes vs NumPy array communication for halo exchange operations. This experiment tests communication implementation details - how data is transferred between ranks during halo exchanges.

Custom MPI Datatypes: Zero-copy communication using MPI.Create_contiguous() and MPI.Create_subarray().

NumPy Arrays: Explicit buffer copies using np.ascontiguousarray().

Purpose#

Determine whether custom MPI datatypes provide measurable performance improvements over NumPy arrays by evaluating:

  • Communication overhead - Demonstrate whether custom datatypes reduce overhead compared to NumPy arrays

  • Scaling behavior - Analyze how each method scales with problem size and rank count

  • Scaling order analysis - Use log-log plots with reference lines to derive computational complexity

Communication Analysis: Contiguous vs Non-Contiguous

Communication Analysis: Contiguous vs Non-Contiguous

Communication Method Benchmark

Communication Method Benchmark