If this moves forward, I’d like to offer example code to target in Fiats (
https://go.lbl.gov/fiats).  I presented automatic parallelization results
produced by compiling with LLVM flang-new for inference at the PAW-ATM
workshop at SC24 (see https://go.lbl.gov/just-write-fortran). It would be
great to have a similar capability with gfortran.  And I would be
especially excited if Fortran 2023 reduce locality is supported. In our
training algorithm, the use of reduce locality reduces one block of code
from around 10 statements to one statement.

Damian

On Mon, Mar 10, 2025 at 04:19 Thomas Koenig <tkoe...@netcologne.de> wrote:

> Dear Chenlu,
>
> Thank you for your interest!
>
> I have forwarded your e-mail to the gfortran mailing list, where
> discussion of gfortran takes place.
>
> Best regards
>
>         Thomas
>
>
> -------- Weitergeleitete Nachricht --------
> Betreff: [GSoC][Fortran – DO CONCURRENT] Interest in 2025 GSoC – Fortran
> DO CONCURRENT Auto-Parallelization
> Datum: Mon, 10 Mar 2025 15:43:52 +1100
> Von: Zhang lv via Gcc <g...@gcc.gnu.org>
> Antwort an: Zhang lv <zhanglv0...@gmail.com>
> An: g...@gcc.gnu.org
>
> Hi here,
>
> I'm a Master of Computer Science student at the University of Melbourne.
> Previously, I worked on implementing a GCC optimization prefetching pass
> (which involved loop unrolling) for an Alpha-like computer architecture.
> I'm set to complete my research project in July and graduate soon.
>
> I'm very interested in applying for the 2025 GSoC project and discussing
> potential ideas with the community. However, I'm still unfamiliar with the
> best way to engage in these discussions and apply for the project, so this
> is my first attempt at reaching out.
>
> My primary interest is in projects related to auto-parallelization,
> particularly the Fortran *DO CONCURRENT* project. Below, I outline my
> initial understanding of the project and would appreciate any feedback from
> the community to ensure I'm on the right track:
>
>     1. The *front-end parser* processes the Fortran *DO CONCURRENT* syntax
>     and converts it into a language-independent IR—*GIMPLE*.
>     2. The *middle-end* then applies tree optimizations, utilizing SSA
>     passes to optimize the code for auto-parallelization.
>     3. This project will involve both *front-end* work (parser and
>     parameterized command-line flags) and *middle-end* optimizations
>     (optimization passes).
>
> Loop unrolling is influenced by multiple factors, such as loop nesting and
> whether iteration counts are deterministic. A significant performance gain
> comes from reducing array memory access delays, which techniques like
> prefetching can help with. Since *DO CONCURRENT* assumes iteration
> independence, we have more flexibility to unroll loops and implement
> parallelization efficiently.
>
> One of the most exciting advantages of this project is that it enables
> auto-parallelization for a broader range of code without requiring
> developers to be an OpenMP expert. *DO CONCURRENT* in Fortran is much
> easier to use, and previous auto-parallelization techniques have been quite
> limited in their applicability, as only specific loop structures could
> benefit from them.
>
> I look forward to engaging with the community and gaining insights on how
> best to contribute to this project.
>
> Best regards,
>
> Chenlu Zhang
>

Reply via email to