On 30.05.23 15:32, Andre Vehreschild wrote:
Hi all,

thank you for all your input. I have read the funding requirements and checked
out the application form. We have to agree on a project goal and describe why
it is critical to fund this project.

Let me try a first shot on this:

- Title:

GFortran-Improvement

- Abstract:

Enable the free gfortran compiler to support contemporary language paradigms.

- Dependencies (on the project as well as projects that depend on the
   technology)

Does any one have a convincing project that uses contemporary Fortran?

CP2K is an example, it's open source and written in Fortran.

https://www.cp2k.org/


Project goal (max 900 words!):

* Complete language intrinsic parallel programming paradigm coarrays. This
   includes completing native coarray support (thread based). As well as
   refactoring of the library based  coarray approach to support coarrays in
   modules. I.e. research on how to support the use of coarrays in modules that
   are not aware of coarrays (not compiled with its support enabled).

The current work is process-based, and there is no problem that we see
about library code.

What about this?

* Fortran has a safe and intuitive method for parallel execution,
  coarrays. There is currently no 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 an experimental, but useful feature.

I also would not promise complete coarray support by project's end.
This would include teams, which are scary :-)

Having a useful

(There is Intel, which is dog-slow, and there is NAG, which costs
money).

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

Again, we should not promise what we cannot deliver.

* Ensure maintainability of gfortran by cleaning up/refactoring APIs including
   the scalarizer. Improve the single responsibility pattern's (SRP) use by,
   e.g., ensuring the parser does no longer parts of the resolve stage. The goal
   is not only to separate responsibilities but also to get clearer error
   messages and with that improve user-friendliness.

Why is it critical to fund this project (300 words max)?

Improving the freely available gfortran compiler to support state of the art
parallelism and language paradigms as well as removing bugs and ensuring
standard compliance will allow existing codes to be compiled more reliably.
Furthermore is the lack of support for the newer language paradigms preventing
the use of Fortran in current projects. Developing in contemporary Fortran needs
commercial compilers (that support these paradigms already), which leads to
dependencies on those.

Fortran remains one of the premier language for science, especially for
high-performance computing and fields like quantum chemistry or
computational fluid dynamics.

gfortran is the default Fortran compiler on Linux systems, and lack of
features and bugs in 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.  Funding will motivate experienced
gfortran developers who have reduced their contributions to return
to the project and advance it substantially.


This is what I propose for a start. I welcome everyone to participate and make
the goal or the reasoning more elaborate. We may propose the funding request in
English or in German. When no one participates, I am tempted to propose it in
German, as that being my first language, I feel more confident in it.

Make it English, all people here on the list should be able to follow.

The company Badger Systems GmbH, Cologne, DE, I am working for will support in
project and bureaucratic management and is willing to act as the proposer of
this funding request. We of course will be profiting from this.

Any input is welcome. Feel free to ask, comment, agree, disagree (only when you
propose something better) or just acknowledge.

One thing I did not find at a cursory glance is how the project funding
would be distributed, and under which conditions.

Did you find anything on the website?

Best regards

        Thomas

Reply via email to