2018 Workshop on Fortran Modernization for Scientific Application (ForMoSA)

CET
Y11 F 06 (University of Zurich, Department of Chemistry C)

Y11 F 06

University of Zurich, Department of Chemistry C

University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
Alfio Lazzaro (University of Zurich), Tiziano Müller (Theory & Computation, Dept. of Chemistry, University of Zurich), Patrick Seewald (University of Zurich)
Description

Synopsis

Fortran is one of the most used programming languages for scientific computing*. Most of the codes however make use of old Fortran standard features (mainly F95), while an effort of modernization of the language has been undertaken with the last revisions of the standard (F03, F08, F18).
Our three days workshop is aimed at programmers, active in the development of a scientific application written in Fortran, who want to write modern code or modernize existing codes. Special focus is given to parallel computing. It consists of lectures, invited speakers presentations, and practical hands-on sessions. Participants are invited to using the new techniques in their own programs. Remember to bring your laptop with you with a Fortran compiler installed! Also, we will ask you to install some other packages (or a VM on VirtualBox if you cannot directly install the tools on your system).

The course is free of charge. Please register until April 30th  May 18th (extended deadline). The registration is now closed. Please contact the organizers for a late registration. If you have any questions, please contact one of the local organizers (see contacts). 

Funding by the UZH Graduate Campus via a GRC Grant is gratefully acknowledged.

Funding by the NCCR MARVEL is gratefully acknowledged. These funds would be prioritized to support female PhD students, post-docs and scientists.

MARVEL Logo             The National Centres of Competence in Reseach (NCCR) are a research instrument of the Swiss National Science Foundation   

* In the 2016 Annual report from CSCS more than 60% of the users declared to use Fortran, which makes it the most used language in the CSCS User community.


Topics

  • Day 1 (Invited speaker: Arjen Markus, Deltares Institute in Delft, The Netherlands)
    • New Fortran 2003/2008 features (including Object-Oriented) and outlook to the new standard 2018
    • Best practices for Fortran
  • Day 2 (Invited speaker: Hans Pabst, Intel Switzerland, and Mikko Byckling, Intel Finland)
    • Fortran/C interoperability
    • Fortran parallelization
  • Day 3 (Invited speaker: Bálint Aradi, Bremen Center for Computational Materials Science, University of Bremen)
    • Fortran-related tools
      • Unit-testing frameworks
      • Meta-programming tools
      • Source-code documentation tools

Aim

The workshop will provide an overview of the relevant modern features of Fortran, up to the concepts that will be introduced with the 2018 standard. After the course, the participants should be able to improve their skills in writing/improving their programs for scientific applications using the Fortran language.


Pre-requisites

  • Being active in the development of a scientific application written in Fortran (basic knowledge of Fortran)
  • Basic knowledge of C language
  • Familiarity with object-oriented programming concepts and parallel programming techniques.

 

    • 09:00 09:10
      Welcome 10m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland

      Welcome to the Workshop by the Local Organizers

      Speaker: Alfio Lazzaro (University of Zurich)
    • 09:10 10:30
      Lecture 1h 20m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland

      New Fortran 2003/2008 features (including Object-Oriented) and outlook to the new standard 2018. Best practices for Fortran.

      Speaker: Arjen Markus (Deltares)
    • 10:30 11:00
      Coffee-break (offered) 30m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
    • 11:00 12:30
      Hands-on 1h 30m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
      Speaker: Arjen Markus (Deltares)
    • 12:30 13:30
      Lunch (on your own) 1h Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
    • 13:30 15:00
      Lecture 1h 30m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
      Speaker: Arjen Markus (Deltares)
    • 15:00 15:30
      Coffee-break (offered) 30m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
    • 15:30 16:50
      Hands-on 1h 20m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
      Speaker: Arjen Markus (Deltares)
    • 16:50 17:00
      Summary of day 1 10m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
    • 09:00 10:15
      Lecture: Mixed Language Programming 1h 15m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland

      This lecture motivates the idea behind software interfaces, and reminds the audience on how static type checks are performed in C++, C, and FORTRAN (compile time). The basic terminology such as explicit/implicit interfaces, pass-by-reference or by-pointer as well as passing arguments by-value are settled. Practical code snippets illustrate how to interoperate between C, C++, modern FORTRAN (ISO_C_BINDING), and how basic compatibility with legacy codes (FORTRAN 77) is achieved. The focus will be on ISO_C_BINDING methodology, but practical hints are given on limitations as well as performance impact. Tools to automate language interoperability (to generate interfaces) are briefly mentioned, and low-level recipes for NM and LD/D are given (extract symbol names, wrap and intercept function calls). The lecture intends to build a solid base as well as practical collection for the following hands-on.

      Speakers: Hans Pabst (Intel Semiconductor AG), Mikko Byckling (Intel Finland)
    • 10:15 10:30
      Hands-on: Mixed Language Programming 15m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
      Speakers: Hans Pabst (Intel Semiconductor AG), Mikko Byckling (Intel Finland)
    • 10:30 10:45
      Coffee-break (offered) 15m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
    • 10:45 11:30
      Hands-on: Mixed Language Programming (continued) 45m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
      Speakers: Hans Pabst (Intel Semiconductor AG), Mikko Byckling (Intel Finland)
    • 11:30 12:30
      Lecture: Introduction to levels of parallelism in a modern HPC system 1h Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland

      This lecture presents notable Fortran features such as array slices and array expressions (incl. caveats with temporaries), elemental functions, and extends the principles to explicit SIMD vectorization based on the OpenMP standard. This part concludes on how to target modern vector extension using compiler flags beyond an umbrella optimization setting.

      OpenMP constructs targeting thread-level parallelism may be covered by an own lecture; however a collection of common code patterns is presented that can help to improve multicore scalability (synchronization, thread-local storage). The lecture concludes with an Application Performance Snapshot using Intel VTune Amplifier, a tool that helps to not only speculate about performance, but rather analyze a given code at an algorithmic as well as target-specific level.

      Speakers: Hans Pabst (Intel Semiconductor AG), Mikko Byckling (Intel Finland)
    • 12:30 13:30
      Lunch (on your own) 1h Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
    • 13:30 14:30
      Lecture: SIMD programming in Fortran 1h Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
      Speakers: Hans Pabst (Intel Semiconductor AG), Mikko Byckling (Intel Finland)
    • 14:30 14:45
      Coffee-break (offered) 15m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
    • 14:45 15:45
      Lecture: Multithreaded programming with OpenMP in Fortran 1h Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
      Speakers: Hans Pabst (Intel Semiconductor AG), Mikko Byckling (Intel Finland)
    • 15:45 16:45
      Hands-on: SIMD and multithreaded programming 1h Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland

      People will generally play with the constructs introduced in the lecture, and either (A) conclude with an issue analysis for a given code (using Intel VTune Amplifier or Intel Vector Advisor), or (b) enter into a competition on code performance that may resolve scalability issues and/or improving the performance quality of the compiled code.

      Speakers: Hans Pabst (Intel Semiconductor AG), Mikko Byckling (Intel Finland)
    • 16:45 16:55
      Summary of day 2 10m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
    • 17:00 19:00
      Apero (offered) 2h Y13-M-Foyer Aquarium (University of Zurich)

      Y13-M-Foyer Aquarium

      University of Zurich

      Irchel campus
    • 09:00 10:30
      Lecture: Useful tools and techniques for Fortran projects 1h 30m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
      • Fortran meta-programming using preprocessor
      • Unit testing
      • Test coverage test
      • Source code documentation
      Speaker: Dr Bálint Aradi (Bremen Center for Computational Materials Science, University of Bremen)
    • 10:30 11:00
      Coffee-break (offered) 30m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
    • 11:00 12:30
      Hands-on: Fortran meta-programming with Fypp 1h 30m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
      Speaker: Dr Bálint Aradi (Bremen Center for Computational Materials Science, University of Bremen)
    • 12:30 13:30
      Lunch (on your own) 1h Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
    • 13:30 14:50
      Hands-on: Unit testing, test coverage, source code documentation 1h 20m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
      Speaker: Dr Bálint Aradi (Bremen Center for Computational Materials Science, University of Bremen)
    • 14:50 15:00
      Summary of day 3 and wrap-up of the workshop 10m Y11 F 06

      Y11 F 06

      University of Zurich, Department of Chemistry C

      University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland
Your browser is out of date!

Update your browser to view this website correctly. Update my browser now

×