Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Nov 14 20:49
    letmaik opened #39
  • Oct 25 09:35

    szaghi on master

    update submodules update travis config (compare)

  • Oct 25 09:30

    szaghi on master

    update submodules (compare)

  • Oct 25 09:19

    szaghi on master

    update submodules update travis config (compare)

  • Oct 21 06:34
    rakowsk commented #7
  • Oct 20 16:09
    unfurl-links[bot] commented #7
  • Oct 20 16:09
    rakowsk commented #7
  • Oct 12 17:49
    ShatrovOA commented #38
  • Oct 11 15:25
    szaghi labeled #38
  • Oct 11 15:25
    szaghi assigned #38
  • Oct 11 15:25
    szaghi commented #38
  • Oct 11 13:52
    ShatrovOA edited #38
  • Oct 11 13:44
    ShatrovOA opened #38
  • Sep 19 11:19
    szaghi commented #7
  • Sep 19 11:08

    szaghi on master

    Fix parsing bug issue#7 The me… update travis config Merge branch 'release/0.1.0' (compare)

  • Sep 19 11:06

    szaghi on fix-parsing-bug-issue#7

    (compare)

  • Sep 19 07:54

    szaghi on fix-parsing-bug-issue#7

    (compare)

  • Sep 19 07:52
    szaghi commented #7
  • Sep 19 07:51
    szaghi labeled #7
  • Sep 19 07:51
    szaghi assigned #7
Izaak "Zaak" Beekman
@zbeekman

Hi @/all, Just wanted to let you know that you can now try OpenCoarrays in the cloud via Binder. It is implemented as a kernel for Jupyter over at https://github.com/sourceryinstitute/jupyter-CAF-kernel. You can launch the binder (which also has python, Julia, and R kernels installed) using this button: Binder.

Navigate to the index.ipynb file to run a demo. Or create a new notebook using the Coarray Fortran kernel and run your own experimental code, after seeing a few tutorial details in the index.ipynb file. If you just want to skip straight to that file use this link: https://bit.ly/TryCoarrays. To get to the full on binder instance, same as the button, go to https://bit.ly/CAF-Binder

Jacob Williams
@jacobwilliams
That is amazing! Great work!
Stefano Zaghi
@szaghi
Wonderful! Great Work!
Izaak "Zaak" Beekman
@zbeekman
Also, I just want to add I installed a kernel multiplexing kernel: allthekernels. If you use that as the main notebook kernel, then you specify the kernel for each cell using >kernel-name at the top of the cell. So you could create a notebook with python, fortran, julia, r etc. cells. Perhaps this could be useful for computing some data in one language (Fortran) and then plotting it and/or post processing it in another language (python or R)
Stefano Zaghi
@szaghi

@jeffhammond

Dear Jeff,
I read this comment . It is very interesting for me, I would like to add some Autotools capabilities in FoBiS. I know about your long experience in the field whereas my knowledge of Autotools is near zero. Can you point me to some good references about the right way to identify compilers and their features? For example, I am now trying to implement in FoBiS a simple feature that should check is a compiler support the iso_10646 character kind; my idea is to that FoBiS create on the fly a simple test, invoke selected_char_kind print the result and capture it in order to understand if the compiler support it. Is this the right way (similar to the autotools one)?

Thank you in advance.

My best regards.

Jeff Hammond
@jeffhammond
@szaghi I favor the autotools style of attempting to compile code and making decisions based upon that. Autotools is often too fine-grain for most applications. if an app requires features A B C D, then write a simple source that uses all of them. if that sources compiles, use the compiler. if not, throw and error. while i use autotools for a lot of system software, in most cases, i would be fine to just test if the compiler supports C99 and POSIX, because that is what i need.
a lot of what buildsystems do is punish developers for supporting terrible platforms. i mean, if your computer doesn't have a C99 compiler, maybe you should just throw it in the trash, no? Microsoft refuses to support modern C in MSVC, and their users should revolt rather than work around this nonsense. Intel and Clang support C99 on Windows. anyways, i have strong feelings about crappy programming environments. they are a waste of everyone's time and should be ignored. i recently tried out Flang based on PGI. it's 2017 and they don't support basic features of Fortran 2008. no one who cares about modern Fortran should support this compiler.
Jeff Hammond
@jeffhammond
of course, i am biased because i work for Intel and Intel compilers are pretty good about the latest standards (and where they are not, i have filed bug reports and communicated directly with the team about the necessity of fixing the issues ASAP), and x86 has great support for GCC and Clang, but when i was supporting IBM Blue Gene and the IBM C++ compiler sucked, i advocated vigorously for Clang. https://www.ibm.com/developerworks/community/blogs/fe313521-2e95-46f2-817d-44a4f27eba32/entry/ibm_xl_compilers_for_little_endian_coming?lang=en may or may not be related ;-)
Stefano Zaghi
@szaghi
@jeffhammond Dear Jeff, thank you for your insight, I am going along your suggested approach: minimal tests (to be compiled/ran/checked on the fly) to verify if compiler support that feature. I agree with your other ideas, but I am less sharp: flang is currently inadequate for my modern Fortran approach, but I would like to support them if they are aimed to improve the compiler into a FOSS framework :smile:
My best regards
Jeff Hammond
@jeffhammond
@szaghi Indeed, I am a huge fan of LLVM and have long wished for a quality Fortran front-end for it. I have mixed feelings about PGI's front-end being the basis for that, but it's certainly better than what we had before. This community can help them understand the need for Fortran 2008+ support. Hopefully folks will also encourage them to support OpenMP 4.5 as well.
Stefano Zaghi
@szaghi
@jeffhammond :+1:
Stefano Zaghi
@szaghi

Dear @/all

I have just realized that it is possible to use gfortran 7.1.0 on Travis CI by simply selecting dist: trusty as your container (it will use the container based on ubuntu 14.xy rather than 12.xy).

My best regards.

P.S. the following is extracted from one of my .travis.yml configuration files

language: generic

sudo: false
dist: trusty

cache:
  apt: true
  pip: true
  directories:
    - $HOME/.cache/pip
    - $HOME/.local

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gfortran-7
      - binutils 
...
install:
  - |
    if [[ ! -d "$HOME/.local/bin" ]]; then
      mkdir "$HOME/.local/bin"
    fi
  - export PATH="$HOME/.local/bin:$PATH"
  - export FC=/usr/bin/gfortran-7
  - ln -fs /usr/bin/gfortran-7 "$HOME/.local/bin/gfortran" && gfortran --version
  - ls -l /usr/bin/gfortran-7
  - ln -fs /usr/bin/gcov-7 "$HOME/.local/bin/gcov" && gcov --version
...
victorsndvg
@victorsndvg
:+1: Thanks @szaghi
Jacob Williams
@jacobwilliams
@/all If anyone is interested, I just set up a git repo here as a potential place to collaborate on writing feature proposals to submit to WG5 for the next Fortran standard. I think it's very clear from this thread that Usenet is not the future of language design discussions. :) Perhaps getting something started at the grass roots level using modern tools is the way to get the Fortran user community engaged in the process.
Stefano Zaghi
@szaghi
@jacobwilliams You are my hero! I am off due to very important public contest for a stable position, but soon I'll come back. Great initiative!
Rand Huso
@rchuso
Good Morning everyone. First time here, and it's because I have a Fortran+Polymorphism+MPI question. I'm getting unexpected results transferring an object over MPI. The object I'm sending EXTENDS an ABSTRACT object, and I'm using a CLASS pointer to the base object in the MPI_Send and Receive. Data from the base object is transferred, but not from the extended object, unless I'm using gfortran-7 and OpenMPI 2.1.1 built with gfortran-7 and gcc-7 - where data from the extended object is transferred, but not the data in the base class (which I find very strange). I've tried this using the Intel MPI (Version 2017 Update 1 Build 20161016 (id: 16418)) with ifort version 17.0.1 20161005 and gfortran-7 with a couple builds of OpenMPI. Any takers? I've got a 136 line Fortran program to demonstrate the problem. I'd like to know if I'm doing something wrong, or if I'm just expecting too much from the compiler and library implementers?
Stefano Zaghi
@szaghi
Dear Rand
Stefano Zaghi
@szaghi
Welcome here. Others will give you more insight, but from my experience your living dangerously ... This sounds a very cutting-edge MPI application. In my MPI code I usually send/receive base types, I am not so confident with current implementations. Recently I switched to CAF and with coarrays it seems more safe and natural communicate OO data. Anyhow, please share your test, I'll read it with interest. My best regards.
Rand Huso
@rchuso
Hello Stefano. "living dangerously" - I like that. With my C work processing seismic survey data (sizes up to PB, and running on the largest privately owned supercomputers in the world - like Total.com), I'm currently the fastest in the industry (if I understand what our customers are saying - my applications are 3 to 5 times faster than those of CGG and others - see the GLOBE Claritas web site for some details - part of GNS Science). I'm able to do this because of how I can abstract some of the complexity of MPI for the applications I wrote (like 3D Kirchhoff time migration - seismic tomography), and I'm trying to do the same thing with Fortran. I just want to be able to send and receive objects that have a base class. What really surprises me is the different behaviour I'm seeing with MPICH and OpenMPI using the gfortran 7.1.0 vs earlier versions. I'm in the process of changing my test routine to help me track down the progress, and will include it here when ready. Thanks.
Rand Huso
@rchuso

I got it working.

Well, it turns out the code is too large to enter here. It's at 144 lines, and successfully runs on OpenMPI 2.1 with gfortran 7.1. Is there a way to include it here for others to see?

Stefano Zaghi
@szaghi
@rchuso Hi Rand, you can create a public repo on github for free, or you can create a gist that is more suited for a simple example. Alternatively, you can send me the example and I'll create a gist/githubrepo for you. I also like to be as much as abstract as possible, but MPI implementations are often not up-to-date with Fortran OOP. Currently, I have find a serious regression with GCC 7.1 that obligates me to revert back to GCC 6.3 (the regression is not related to MPI, but it could affect also MPI implementations built with GCC 7.1). My best regards.
Izaak "Zaak" Beekman
@zbeekman
@rchuso I'd love to see what you came up with in a gist. Also, I'm curious if Coarray Fortran can suite your needs or if you are relying and certain low level MPI calls. Coarray Fortran can let you leverage one sided comms without the hassle and complexity of all the low level MPI calls. Intel has a decent (at least F2008 compliant) implementation, and GFortran w/ OpenCoarrays supports some Fortran 2015 features like events in addition to all (I think*) F2008 features.
@jeffhammond can weigh in with more details RE: ifort support for Coarrays. @rouson has a better handle on exactly which set of features are currently supported by GFortran + OpenCoarrays.
Jeff Hammond
@jeffhammond
Intel Fortran supports Fortran 2008, including coarrays. It does not support Fortran 2015 coarray features. What I know about coarrays in Intel Fortran is based upon the coarray programs in https://github.com/ParRes/Kernels/tree/master/FORTRAN. I have worked with the Intel Fortran team to improve performance in coarray programs by improving their use of MPI-3 RMA, which is the best available portable conduit for coarrays.
Rand Huso
@rchuso
@zbeekman I'm trying to get my entire mpi abstraction layer working in Fortran and C++. I've done this in Python and in C some years ago, and before the NeSI conference next year I should have all four languages implemented for my presentation. Wanted it for this year, but didn't make it. Coarray doesn't meet my needs at all - entirely the wrong direction. If I have the time this weekend I'll post my test code somewhere and give the URI here.
Izaak "Zaak" Beekman
@zbeekman
@rchuso fair, tough to use portably with other languages
@jeffhammond yes, OpenCoarrays uses MPI-3 RMA, too
Izaak "Zaak" Beekman
@zbeekman
@/all I am excited to announce the release of OpenCoarrays 1.9.1 which includes many important bug fixes.

Github Releases (by Asset) Build Status license Twitter URL

Bug fixes

  • sourceryinstitute/OpenCoarrays#325 install.sh will help user download and install Xcode command line tools (CLT) on Mac OS which is needed to compile code on Macs if it is missing or excessively outdated
  • sourceryinstitute/OpenCoarrays#378 mpirun changed to mpiexec and mpif90 changed to mpifort, consistent with MPI standard recommendations
  • sourceryinstitute/OpenCoarrays#398 fix some erroneous internal library calls when exceptions are encountered
  • sourceryinstitute/OpenCoarrays#399 fix allocation of allocatable components of coarray derived types
  • sourceryinstitute/OpenCoarrays#402 increase portability of install script install.sh by removing dependency on tree command
  • sourceryinstitute/OpenCoarrays#404 fix issue where install.sh was ignoring user specified -m/--with-cmake CMake location
  • sourceryinstitute/OpenCoarrays#406 use secure https/encrypted sources for fetching and installing prerequisites to help mitigate the possibility of a man-in-the-middle (MITM) attack
  • sourceryinstitute/OpenCoarrays#408 switch to downloading the gzipped GCC archive rather than the bz2 because gzip is more common/portable and because bz2 compressed GCC archives seem to have disappeared for some recent releases on GCC mirrors
  • sourceryinstitute/OpenCoarrays#411 fix bug causing event_post to hang when going over the network (multiple nodes)
  • sourceryinstitute/OpenCoarrays#422 clarify runtime error messages for partially or un-implemented
  • Corrected logic to control under which circumstances certain tests are run that may only work correctly under GFortran 6 or GFortran 7

Enhancements

  • sourceryinstitute/OpenCoarrays#410 add option --disable-bootstrap to install.sh to help speed builds of GCC when bootstrapping is not required because a recent GCC is performing the build
  • sourceryinstitute/OpenCoarrays#424 add option to install.sh to download the requested package from a user specified URL
  • Prevent developer's advanced Makefiles and GASNet directory from being distributed with release tarballs

Installation

Please see the installation instructions for more details on how to build and install this version of OpenCoarrays


GitHub forks GitHub stars GitHub watchers Twitter URL

Rand Huso
@rchuso
@zbeekman I've put the code sample I wrote for this test (after significant code-cleanup) on gudua.com/polymorphicFortran/polymorphicFortran.html Let me know what you think. Slight changes are required for other MPI implementations.
Izaak "Zaak" Beekman
@zbeekman
@/all Anyone have any recommendations for a "good" (long periods, passes PRNG tests for quality...) PRNG? Bonus points if it's written in Fortran. I'm currently looking at ISAAC, SFMT and xorshiro128+
@/all I'm also looking for a good multiple precision library with similar functionality to GMP including rational arithmetic. Closest I've found in Fortran is http://myweb.lmu.edu/dmsmith/fmlib.html and those listed at http://crd-legacy.lbl.gov/~dhbailey/mpdist/
Stefano Zaghi
@szaghi
@zbeekman I am sorry for the delay, I am really busy. Unfortunately, I have nothing to suggest, my bad. Have you find something yourself?
Izaak "Zaak" Beekman
@zbeekman
For now I am using ISAAC and GMP to match a previous publication. I think XORSHIRO is probably better and for future work I'm still deciding what to do for MP
Stefano Zaghi
@szaghi
Dear /all , have you any Fortran (or Fortran friendly) library for Immersed Boundary simulations to suggest? Toolkits, libraries or the like are much more than welcome. @zbeekman @milancurcic maybe you have done such a simulations? I have to peform a simulation on a very complex geometry where the viscous terms can be neglected, thus I would like to avoid to create a time-consuming Chimera grid this time, IB methods seem to be very suited for this project...
Izaak "Zaak" Beekman
@zbeekman
@/all If you have an opportunity to star, watch and fork the wonderful parallel linear algebra library, PSBLAS and the MultiLevel Domain Decomposition Parallel Preconditioners Package based on PSBLAS (MLD2P4) it would be greatly appreciated. They are pre-requisites for a project I am involved with and I'm trying to get them into Homebrew/Linuxbrew. Both are execellent and very efficient. They are also Fortran based with Modern practices.
@szaghi no good Fortran solutions I know of. https://github.com/cwrowley/ibpm cwrowley was a professor of mine at Princeton though, and is quite a sharp guy. IBAMR is another non-Fortran solution that should be quite good. The only Fortran IB method I know is https://github.com/atchieu/IBFS-IF2D but I have no idea what its quality is.
Stefano Zaghi
@szaghi
@zbeekman Thank you for the insight. By the way, I had already starred PSBLAS, but I was not aware of the Preconditioner library, it is very interesting! Thank you!
Izaak "Zaak" Beekman
@zbeekman
@/all If anyone is going to be at the upcoming SC17 or APS-DFD conferences in Denver CO, please let me know. It would be great to meet up with some of you!
Stefano Zaghi
@szaghi
@zbeekman I do not :cry:
victorsndvg
@victorsndvg
@zbeekman , I will be at SC17 . Let me know the free slots in your agenda and I will try to meet you. I think there is a BoF about Fortran
Rand Huso
@rchuso
I wish I could go to the SC - haven't been to a similar conference since '86. It's too expensive for my New Zealand $. But if anyone is interested, I've put my Fortran MPI + IoC abstraction layer with example program on my web site: http://mjollnir.com/mpiioc/mpiiocFor.html There's a C version and the Python versions there as well. Working on the C++ version now. I'll be giving a talk on this later in 2018 here in NZ at the NeSI conference (no travel budget required.)
Izaak "Zaak" Beekman
@zbeekman
@victorsndvg I will definitely try to make it to the BoF on Fortran
victorsndvg
@victorsndvg
@zbeekman , I saw your photo :smile: . Hope to see you there!
Izaak "Zaak" Beekman
@zbeekman
lol, which photo? twitter probably. I have no idea what you look like. Shoot me an email zbeekman@gmail.com
Stefano Zaghi
@szaghi
@zbeekman Your face is everywhere :smile:
Jacob Williams
@jacobwilliams
@/all FYI I’ll be at AIAA SciTech this week in Kissimmee, FL. Presenting a paper on modern Fortran for spacecraft trajectory optimization. So if any of you are there, stop by and say hello!
Bob Apthorpe
@apthorpe
I got bored this week and took a stab at building a legacy Fortran compatibility library to help people refactor away missing and problematic libraries. Explanation: http://www.acorvid.com/2018/01/20/introducing-the-acorvid-legacy-fortran-compatibility-library/ Project: https://bitbucket.org/apthorpe/alfc It needs a lot of work but it's a start; I'd appreciate feedback & suggestions if anyone wants to take a quick look at it.
boorishpea
@boorishpea
Hi, can anybody tell me why one would declare an unsigned int long