Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 15 21:58
    rouson edited #757
  • May 15 21:37
    rouson synchronize #757
  • May 15 21:37

    rouson on reorganize

    doc(src/README): explain the op… (compare)

  • May 15 21:16
    rouson edited #757
  • May 15 21:15
    rouson edited #757
  • May 15 21:15
    rouson edited #757
  • May 15 21:15
    rouson edited #757
  • May 15 21:14
    rouson opened #757
  • May 15 21:08

    rouson on reorganize

    build(make): rm redundant Makef… rm unused ISO_fortran_bindin fi… chore: rm unused/unmaintained I… and 1 more (compare)

  • May 15 00:47

    rouson on reorganize-dirs

    refac(dir): mv src/tests dir; a… rm legacy GASNet-1 transport la… rm legacy Makefile/make.inc* fi… and 3 more (compare)

  • May 09 04:20

    rouson on 2.10.0

    (compare)

  • May 09 03:54

    rouson on main

    doc: update additional copyrigh… (compare)

  • May 09 03:27

    rouson on main

    bump version to 2.10.0 to prepa… doc: fix copyright dates & Fort… (compare)

  • May 09 02:54

    rouson on 2.10.0

    (compare)

  • May 09 02:10

    rouson on 2.10.0

    bump version to 2.10.0 to prepa… (compare)

  • May 09 01:37
    rouson assigned #626
  • May 09 01:36
    rouson reopened #626
  • May 07 02:52
    rouson commented #755
  • May 07 02:25

    zbeekman on windows-support

    (compare)

  • May 07 02:25
    zbeekman edited #753
Izaak "Zaak" Beekman
@zbeekman
I'm mid rebase with a bunch of edits
oops, I'm using the wrong gitter room... oh well, no matter
luiceur
@luiceur
Hello
Izaak "Zaak" Beekman
@zbeekman
Hi @luiceur, welcome to the OpenCoarrays support channel. How may we help you?
Damian Rouson
@rouson
@zbeekman I I just created draft release notes for a new 1.7.4 release. Please release it at your earliest convenience.
Izaak "Zaak" Beekman
@zbeekman
Great! I should be able to get to it tonight
Damian Rouson
@rouson
@zbeekman, the tests passed and I merged the latest fixes into the master branch. I think we're ready for release as soon as you can get it out.
Izaak "Zaak" Beekman
@zbeekman
I just released. Let me know if you spot any issues.
Izaak "Zaak" Beekman
@zbeekman

@rouson I'm second guessing myself regarding some CAF semantics. Can you please confirm that there is no synchronization needed between the following two statements:

b(:) = a(:)[me+1]
matches = all( a_local(:) == b(:) )

i.e., the local image won't proceed until the assignment on line one completes

Izaak "Zaak" Beekman
@zbeekman
A pull request has been submitted to Homebrew to get OpenCoarrays into the homebrew package manager for OS X (and at some later date this will get pulled into linuxbrew): Homebrew/homebrew-core#8790
Izaak "Zaak" Beekman
@zbeekman
I am pleased to announce that OpenCoarrays is now available through the Homebrew package manager for OS X! homebrew
brew update
brew install --cc=gcc-6 OpenCoarrays # to get gcc to build the library... should also build fine with clang
Neil Carlson
@nncarlson
Hello! I'm finally dipping my toes into coarrays. I've got the master branch built with mpich 3.2 and gcc 6.3.1 and have successfully run the little tally.f90 from the GETTING_STARTED.md file. Now I'm looking for further simple example coarray programs. Are there some web pages or wikis out there where I can find such things?
Izaak "Zaak" Beekman
@zbeekman
Hmmmm well no wiki yet, you're welcome to create a FAQ with questions and we can try to answer them. As for documentation, FORD is in the works.
But have a look in the tests directory for examples. Unit tests are simplest. Also, you could try some of the examples from Damian's book, if you have access.
@rouson or @sfilippone might have some additional ideas.
Jerry DeLisle
@jerryd
Is there a way for this chat window to be out of browser? Is this chatroom private?
Izaak "Zaak" Beekman
@zbeekman
This chat is public
There's a native and phone app
We have a private chat for SI org
I'll look into whether non members can be added if you're interested
Izaak "Zaak" Beekman
@zbeekman
Yes, the private SI chat means you must be member of SI org, which for pricing reasons (which could be fixed... but...) right now it looks like you won't be able to join the private chat
Stefano Zaghi
@szaghi

Dear @zbeekman @rouson I have a problem with your great install.sh script. I am pushing my bosses to adopt opencoarrays, but they are strongly addicted to CentOS, and they are essentially paranoiac (root installation is not viable). The big issue is to install a recent gcc. Indeed, we have manually compiled installed gcc 6.2, but we have problem with gcc 6.3, thus I tried to exploit you script (that I used every week to update my local gcc-developing-trunk). However, I was not able to understand how to set the installer to point to 6.3 trunk instead of 6.1 (the default one). The syntax I use for the developing trunk is:

/install.sh -p gcc -b trunk -i /opt/gcc/bin/7.0.0

Can you let me know how to execute the script for installing 6.3 trunk?
Thank you very much for help!
Cheers

Damian Rouson
@rouson

Hi, Stefano. Thanks for your interest and especially for sharing with us your frequent use of the installation script. You can install any released versions using the --install-version or the equivalent -I option:

./install.sh -p gcc -I 6.3.0 -i /opt/gcc/bin/6.3.0

BTW, there exists a such a broad range of users: some refuse to use anything but a static Makefile; others prefer to use CMake; others use package management; others exclusively use the bash installation script install.sh. I believe we have to support as many installation options as possible and it's great to hear which option important users like you are choosing. Thanks for letting us know!
Stefano Zaghi
@szaghi

@rouson
Dear Damian,

BTW, there exists a such a broad range of users: some refuse to use anything but a static Makefile; others prefer to use CMake; others use package management; others exclusively use the bash installation script install.sh

:smile: I know. My bosses refuse all but CentOS... it is really a nightmare, not only for Fortran just think to LaTeX: using recent LaTeX packages, namely less old than 10 years becomes quickly a problem :smile:

Currently my workflow is strongly based on OpenCoarrays:

  • I use OpenCoarrays for CAF projects (mainly HASTY);
    • I use OpenCoarrays script to install (weekly/monthly) the latest gcc trunk for all Fortran projects;
  • I use Zaak's docker image for gcc nightly build (occasionally to check if some compiler's issues evolves);
  • now I will use OpenCoarrays script to install the latest gcc stable on my bosses' workstation :smile:

Thank you very much for the help, you rocks!

P.S. could you be interest on a very abstract designing of Fortran CFD libraries? I recently made important steps toward a really abstract CFD code exploiting many abstract libraries (obviously into which is FOODIE, FOODIE paper will be completed soon...)

Izaak "Zaak" Beekman
@zbeekman
Stefano, great news about FOODIE and your progress! Glad to hear that you're finding the installation script and other tools useful. Just FYI, as far as I know, you can either build a released GCC, OR the latest trunk, but you can't build, e.g., the latest GCC-6 branch... you have to use a release. (I just wanted to clarify that point, based on your original comment/question)
Stefano Zaghi
@szaghi
@zbeekman Dear Zaak, thank you for the clarification, you have anticipated my goal, build the latest 6-branch... :smile: Cheers
Izaak "Zaak" Beekman
@zbeekman
You could edit the script to build the 6 branch...
Damian Rouson
@rouson
@szaghi, yes, I'm very interested. It fits nicely with other things I'm working on. Please schedule some time for us to talk about what you're doing.
@zbeekman, if you're referring to the installer, it should be possible to install any (unreleased) branch, including non-trunk branches, using the --install-branch flag. For example, "./install.sh --install-branch gcc-6-branch" should install the pre-release GCC 6 branch. To see a list of all branches, use "./install.sh --list-branches gcc" or "./install.sh -B gcc".
Stefano Zaghi
@szaghi
@rouson Dear Damian, sure, soon you (and Zaak) will receive some email-spam from me :smile:
Damian Rouson
@rouson
@zbeekman, I was just looking through the commits since the last release. Most are related to documentation, but there was at least one that Andre committed on the core library (libcaf_mpi). How about we plan to get a new release out next week? FYI, I'm going to be at a workshop so I'll probably cancel this week's call.
Izaak "Zaak" Beekman
@zbeekman
Sounds good. I need to get in touch with Salvatore again about PSBLAS. I have a Homebrew formula for it that I need to submit (to Homebrew-science)
I found a bug in the bigint implementation that he has since fixed. If he can creat a new release then I can base the formula on my the latest release
Stefano Zaghi
@szaghi

Dear Damian ( @rouson @zbeekman ), as usual, today I tried your script to install the latest gcc 7.1 , but when I tried to list the available branches I got

┌╼ stefano@zaghi(09:56 AM Wed May 03) on master
├───╼ /opt/opencoarrays 20 files, 224Kb
└──────╼ ./install.sh --list-branches gcc
/opt/opencoarrays/prerequisites/build-functions/set_or_print_url.sh: line 49: version_to_build: unbound variable

Is this an issue of my env?
Is there an alternative to list available releases instead of branches?

I tried the following without success

╼ stefano@zaghi(09:58 AM Wed May 03) on master
├───╼ /opt/opencoarrays 20 files, 224Kb
└──────╼ ./install.sh -p gcc -I 7.1 -i /opt/arch/gcc/bin/7.1 -j 8
...
opt/opencoarrays/prerequisites/downloads /opt/opencoarrays
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
curl: (9) Server denied you to change to the given directory
2017-05-03 07:58:52 UTC [     info] Cleaning up. Done
2017-05-03 07:58:52 UTC [     info] Cleaning up. Done

Cheers

Stefano Zaghi
@szaghi
Ok, I found my error, it works with ./install.sh -p gcc -I 7.1.0 -i /opt/arch/gcc/bin/7.1.0 -j 8, I missed the .0 in the release version. Is it possible to list the available releases? Cheers
chiensh
@chiensh
Hi All, I am new to Co-Array Fortran, I am checking the latest development of CAF standard, but found that the official site for CAF http://www.Co-array.org is no longer working , and OpenCoArray is the only active site that is still working for CAF. Can anyone tell me is the work on CAF standardisations dead or they have move to a different site? Thanks!
Damian Rouson
@rouson

Hi @szaghi. I don't know how easy it would be to list the available releases. Requesting the list of branches results in the issuance of the command "svn ls svn://gcc.gnu.org/svn/gcc/branches/". By contrast, releases are downloaded from an ftp server that is accessed via curl, wget, or ftp (in order from most preferred to least preferred). In order to list releases, I would have to sort out how to list the files in a particular directory of the ftp server using each of the aforementioned three methods. I recommend using the command "./install.sh -U gcc" to list the default URL for downloading GCC (or replace GCC with the name of any other package that the installer knows how to build). Once you have that URL, you can visit the server in a browser to see the available packages.

With all the said, seeing the list will be of limited value if you're planning to use the compiler with OpenCoarrays. For several years to come (certainly at least 2-3), it will always be advisable to use OpenCoarrays with the latest GCC release. Until recently, that meant using 6.3.0. However, GCC 7.1.0 was released about a month ago as you probably know and just yesterday @zbeekman released OpenCoarrays 1.9.0 with experimental support for some exciting new features for users of GCC 7.1.0. Zaak or I will explain more in an email to the OpenCoararys mailing list sometime within the next 24 hours so watch for that if you're on the OpenCoararys Google Group mailing list.

Damian Rouson
@rouson
@chienesh I don't recall who owned www.co-array.org, but I don't think it was ever "official" as the official standards body for Fortran (including the standardized coarray features) is the ISO WG5 site. The most official resource is the draft version of the Fortran 2015 standard, which is available on the WG5 site here. With the support of OpenCoarrays, gfortran supports most coarray features with the only major exception being teams. Also, it's worth noting that even though "coarray Fortran" is a popular term for historical reasons, it's also possible to accomplish quite a lot by way of parallel programming without ever declaring or using a coarray. For some applications, any communication needs can be covered by the Fortran 2015 collective subroutines (co_broadcast, co_sum, co_max, co_min, and co_reduce). I highly recommend reading about those subroutines in the standard and using them whenever they are applicable. The can accomplish parallel communication and computation in a very efficient manner in shared or distributed memory and the arguments to these subroutines do not need to be declared as coarrays.
chiensh
@chiensh
Thank you Damian! I was also checking if there is any plan for collective routines in future, and you have answered my question. BTW, although www.co-array.org has never been the official CAF site, but it was referenced in the homepage of J3 Fortran Committee and wikipedia, so I think it needed to be clarified.
Damian Rouson
@rouson
Interesting. I didn't realize that. FYI, the Cray compiler also supports the Fortran 2015 collective subroutines. And as you might know, Intel's compiler reached full Fortran 2008 compliance this year with the beta release of version 18. I assume that means they'll start on Fortran 2015 parallel features after the 18 (they already support many if not all of the Fortran 2015 C-interop features so the parallel features should be next). Collective procedures are probably the easiest of the Fortran 2015 parallel features because they can be implemented as thin wrappers around MPI_Reduce. Let's hope we can have three Fortran 2015 compilers within 2-3 years.
Jeff Hammond
@jeffhammond
it is true that Fortran 2015 coarray collectives are easy to implement, particularly in compilers that use MPI as the coarray runtime. i don't know when Intel plans to implement these, but in general, the compiler team prioritizes features based upon customer demand. posting on the Intel forums or filing support tickets is the right way to create this demand (in addition to setting procurement requirements, which is not an option for most folks, obviously).
(says Jeff who works for Intel but does not speak for Intel )
Izaak "Zaak" Beekman
@zbeekman
I'm thinking it may not be too hard to get a binder notebook up and running with a coarray Fortran kernel. That would be pretty darn cool.
Stefano Zaghi
@szaghi

Dear @zbeekman and @rouson ,

I know that it is impossible to support all OS... but I would like to report that OpenCoarrays install.sh seems to fail on CentOS (an OS that is quite ancient).

Here my log

[root@broglia-6 OpenCoarrays]# ./install.sh -p gcc -b trunk -i /opt/gcc/bin/8.0.0 -j 8 -d
...
2017-06-05 10:35:13 UTC [     info] build_path="/opt/gcc/src/OpenCoarrays"/prerequisites/builds
+ export build_script=/opt/gcc/src/OpenCoarrays/prerequisites/build.sh
+ build_script=/opt/gcc/src/OpenCoarrays/prerequisites/build.sh
+ info 'build_script="/opt/gcc/src/OpenCoarrays"/prerequisites/build.sh'
+ '[' 7 -ge 6 ']'
++ _fmt info
++ local 'color_debug=\x1b[35m'
++ local 'color_info=\x1b[32m'
++ local 'color_notice=\x1b[34m'
++ local 'color_warning=\x1b[33m'
++ local 'color_error=\x1b[31m'
++ local 'color_critical=\x1b[1;31m'
++ local 'color_alert=\x1b[1;33;41m'
++ local 'color_emergency=\x1b[1;4;5;33;41m'
++ local colorvar=color_info
++ local 'color=\x1b[32m'
++ local 'color_reset=\x1b[0m'
++ '[' '' = true ']'
++ [[ xterm-256color != \x\t\e\r\m* ]]
++ '[' -t 1 ']'
+++ date -u '+%Y-%m-%d %H:%M:%S UTC'
+++ printf '[%9s]' info
++ echo -e '2017-06-05 10:35:13 UTC \x1b[32m[     info]\x1b[0m'
+ echo '2017-06-05 10:35:13 UTC [     info] build_script="/opt/gcc/src/OpenCoarrays"/prerequisites/build.sh'
2017-06-05 10:35:13 UTC [     info] build_script="/opt/gcc/src/OpenCoarrays"/prerequisites/build.sh
+ source /opt/gcc/src/OpenCoarrays/prerequisites/stack.sh
+ stack_new dependency_pkg
+ : dependency_pkg
+ stack_exists dependency_pkg
+ : dependency_pkg
+ eval '_i=${_stack_dependency_pkg_i:-}'
++ _i=
+ [[ -z '' ]]
+ return 1
++ uname
+ [[ Linux == \D\a\r\w\i\n ]]
+ eval 'declare -ag _stack_dependency_pkg'

I have trimmed out a lot of hopefully non useful log-lines before the very end.

On the same CentOS workstation I have trouble to compile manually gcc...

Cheers

Izaak "Zaak" Beekman
@zbeekman
Hi Stefano/@szaghi, first of all what does /usr/bin/env bash --version say? Also, can you please include the entire log? I'm not seeing where the error occurred... Damian created a script for use on the ParaTools HPC Linux VM which is also CentOS based, but I'm not sure it has all the same features as ./install.sh (specifying individual packages to build etc.). You could try your luck invoking prerequisites/build.sh ... directly as in https://github.com/sourceryinstitute/OpenCoarrays/blob/master/developer-scripts/hpclinux-install.sh#L64-L69 but you may have trouble resolving the pre-requisite dependencies, I'm not sure....
I also find that sometimes I need to build an intermediate compiler to get a very modern GCC built...
Stefano Zaghi
@szaghi

@zbeekman

Sorry for my delay.

The bash says

(riccardo@broglia-6)-(0)-(05:51 PM Tue Jun 06)
(/opt/gcc/bin)-(2 files, 16Kb)-> /usr/bin/env bash --version
GNU bash, version 4.1.2(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

The complete log of ./install.sh is too long to paste here, can I send it via email?

Anyhow, I manged to install gcc & Co. manually on this CentOS workstation (and in our small cluster that is also CentOS based):

/opt/gcc/bin/ 
├── 7.1.0 
│   ├── bin 
│   ├── include 
│   ├── lib 
│   ├── lib64 
│   ├── libexec 
│   ├── module.sh 
│   └── share 
└── 8.0.0 
   ├── bin 
   ├── include 
   ├── lib 
   ├── lib64 
   ├── libexec 
   ├── module.sh 
   └── share

/opt/mpi/bin/mpich/3.2.0/gnu/ 
├── 7.1.0 
│   ├── bin 
│   ├── include 
│   ├── lib 
│   ├── module.sh 
│   └── share 
└── 8.0.0 
   ├── bin 
   ├── include 
   ├── lib 
   ├── module.sh 
   └── share

FYI, I had not need to build an intermediate gcc for the 7.x and 8.x trunks: this CentOS provides gcc 4.x and it was enough to build them. Probably something is changed with respect 6.x trunks because I remember that I had more problem to build 6.x from 4.x than 7/8.x from 4.x. The only trick was to populate contrib prerequisites before configure/make (that was not necessary in my other workstation with a more decent linux distro...).

My best regards.

Izaak "Zaak" Beekman
@zbeekman
sure, email me the logs at zbeekman@gmail.com