Debugging and Optimization of Scientific Applications

Tu sei qui

Description:

The tipical approach to the art of programming from the point of view of a scientist only rarely permits to reach good results in terms of computational performances. The basic knowledge about how a computer machine really works permits even to a naif programmer to better write his own code and eventually to optimize properly any kind of scientific program. This knowledge is way more important in the field of High-Performance Computing where the correct exploitation of the modern architecures is crucial to the achievement of scientific results.

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.

Skills: 

By the end of the course the student will be able to:

  • manage efficiently the computer memory
  • use tools to profile programs and measure their performance
  • understand and use efficiently compilers and compiler options
  • optimize programs
  • understand and incorporate scientific libraries in their programs
  • design a debugging strategy based on dedicated tools and other techniques

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.

 

Area: 
HPC - Tecniche di programmazione
Mercato di riferimento: 
Enti di ricerca
Università
Durata: 
3dd
Posti minimi richiesti: 
6

Prossime edizioni

Non sono previste edizioni di questo corso.

Domande?

Per i corsi di supercalcolo e computer graphics scrivi a corsi.hpc@cineca.it

CINECA

Cineca è un Consorzio Interuniversitario senza scopo di lucro formato da 67 università italiane, 9 Enti di Ricerca Nazionali, e il Ministero dell'Istruzione Università Ricerca.

Costituito nel 1969, oggi il Cineca è il maggiore centro di calcolo in Italia, uno dei più importanti a livello mondiale. Operando sotto il controllo del Ministero dell'Istruzione dell'Università e della Ricerca, offre supporto alle attività della comunità scientifica tramite il supercalcolo e le sue applicazioni, realizza sistemi gestionali per le amministrazioni universitarie e il MIUR, progetta e sviluppa sistemi informativi per pubblica amministrazione, sanità e imprese.

Sempre più punto di riferimento unico in Italia per l’innovazione tecnologica, con sedi a Bologna, Milano e Roma e oltre 700 dipendenti, il Cineca opera al servizio di tutto il sistema accademico, dell’istruzione e della ricerca nazionale

Vai al sito Cineca