Webinar 2017 Modern Fortran: Concurrency and Parallelism

From SHARCNETHelp
Revision as of 15:17, 20 April 2017 by imported>Syam (Created page with "This seminar introduces the features of modern Fortran for scientific computing. Designed for simplicity and performance, modern Fortran has the syntax as simple and rich as M...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

This seminar introduces the features of modern Fortran for scientific computing. Designed for simplicity and performance, modern Fortran has the syntax as simple and rich as MATLAB, yet delivers top efficiency in the family of high level, compiled languages.

Rooted from the idea of FORmula TRANslation, Fortran is one of the oldest programming language for scientific computing, and as its name suggests primarily involves translating mathematical formulae and algorithms into computer code and producing results. Over the past decades, Fortran (derived from the spelling FORTRAN), has undergone significant modifications and improvement -- an evolution on a scale rarely seen in any other languages. If you use MATLAB, you will find Fortran has the identical syntax and simplicity in array operations, yet achieves a much higher performance. For scientific computing, Fortran is still among the top candidates for its strength in REAL and COMPLEX intrinsics, array processing and floating point operations. Also, with the 2008 standard, Fortran becomes the first and the only language that has the intrinsic support for concurrent and parallel processing.

In this seminar, we will first review key Fortran features such as dynamic allocations, array slicing, data structures, specifiable precision, inquiry functions, function overloading and optional arguments. We will then cover the new features that facilitate concurrency and parallelism. One of the attractive features for parallel processing introduced by the Fortran 2008 standard is coarray. Coarray in Fortran makes writing parallel code that can run on shared and distributed memory system trivial.