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

patterns for modern fortran
SMART_READER_LITE
LIVE PREVIEW

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,


slide-1
SLIDE 1

High-Performance Design Patterns for Modern Fortran

slide-2
SLIDE 2

Variation points

  • Accomodate for change
  • Partial differential equation solvers
  • Which coordinate system? How many dimensions?
slide-3
SLIDE 3

Coordinate-free programming

  • Independent of dimension, coordinate systems etc.
  • Mathematically and computationally precise.
slide-4
SLIDE 4

Modern fortran

  • Class abstraction
  • Array operations
  • Coarrays
  • Prohibits function results containing coarrays
slide-5
SLIDE 5

Design patterns

  • Object superclass and error tracing
  • Compute globally, return locally
slide-6
SLIDE 6

Pattern tradeoffs

  • Object pattern
  • Lightweight performance
  • Heavyweight in source code writings
  • Compute globally return locally
slide-7
SLIDE 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

slide-8
SLIDE 8

Strong scaling

  • 409600 grid points
  • MPI faster
  • Superlinear speedup
slide-9
SLIDE 9

Execution profiles

  • Communication most expensive.
  • Sync more expensive than Sendrecv.
slide-10
SLIDE 10

Code complexity

  • MPI more complex