Giter Site home page Giter Site logo

"Modern" Fortran support about flang HOT 8 OPEN

szaghi avatar szaghi commented on August 18, 2024
"Modern" Fortran support

from flang.

Comments (8)

mleair avatar mleair commented on August 18, 2024 3

Hi @szaghi

Flang supports those features today. Of course let us know if you run into any problems using them.

from flang.

rouson avatar rouson commented on August 18, 2024 2

Following up on the comment of @jeffhammond, as the flang team starts to consider adding the parallel features of Fortran 2008/2015, a good next step after do concurrent is to support the class of embarrassingly parallel problems that don't necessitate declaring a coarray. I have encountered numerous research groups whose parallel programming needs are completely served by

  1. Synchronization:sync all and sync images,
  2. Error termination: error stop, and
  3. Collective subroutines: co_sum, co_broadcast, co_min, co_max, and co_reduce.
  4. Image enumeration: this_image() and num_images()

Each of these could be obtained at relatively low cost by linking to OpenCoarrays and the OpenCoarrays team could work with the flang team on making any necessary adjustments such translating data descriptors and such.

from flang.

jeffhammond avatar jeffhammond commented on August 18, 2024 1

@mleair

  1. DO CONCURRENT, which is trivial to do using whatever you have already for FORALL and straightforward to do as an OpenMP DO loop (i.e. implicitly pre-pend!$omp parallel do [simd])
  2. NORM2, which should be trivial.
  3. Fortran 2008 + TS 29113 features required to support MPI 3.1 Fortran 2008 bindings (see e.g.
    Implementing the MPI-3.0 Fortran 2008 Binding for details).
  4. coarrays, as noted previously.

I apologize if any of these have been fixed since my last Flang build (May 22). I have not tested 3 yet because the lack of other Fortran 2008 features made me pessimistic.

Related

from flang.

SolidTux avatar SolidTux commented on August 18, 2024 1

I also tried to compile some of my code and noticed, that execute_command_line, which is part of the 2008 standard, is not supported, but system works.

from flang.

mleair avatar mleair commented on August 18, 2024

Hi,

We saw your other open issue on Open CoArrays Support. Which other modern Fortran features are you looking for?

from flang.

szaghi avatar szaghi commented on August 18, 2024

Dear @mleair

Thank you very much for your kind reply.

My Fortran programs are mainly based on OOP, in particular:

  • abstract types with deferred bindings, especially operators overloading;
  • polymorphic procedures at runtime;
  • finalizer (low usage indeed);

I think these are the minimal requirements in order to build FOODIE that is one of my main project. There are others F2003/2008 that I use, but the above are the most important.

My best regards.
My best regards.

from flang.

szaghi avatar szaghi commented on August 18, 2024

@mleair

Thanks! Tomorrow I'll try build FOODIE and I'll report my feedback.

My best regards.

from flang.

szaghi avatar szaghi commented on August 18, 2024

@mleair

Just a funny note: I failed this morning to install flang... its sources and compiled object filled my 15 GB residuals opt storage 😄 I was not conscious llvm is so big... later today I'll accommodate more space into a dedicated partition 😄

from flang.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.