On Sun, Apr 8, 2018 at 8:56 PM, Damian Rouson
<dam...@sourceryinstitute.org> wrote:
> On April 4, 2018 at 1:12:25 AM, Richard Biener 
> (richard.guent...@gmail.com(mailto:richard.guent...@gmail.com)) wrote:
>
>> In that case user programs compiled with -fcoarray=lib are but gfortran
>> or libgfortran itself is not linked against OpenCoarrays?
>
> Yes.  OpenCoarrays produces the parallel runtime library libcaf_mpi using MPI.
>
>> So if we consider OpenCoarrays part of the gfortran runtime then
>> it makes sense to build it in-tree…
>
> Yes.  Many gfortran users and developers who will be glad to see this both 
> because it enables the Fortran 2008/2018 parallel features and because it 
> facilitates building related tests.
>
>> ... but building an mpi library in-tree might not?
>
> OpenCoarrays requires an underlying parallel programming model.  MPI is the 
> default model because it provides the broadest coverage of the required 
> features.  OpenCoarrays also offers alternatives to MPI, but those are 
> experimental and support a more restricted subset of Fortran 2008/2018.
>
>> I'm still lacking an idea of what it takes to enable coarrays with gfortran
>
> We will mimic the OpenCoarrays build system, which installs “caf" and 
> “cafrun" scripts analogous to MPI's "mpifort" and “mpirun,” respectively.  
> These are used to compile and launch parallel programs:
>
> $ cat hello.f90
> print *,”Hello from image “,this_image(),” of “,num_images()
> end
> $ caf hello.f90
> $ cafrun -n 4 ./a.out
>   Hello from image 2 of 4
>   Hello from image 1 of 4
>   Hello from image 4 of 4
>   Hello from image 3 of 4

I see.  So it's more like OpenCoarrays is in control of everything
rather than GCC...

>> since install.texi doesn't talk about this at all, neither in the 
>> prerequesites
>> section nor in a fortran/coarray specific section.
>
> If there are guidelines for modifying install.texi and invoke.texi, please 
> send a link.  It appears install.texi is written in raw TeX.  I use LaTeX 
> regularly but haven’t touched TeX in decades. I’ll give it a shot.  I also 
> don’t understand how those files are used

There are no guidelines - simply follow surrounding code.  Note this
is texinfo, not tex.  We generate
man pages, html documentation and pdf docs from these sources.  See for example
https://gcc.gnu.org/install/

>> In fact the only thing I find is in invoke.texi which says
>>
>> @item -fcoarray=@var{}
>> @opindex @code{fcoarray}
>> ...
>> @item @samp{lib}
>> Library-based coarray parallelization; a suitable GNU Fortran coarray
>> library needs to be linked.
>> @end table
>>
>> which suggests linking to the coarray library doesn't happen automatically
>> but the user is supposed to link a suitable library?
>
> caf invokes gfortran and links against libcaf_mpi and the MPI libraries.  The 
> OpenCoarrays build system customizes caf to ensure a consistent tool chain 
> (e.g., ensuring the employed MPI was built by the employed compiler). This 
> allows for reusing one gfortran installation with multiple parallel 
> programming models.
>
>> I'd love to "enable" coarray support for openSUSE but as said I have a hard
>> time assessing what I'd need to do here.
>
> Until we figure out how to get the GCC build system to build MPICH and 
> OpenCoarrays, enabling coarray support requires downloading and building 
> MPICH and OpenCoarrays separately.  Please see the instructions for GCC 
> developers: 
> https://github.com/sourceryinstitute/opencoarrays/blob/master/INSTALL.

Thanks - I expected to find sth in the GCC manual or on the GCC wiki
;)  I'll have a look when I have some spare cycles.

> Thanks for your feedback.  I’m hopeful that your advice will be helpful for 
> Daniel in figuring out how to modify the GCC build system.

As said I'm still not convinced building those libraries in-tree is
the best way forward.  I won't stand in the way of making that
work though.

Richard.

> Damian
>
>

Reply via email to