Scientific Programming II: High Performance Computing

Lecture log

Academic year 2024/2025
Lecturer Julien Roland Michel Bloino

Lecture

  • 31 Jan 2025 (1h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    Presentazione corso SP2

  • 18 Feb 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    01: introduction to computer hardware and software; algorithms; instruction sets and programming languages

  • 19 Feb 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    02: introduction to programming languages: from assembly to high-level; execution models; programming paradigms; introduction to the Fortran language/standard; basic data types

  • 25 Feb 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    03: variable names and data identifiers; specification of numerical precision; introduction to a long-term project to illustrate Fortran's features inside a larger program: "zmat2xyz": introduction to the Z-matrix and XYZ formats, application to the simple case of dihydrogen; character-set definition; implicit and explicit typing; variable initialization

  • 26 Feb 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    04: arrays in Fortran: multi-dimensional specifications, reshaping, sub-arrays, initialization; static vs dynamic allocation; deferred-character length; variable assignment and data conversions; arithmetic and string operations

  • 04 Mar 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    05: relational expressions; logical expressions; array operations; control statements: conditions (if, select case, where) and loops (do, do while, forall/do concurrent), implicit loops

  • 05 Mar 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    06: data transfer in Fortran: file opening/closing and units; processor-dependent input/output media; read/write operations; direct vs sequential access; C-compatibility with stream access

  • 11 Mar 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    07: asynchronous data transfer; file status query and the inquire statement; string formatting for input/output: list-directed I/O, format specifications: data representation, editing descriptors

  • 18 Mar 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    08: Fortran namelists for streamlined user interactions; execution controls; presentation of procedures available in Fortran: functions and subroutines: definition and reference.

  • 19 Mar 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    09: Procedure arguments: dummy arguments; optional arguments, intent, positional vs keyword reference; memory allocation and procedures; data persistency; external vs internal procedures: implicit and explicit interfaces; procedures as arguments; attributes of procedures; program units and scope of variables; the block construct to create a local space inside a program unit

  • 20 Mar 2025 (4h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    laboratorio 01

  • 25 Mar 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    10: modules and libraries in Fortran; selective load of module components; modules interfaces; submodules; generic interfaces; visibility and variable protection;

  • 26 Mar 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    11: presentation of some useful intrinsic procedures provided by the Fortran standard

  • 08 Apr 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    12: continuation of presentation of intrinsic procedures: bit transfers, arrays-specific routines, date/time, random numbers

  • 09 Apr 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    13: intrinsic procedures for system-dependent operations: command execution, command-line arguments, environment variables; assessment of memory usage; the iso_fortran_standard module to provide information on the actual implementation of the standard on the machine; the IEEE-754 related modules: ieee_arithmetic, ieee_exceptions, ieee_features, to ensure reproducible behaviors over different hardware and check hardware numerical operations capabilities.

  • 15 Apr 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    14: block labels; pointers; abstract interfaces; Fortran derived types and object-oriented programming; classes and variable polymorphism

  • 16 Apr 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    15: the "associate" construct; the "select type" construct; type-bound procedures; intrinsic procedures for type inquiry; class inheritance; attributes encapsulations and accessor methods; interface overloading

  • 22 Apr 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    16: introduction to the compilation process; the role of the preprocessor; optimization through compilation flags: limits and differences between compilers; the linker and linking to external libraries

  • 23 Apr 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    17: automation of the compilation process with "make": introduction, description of the language; construction of a rules file

  • 29 Apr 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    18: parallel programming: basic concepts, introduction to execution models and libraries; presentation of the OpenMP language for shared-memory processors; use of OpenMP pragmas in Fortran sources; preprocessor directives; I/O operations

  • 30 Apr 2025 (2h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    19: parallel programming: task parallelization vs SIMD instructions; race conditions and atomic operations

  • 06 May 2025 (4h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    laboratorio 02

  • 14 May 2025 (4h 00m)

    JULIEN ROLAND MICHEL Bloino - Course (teaching activity) - Face to face

    laboratorio 03