4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node –...

7
4.2.1 Programming Models • Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates – Adaptive computations, massively parallel I/O – New application domains; new programming languages

Transcript of 4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node –...

Page 1: 4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.

4.2.1 Programming Models

• Technology drivers– Node count, scale of parallelism within the node– Heterogeneity – Complex memory hierarchies– Failure rates– Adaptive computations, massively parallel I/O– New application domains; new programming

languages

Page 2: 4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.

4.2.1 Programming Models

• Alternative R&D strategies– Uniform vs. hybrid programming models– MPI 7.0, OpenMP 5.0, or revolutionary

approaches– Domain specific vs. general PMs

• Recommended research agenda– Explore enhancements to existing models– Revolutionary approach with interoperability to

existing models

Page 3: 4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.

4.2.1 Programming Models

• Crosscutting considerations– Architectures– Algorithms and applications– Libraries– Massively parallel I/O– Compilers and their runtime systems – Tools: • performance, debugging, application creation

– User annotations: • information to support translation, drive tools

Page 4: 4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.

Priority Research Direction: Programming Models (PM)

Key challenges

Multiple PMs: uniform, hybrid; high-level; new, PGAS, MPI, OpenMP, other; application-area specific PMsExpressive ways to describe parallelism and locality in PMsFault tolerance/awareness at PM levelImplementation (compiler, runtime) technologyApplication development tools

Extreme scale of parallelism (Exascale and beyond)

Diversity, heterogeneity of architectures/hardware

Complex memory hierarchy

Productivity of the programmer vs. performance

Interoperability (with legacy code)

Enabler of application development, library creation on new systems

Productive programming models are essential for uptake of exascale systems

Enhancements to existing models may have impact in a few yearsImplementation and support tools needed for this to have major Impact

Summary of research direction

Potential impact on software component Potential impact on usability, capability, and breadth of community

Page 5: 4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.

4.X Programming Models<single short description of the area>

Interoperability among existing

programming models

Fault-tolerant MPI

Standard programming model for

heterogeneous nodes

System-wide high-level programming model

Exascale programming models implemented

Exascale programming model(s) adopted

2010 2011 2012 2013 2014 2015 2016 2017 2018 2019

Your Metric

Candidate exascale programming models

defined

Page 6: 4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.

Priority Research Direction: Compilers

Key challenges

Translate new languages Powerful optimization frameworks; new optimizations, including powerAutomatic parallelizationEnable interactions between compiler and development and execution environment; standard interfacesDynamic (re-)optimization; support for autotuning

New programming languages, Interoperability (with old legacy code)

Productivity and performance

Hardware: heterogeneity, complex memory hierarchy, hardware faults

Adaptive extreme-scale parallelism

Higher level of automation will reduce program development effort and help exploit architecture

Adaptive applications can be efficiently runCompiler can make tools more powerful; tools may improve compiler translation

Some impact in near term as compiler-tools interactions are defined; continuous improvements in technology are possible

Summary of research direction

Potential impact on software component Potential impact on usability, capability, and breadth of community

Page 7: 4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.

4.x Compilers<single short description of the area>

Compiler support for hybrid programming

model

Compiler supports MPI implementation

Standard heterogeneous programming model implemented

Initial compiler – tools interfaces defined

2010 2011 2012 2013 2014 2015 2016 2017 2018 2019

Your Metric

Exascale programming models implemented

System-wide high-level programming model

implementation

Exascale programming environment deployted