Conveners
Presentations
- Tiziano Müller (Theory & Computation, Dept. of Chemistry, University of Zurich)
Presentations: Presentations
- John Reid (Rutherford Appleton Laboratory)
Presentations
- Juan Herrera (EPCC)
Presentations
- Alfio Lazzaro (HPE CH)
Presentations
- Nathan Sircombe (Arm)
Most, if not all, programs that perform numerical computations of some kind or other need to deal with
the units of measure in which their variables are expressed. Many solutions for the general problem
have been proposed, but the problem is more difficult than it looks at first sight. For instance,
should a program be able to handle different units (cm versus inch) automatically? Is it...
Compile-time evaluation offers significant advantages during optimization and debugging. It promotes transparency and brings a code closer to functional paradigm. Unfortunately, Fortran does not support compile time evaluation of user defined functions. Nevertheless, it includes two features which salvage such undertakings: a vast library of intrinsic functions and default constructors. The...
Practitioners in the field of hydrometallurgy need computational models that
help to plan, optimize and troubleshoot the operation. Most of these models are
mass balance based and can be simply formulated in a spreadsheet application.
However, more detailed models that deal with such processes as heap or dump
leaching require solution of numerous coupled partial differential...
I will present an overview of the methods we use to generate bit-reproducible
solutions of the Modular Ocean Model (MOM), a Fortran-based model widely used
in weather and climate simulations. I will briefly describe the overall
structure of the solvers as well as its verification and regression test
suites. This is followed by a discussion of the more novel testing methods...
This talk will describe our experience porting the bottleneck kernels of NWChem's CCSD(T) code. With the NVIDIA HPC Fortran compiler, we are able to run completely standard Fortran code on A100 GPUs, with respectable performance, relative to the expert-optimized GPU implementation based on CUTENSOR. The same code runs well on a range of CPUs. We will explain how to optimize DO CONCURRENT...
We are developing a modern open-source Fortran compiler called LFortran. This compiler enables the interactive execution of code in environments like Jupyter, enabling exploratory workflows in Fortran (like Python, MATLAB or Julia). Besides interactive use, LFortran can also generate binaries. A live demo of the compiler with a Jupyter notebook will be shown. The...
Over the last decade, efficient and portable GPU programming has become a necessary evil for applications expecting to run efficiently on modern supercomputers.
The Heterogeneous-compute Interface for Portability (HIP) is a C++ Runtime API and kernel language that allows developers to create portable applications for AMD and NVIDIA GPUs from single source code.
HIPFort exposes the HIP APIs...
The SPACE (System Power Analysis for Capability Evaluation) Fortran program developed at NASA Glenn Research Center has enabled power generation predictions and energy balance analyses for spacecraft electrical power systems (EPS) since 1988. SPACE was originally designed to analyze the EPS of the Space Station Freedom and continues to support certifications for visiting vehicles and...
In this presentation the implementation adopted on existing Fortran code used across different platforms (Windows/Linux), for the calculation of Ship motions based on potential theory, to achieve hybrid parallelization (MPI and OMP) will be discussed. Main points of attention when developing code (MPI shared memory, OMP private data, sp/dp precision, compilers, etc.) as well as user definition...
f2py
is the gold standard for interfacing Fortran and Python. The most famous downstream consumer of the generated wrappers is undoubtedly the scipy
ecosystem. Crucially, f2py
is not a compiler, and generates a best effort set of wrappers, aided by special comment lines. One of the key inter-operable approaches to compilation of the subsequent wrappers relies on numpy.distutils
. Given...
In the modern software development approach, it is often advocated that test automation should be implemented in the regular workflow. The test automation aims to simplify the software development by replacing the repetitive tasks into a framework that would compare the actual with the predicted outcomes.
One way to guarantee that new implementations in legacy code would not change past...
Starting in Fortran 2008, Fortran supports two forms of parallelism: loop-level parallelism using DO CONCURRENT and coarse-grain parallelism using
coarrays, which is form of PGAS. This talk will describe a third form of parallelism and argue that it should be supported by the Fortran language. The third form of parallelism is shared-memory task parallelism, which supports a range of use...
Automated testing is a well established best practice in software development, so you are writing test suites for your Fortran projects right? But how useful is your test suite after you have finished writing it? Does it help you to pinpoint the source of bugs? Does it help you to make changes to functionality, or get in the way? Would a new developer find it useful for getting their bearings...