CILEA_logo    
   Home Corsi di FormazioneIntroduction to HPC Scientific programming: tools and techniques

Introduction to HPC Scientific programming: tools and techniques

Modern architectures used for scientific calculations, starting from simple workstations up to parallel supercomputers, have reached huge computational power. To exploit properly the possibilities offered by such machines, it is important to know some architectural features, bottlenecks of the codes, optimizations features of the compilers and, if necessary, how to rewrite parts of codes to better use the underlying hardware. 

This code is addressed to C and Fortran programmers that, even without notions of computer science, have necessities to learn tricks and techniques to quickly debug and optimize codes without restarting from scratch. Aim of this course is to guide the user to analyze and improve performances of his software, by introducing techniques and tools used in the HPC world. Software and hardware profilers will be presented and it will be showed how to find bottlenecks and how to fix them. Typical techniques of optimization (cache reuse, unrolling, inlining, vectorization) will be presented the use of mathematical libraries will be discussed. Furthermore, the use of compiler flags on different architectures and compilers will be introduced.

Course Organizer:

F. Affinito (Bologna), P. Dagna (Milan), V. Ruggiero (Rome)

3 Editions in Italian:

Click on the date to register

Topics:

Computer architectures: cache memory, cache coherency, cache padding, memory alignment, pipeline, branch prediction. Introduction to compilers: what is and how a compiler does work. Optimization techniques: aliasing, interprocedural analysis, inlining, loop unrolling, intrinsic functions Profiling and debugging tools. Scientific libraries.

Target audience:

Researchers and programmers interested to a quick and efficient debugging and to a knowledge of fundamental concepts of optimization. This course is particularly suitable for people approaching for the first time to issues of computer programming in the framework of scientific calculations.

Pre-requisites:

Knowledge of Fortran or C/C++. Elementary notions of Linux/Unix.

Duration:

3 dd.

Contacts:

For further information about HPC courses, contact corsicineca.it.

Courses are hosted in CINECA premises:

 

Cineca - BOLOGNA, Via Magnanelli 6/3, 40033 Casalecchio di Reno, Bologna ph. + 39 051 6171411
Cineca - MILANO, Via R. Sanzio 4, 20090 Segrate, Milan ph. +39 02 269951
Cineca - ROMA, Via dei Tizii, 6 - 00185 Rome ph. +39 06 444861

 

  
Copyright © CILEA - Consorzio Interuniversitario - Codice Fiscale/Partita IVA: 03926770151 - Credits |  Home