Lectures on Modern Scientific Programming

Europe/Budapest
Building 3, 2nd floor, Council Room (Wigner RCP)

Building 3, 2nd floor, Council Room

Wigner RCP

1121 Budapest, Konkoly-Thege Miklós Str. 29-33.,
Description

Lectures on Modern Scientific Programming


The Wigner GPU-Lab organizes a three-day seminar series on Modern Scientific Programming in 23-25 November, 2015. These lectures review topics relevant to everyone working on scientific simulations or high-performance computing.
The lectures are highly recommended to those who are:

  • Actively engaged in high-performance computing or analysis
  • Author code where execution time is important
  • Wish to learn (more) about parallel computing
  • University students who plan to use programming daily in their field

The lectures may be of interest to those who are:

  • Using interpreted math environments (Mathematica, Maple, Matlab, etc.) and wish to understand the run time costs
  • Seasoned programmers but care to learn good practices and a few tricks

The lectures are free to attend, but registration is required for the secured entry to the KFKI Campus!

Participants
    • 9:00 AM 12:00 PM
      Overview of modern hardware details and programming language basics

      Modern Computing Hardware (CPU/GPU), Low-level insights to CPUs and GPUs, Overview of programming languages and paradigms

      • 9:00 AM
        Modern Computing Hardware (CPU/GPU), Low-level insights 1h 30m
        Slides
      • 10:30 AM
        Break 15m
      • 10:45 AM
        Overview of programming languages and paradigms 1h 15m
        Slides
    • 12:00 PM 1:30 PM
      Lunch break 1h 30m
    • 1:30 PM 4:30 PM
      Development Tools

      Integrated Development Environments, Version Control Systems, Build Systems

      • 1:30 PM
        Integrated Development Environments 1h 30m
        Slides
      • 3:00 PM
        Break 15m
      • 3:15 PM
        Version Control, Build Systems 1h 15m
        Slides
    • 9:00 AM 12:00 PM
      Modern C++ I.
      • 9:00 AM
        Migrating from Fortran and C to modern C++ 30m
      • 9:30 AM
        C++ Language Basics 1h 15m
      • 10:45 AM
        Break 15m
      • 11:00 AM
        New C++ features 1h
    • 12:00 PM 1:30 PM
      Lunch Break 1h 30m
    • 1:30 PM 4:30 PM
      Modern C++ II.
      • 1:30 PM
        Template Meta-Programming and Multi-Threading 1h 30m
      • 3:00 PM
        Break 15m
      • 3:15 PM
        Coding Guidelines, Best Practices, Recommended Libraries, Future tendencies 1h 15m
    • 9:00 AM 12:00 PM
      Introduction to GPU Programming
      • 9:00 AM
        GPU Programming APIs (CUDA, OpenCL, C++AMP, SyCL) 1h 30m
      • 10:30 AM
        Break 15m
      • 10:45 AM
        GPU Programming Language bindings, compromises, limitations, future 1h 15m
    • 12:00 PM 1:30 PM
      Lunch Break 1h 30m
    • 1:30 PM 4:30 PM
      Introduction to Functional Programming
      • 1:30 PM
        Introduction to Functional Programming 1h 15m
      • 2:45 PM
        Break 15m
      • 3:00 PM
        Functional programming and Parallelism, Examples from Numerical Physics (in C++), relation to Category Theory 1h 30m