OpenCoarrays integration with gfortran
Alastair McKinstry
mckinstry@debian.org
Mon Sep 24 10:58:00 GMT 2018
On 23/09/2018 10:46, Toon Moene wrote:
> On 09/22/2018 01:23 AM, Jerry DeLisle wrote:
>
> I just installed opencoarrays on my system at home (Debian Testing):
>
> root@moene:~# apt-get install libcoarrays-openmpi-dev
> ...
> Setting up libcaf-openmpi-3:amd64 (2.2.0-3) ...
> Setting up libcoarrays-openmpi-dev:amd64 (2.2.0-3) ...
> Processing triggers for libc-bin (2.27-6) ...
>
> [ previously this led to apt errors, but not now. ]
>
> and moved my own installation of the OpenCoarrays-2.2.0.tar.gz out of
> the way:
>
> toon@moene:~$ ls -ld *pen*
> drwxr-xr-x 6 toon toon 4096 Aug 10 16:01 OpenCoarrays-2.2.0.opzij
> drwxr-xr-x 8 toon toon 4096 Sep 15 11:26 opencoarrays-build.opzij
> drwxr-xr-x 6 toon toon 4096 Sep 15 11:26 opencoarrays.opzij
>
> and recompiled my stuff:
>
> gfortran -g -fbacktrace -fcoarray=lib random-weather.f90
> -L/usr/lib/x86_64-linux-gnu/open-coarrays/openmpi/lib -lcaf_mpi
>
> [ Yes, the location of the libs is quite experimental, but OK for the
> "Testing" variant of Debian ... ]
>
> I couldn't find cafrun, but mpirun works just fine:
>
> toon@moene:~/src$ echo ' &config /' | mpirun --oversubscribe --bind-to
> none -np 20 ./a.out
> Decomposition information on image   7 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image   6 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image  11 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image  15 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image   1 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image  13 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image  12 is   4 *   5 slabs with  21
> * Â 18 grid cells on this image.
> Decomposition information on image  20 is   4 *   5 slabs with  21
> * Â 18 grid cells on this image.
> Decomposition information on image   9 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image  14 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image  16 is   4 *   5 slabs with  21
> * Â 18 grid cells on this image.
> Decomposition information on image  17 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image  18 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image   2 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image   4 is   4 *   5 slabs with  21
> * Â 18 grid cells on this image.
> Decomposition information on image   5 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image   3 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image   8 is   4 *   5 slabs with  21
> * Â 18 grid cells on this image.
> Decomposition information on image  10 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
> Decomposition information on image  19 is   4 *   5 slabs with  23
> * Â 18 grid cells on this image.
>
> ... etc. (see http://moene.org/~toon/random-weather.f90).
>
> I presume other Linux distributors will follow shortly (this *is*
> Debian Testing, which can be a bit testy at times - but I do trust my
> main business at home on it for over 15 years now).
>
> Kind regards,
>
Thanks, good to see it being tested (I'm the Debian/Ubuntu packager).
caf /cafrun has been dropped (for the moment ? ) in favour of mpirun,
but I've added pkg-config caf packages so that becomes an option.
$ pkg-config caf-mpich --libs
-L/usr/lib/x86_64-linux-gnu/open-coarrays/mpich/lib -lcaf_mpich -Wl,-z,relro -lmpich -lm -lbacktrace -lpthread -lrt
(My thinking is that for libraries in particular, the user need not know
whether CAF is being used, and if lib foobar uses CAF, then adding a:
   Requires: caf
into the pkg-config file gives you the correct linking transparently.
The "strange" paths are due to Debians multiarch : it is possible to
include libraries for multiple architectures simultaneously. This works
ok with pkg-config and cmake , etc (which allow you to set
PKG_CONFIG_PATH and have multiple pkgconfig files for different libs
simultaneously) , but currently break wrappers such as caf / cafrun.
I can add a new package for caf / cafrun but would rather not. (W e
currently don't do non-MPI CAF builds).
There is currently pkg-config files 'caf-mpich' and 'caf-openmpi' for
testing, and I'm adding a default alias caf -> caf-$(default-MPI)
regards
Alastair
--
Alastair McKinstry, <alastair@sceal.ie>, <mckinstry@debian.org>, https://diaspora.sceal.ie/u/amckinstry
Misentropy: doubting that the Universe is becoming more disordered.
More information about the Fortran
mailing list