Challenge Overview
Project Overview
We are going to improve the Nemog https://github.com/lawsonro3/Nemoh - A frequency-domain potential flow hydrodynamics code developed by École Centrale de Nantes that has recently been released under the Apache 2.0 license
Competition Task Overview
In this competition we need to improve the open source BEM code Nemoh.
The Requirements:
- General cleanup: large parts of the code were written in Fortran 77 a long time ago. They make use of obsolete data structures (COMMON blocks). Variable names are often not explicit. Most of the code is not or insufficiently commented/explained. In this contest, we are expecting competitors to rewrite the code in F95 or later.
- Speed improvements:
- Code acceleration: influence matrix is recalculated for each BVP. It is a inefficient because actually, it changes only if the frequency changes. One should make use of this property to speed up the calculations.
- Solver for the matrix equation: only Gauss solver is implemented, which has a numerical complexity of O(N3). At least a GMRES should be implemented as well, O(N²).
- Implementation of OpenMP so that multiple processors on a single chip can be used to run simulations - Right now the code is serial, that is it can only run on one processor. By implementing OpenMP, we could allow the code to take advantage of the architecture of today's multi-core chips. One of the nice things about OpenMP is that it should allow any number of cores to be used. We have no preference how the code is parallelized or speeded up, as long as it runs faster.
Technology Overview
- Fortran
Documentation Provided
Documentation and Applications that will be provided to registered members in the forum.
Final Submission Guidelines
Required document:
- The updated code
- The changeLog file records all the code changes
- The TC standard deployment guide how to configure and verify the application