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?