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