This weeklong intensive training is an advanced dive into software, tools and techniques for exploiting current and next generation computing hardware.
Core topics include practical use of relevant software methodologies for parallelization, efficient use of compilers, performance optimization, controlled floating point calculations – all coupled with hands-on exercises. The lecture and excercises will go in details into modern and performant C++, parallelism and efficient multi-thread developments. In addition to the core teaching material, a range of supplementary topics is offered, such as select aspects of supercomputing, accelerated processing and others.
Finally, perspectives on cutting edge software and hardware will be presented, along with a vision of projected developments and their possible consequences.
The thematic CSC 2014 covers five domains
Programming for Concurrency | Data oriented design | Memory programming | Efficient Computing | Acceleration |
Modern and performant C++ |
Designing for data Data-intensive applications Vectorization |
Memory Awareness |
Overview Architecture refresher: x86, ARM, Atom, MIC, GPU |
Principles of programming for accelerators Direct, Offload, Symmetric mode, MIC |
Expressing parallelism pragmatically | Advanced performance monitoring and tuning | |||
Resource protection and thread safety |
Compilers and their strengths/weaknesses |
|||
Accurate and efficient Floating Point |
||||
Lectures 3 Exercises 3 |
Lecture 1 Exercise 1 |
Lecture 1 Exercise 1 |
Lectures 3 Exercises 4 |
Lecture 1 Exercises 2 |