1 / 6

Programming at Exascale

This document discusses innovative programming techniques essential for harnessing the power of exascale computing. It covers concepts including dynamic parallelism, composability, and productivity, emphasizing the importance of locality and synchronization in designing scalable systems. The role of various libraries, domain-specific languages, and compiler techniques such as AVX and CUDA are explored for their impact on performance and flexibility. Key challenges in error checking, workload redistribution, and resilience in multi-threaded environments are addressed to improve efficiency in high-performance computing.

madison
Télécharger la présentation

Programming at Exascale

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ProgrammingatExascale Michael Wolfe The Portland Group, Inc. April 2011

  2. Node Socket Core Vector Pipeline Instruction SSE AVX LRB IF IF ID ID RF RF EX EX EX EX EX EX WB WB IF ID RF EX EX WB IF ID RF EX EX EX EX WB

  3. Now Exascale coarrays, PGAS MPI Application Cilk OpenMP Compiler CUDA AVX IF IF ID ID RF RF EX EX EX EX EX EX WB WB IF ID RF EX EX WB IF ID RF EX EX EX EX WB

  4. Performance Flexibility • Scalability • Dynamic parallelism • Composability • Productivity • Load balancing Parallelismexposeexpressexploit Locality Synchronization The Creative vs The Mechanical

  5. Insufficient • Library implementation • Class libraries • Domain-specificlanguage • OpenCL

  6. Requirements • Parallelism, Locality, Synchronization • Expressing the parallelism • Productivity • Error checking • Performance feedback • Scalability, up and down • multiple threads  one thread • vector  scalar • multicore  vector • Dynamic parallelism • at every level • Composability • language definition, compiler analysis and optimizations • Self-Balancing • runtime introspection, workload redistribution • Resilience • redistributing the data and the computation • 5 • 4 • 7 • 7 • 8 • 6 • 3 • 4 • 3 • 0

More Related