This autumn, two workshops are being organised for scientists and engineers who undertake programming tasks, particularly in C and C++.
Computer architecture and hardware-software interaction (2 days, Oct 26-27)
This course offers a comprehensive overview of current topics in computer architecture and their consequences for the programmer: from the basic Von Neumann schema to its modern-day expansions. Understanding hardware-software interaction enables us to better use all features of available computer hardware and compilers. Specific architectural features are discussed (such as execution ports, branching algorithms, etc), as well as instruction sets, compilers, memory operation and architecture, fundamentals of floating point and acceleration. Hands-on labs are included.
Programming and environments for parallelism (4 days, Nov 3-6)
This course dives into a wide range of parallel programming techniques, whether data- or task-parallel. We start with an overview of patterns, look at trade-offs, pitfalls and available parallel programming environments — with a particular focus on OpenMP4, Threading Building Blocks and Cilk. The last day is an advanced class devoted to fine-tuning and balancing parallel programs using modern frameworks, runtimes and APIs. Hands-on labs are included.
The courses, taught by Andrzej Nowak, are organised in cooperation with CERN openlab and are sponsored by the CERN IT Department — there is only a nominal registration fee of 50 CHF.
Registrations can be made through EDH and the CERN course catalogue:
Computer architecture and hardware-software interaction
Programming and environments for parallelism
(Please note that you will need a CERN account to access the above links to the training catalogue.)