The Scalable Modeling System (SMS):  A High-level Directive-based Parallelization Tool

Outline

SMS Staff

Terms

Slide 5

Difficulties of Parallel Programming

Difficulties of Parallel Programming

SMS Goals

SMS Goals

SMS Benefits

SMS Structure

SMS Features

Slide 13

Sample SMS Code

What Does SMS Do?

Simple 1D Decomposition:  Static Memory

Common Decompositions

"Data decomposition"

Simple Decomposition:  Static Memory Balance

Simple Decomposition:  Static Memory Imbalance

"Data decomposition"

I/O of Decomposed Arrays

SMS Unformatted I/O

"Data decomposition"

Loop Transformation

"Data decomposition"

Global And Local Indices:  Static Memory

Boundary Conditions

"Data decomposition"

Adjacent Dependencies

Add “Halo Regions” for Adjacent Dependencies

Halo Region Update:  Exchange

Slide 33

Slide 34

“Inexact” Summation

Gather for Bitwise-exact Summation

Incremental Parallelization

"Data decomposition"

Performance Optimizations

"Data decomposition"

Debugging

SMS Code Example

Models Parallelized With SMS Directives

SMS Directives:  HYCOM

SMS Performance:  HYCOM

"Production model running on SP2..."

SMS Performance:  Eta

SMS Directives:  QNH

SMS Performance:  QNH

SMS Summary

SMS Summary

SMS Summary

Questions?