patterns for modern fortran
play

Patterns for Modern Fortran Variation points Accomodate for change - PowerPoint PPT Presentation

High-Performance Design Patterns for Modern Fortran Variation points Accomodate for change Partial differential equation solvers Which coordinate system? How many dimensions? Coordinate-free programming Independent of dimension,


  1. High-Performance Design Patterns for Modern Fortran

  2. Variation points • Accomodate for change • Partial differential equation solvers • Which coordinate system? How many dimensions?

  3. Coordinate-free programming • Independent of dimension, coordinate systems etc. • Mathematically and computationally precise.

  4. Modern fortran • Class abstraction • Array operations • Coarrays • Prohibits function results containing coarrays

  5. Design patterns • Object superclass and error tracing • Compute globally, return locally

  6. Pattern tradeoffs • Object pattern • Lightweight performance • Heavyweight in source code writings • Compute globally return locally

  7. Weak scaling • One dimensional burgers equation • Weak scaling coarray on Cray: • Each core is assigned a fixed data size of � �97 �5� values for � ��� time steps, syncing each time step

  8. Strong scaling • 409600 grid points • MPI faster • Superlinear speedup

  9. Execution profiles • Communication most expensive. • Sync more expensive than Sendrecv.

  10. Code complexity • MPI more complex

Recommend


More recommend