Thanks for working on this, guys.  I made a few suggestions below.

Damian

On Wed, May 31, 2023 at 5:25 AM Andre Vehreschild via Fortran <
fortran@gcc.gnu.org> wrote:

>
> - Dependencies (on the project as well as projects that depend on the
>   technology; max 300 words)
>
> CP2K https://www.cp2k.org/


Coarray codes:

ICAR: https://github.com/ncar/icar
FEATS: https://github.com/sourceryinstitute/feats
FAVOR*:
https://www.nrc.gov/reading-rm/doc-collections/nuregs/staff/sr1795/index.html

* This is a closed-source project that will feature parallel execution with
coarrays in an upcoming release.

For additional coarray codes, check out these references:

Mozdzynski, G., Hamrud, M., & Wedi, N. (2015) A Partitioned Global Address
Space implementation of the European Centre for Medium Range Weather
Forecasts Integrated Forecasting System. International Journal of High
Performance Computing Applications.

Garain, S., Balsara, D. S., & Reid, J. (2015) Comparing Coarray Fortran
(CAF) with MPI for several structured mesh PDE applications. Journal of
Computational Physics.

Preissl, R., Wichmann, N., Long, B., Shalf, J., Ethier, S., & Koniges, A.
(2011) Multithreaded global address space communication techniques for
gyrokinetic fusion applications on ultra-scale platforms. In Proceedings of
2011 International Conference for High Performance Computing, Networking,
Storage and Analysis (p. 78). ACM.

Other important Fortran codes that don't necessarily use coarrays:

NWChem computational chemistry software
FUN3D computational fluid dynamics software from NASA
MSC NASTRAN structural engineering software from MSC Software
WRF weather forecasting software from NCAR
FAST nuclear fuel performance software from the U.S. Nuclear Regulatory
Commission (NRC)



> - Why is it critical to fund this project (300 words max)?
>
> Fortran remains one of the premier language for science, especially for
> high-performance computing and fields like quantum chemistry or
> computational fluid dynamics.
>

If you want some usage data, I can provide PDF slides, but I don't think
the gfortran mailing list takes attachments so you'll have to contact me
directly.


> gfortran is the default Fortran compiler on many Linux systems, and lack of
> features and bugs in gfortran hinder adoption of more modern, safer and
> more
> efficient language features. The project has been almost entirely
> volunteer-driven so far, but is currently suffering from a lack of active
> developers for larger features. Funding will enable the project to pay some
> gfortran experienced developers to implement some of missing/incomplete
> features, that are too large to tackle for a single volunteer. Payed
> developers
> are to contribute a significant part of the features.
>
> - Target of the projects in the sense of users (max 300 words)
>
> High-performance computing community, esp. but not limited to fluid and
> thermo
> dynamics, wheater forecasting
>

I would mention the worldwide impact of weather and climate models, all of
which are Fortran codes.  I would also mention nuclear energy.  All of the
codes developed by the U.S. Nuclear Regulatory Commission and used for
licensing power plants are Fortran codes. Also aerospace, e.g., FUN3D
developed by NASA and used by SpaceX and several aircraft manufcaturers.
And automotive engineering (mention NASTRAN developed by MSC Software and
used by several automotive companies).


>
> - How was the project funded in the past (max 300 words)
>

If you don't mind mentioning that the foundational work on the front-end
was partly funded by Sourcery Institute with the remainder being the work
of volunteers, that would be appreciated.  Of course, none of the work on
the shared-memory library was funded by Sourcery Institute so maybe the
Sourcery Institute is not relevant.  Your call.


>
> - Project goal (max 900 words!):
>
> * Fortran has a safe and intuitive method for parallel execution,
>   coarrays. There is currently no complete and efficient implementation for
>   multi-core CPUs on a freely available compiler. The goal is to bring
>   the existing, process-based shared memory implementation on a branch
>   into gfortran mainline as a feature for further evaluation and hardening.
>

This is good.  I think I saw an earlier version without the "on a freely
available compiler" text.  This version is accurate.

>
> * GFortran's coarrays for distributed memory lack support for data
> structures
>   provided modules that have not been compiled with coarray support (or are
>   distributed in binary form only). Research and prototypical
> implementation
>   shall be conducted with the goal to find a general and well performing
>   solution. This could become an outstanding feature for a free compiler.
>

Will this work also require working inside OpenCoarrays?  If so, that would
be great and it's probably important to mention OpenCoarrays directly here
because it's separate software with a different license.


>
> * Enhance the support for teams in coarray to a level where it gets usable.
>   Teams in coarrays allow for grouping workers logically. These then can
>   colaborate without interference or the user needing to take care. The
> support
>   is rather basic and shall be made usable to a level where the most
> popular
>   calls work.
>

This is exciting.  I recommend also mentioning support for the features
related to failed images.  In the most commonly envisioned use case for
failed images, teams are essential.  On the other hand, getting failed
images right is going to be hard and might not fit within the available
funding.


>
> * Enhance standard compliance from Fortran 2003 onwards. Esp. fixing
>   finalization of partially derived types (PDTs) and issues in the
> associate
>   command.
>

I'm especially excited about improved support for the associate statement
(which is already quite good and better than some other compilers).

Damian

Reply via email to