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
Stefano Zaghi
@szaghi
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
Neil Carlson
@nncarlson
Is anyone here using sphinx/readthedocs for documentation? I'm looking for some Fortran-centric setup and usage pattern examples.
chriselrod
@chriselrod

For such an old language, Fortran really seems to suffer from lack of good resources and mature libraries to help in writing Fortran. Like, I had to wrap a few functions from the R-math libraries (written in C) to get performant probability quantile functions.

I found Fortran For Scientists and Engineers helpful. It's very basic (and has weird things like nested loops in a suboptimal order, but I guess even the lowest optimization levels in a compiler take care of that?), but that makes it a fast read and great for the target audience of scientists/engineers.

You can also google examples of modules. You can save all your code in files, each with a module, and then simple "use [module name]" for the other modules any depend upon. Keeps things organized and will automatically handle interfaces.
Izaak "Zaak" Beekman
@zbeekman
@boorishpea that sounds like a c question, not a Fortran one. But, with twos complement integer arithmetic signed and unsigned integers behave the same way in terms of many but level operations. (I.e. wrap around on overflow, etc.) It is primarily the interpretation of the bit patterns (having a sign bit or not) that distinguishes them. Both can represent the same total number of distinct integers for the same word length. If a signed integer can represent the range (-N, N] then an unsigned integer of the same length can represent [0, 2N). (These ranges likely have some off-by-one errors, I can’t be bothered to look at/workout the exact information.) Unfortunately Fortran has no out of the box support for unsigned integers. So you use unsigned integers when you don’t need negative integers and want to represent larger ones with the same number of bits.
Chris MacMackin
@cmacmackin
Hi all. I have released a new version of FORD with numerous bug fixes, efficiency improvements, and a few new features. Unfortunately some bug still remain, but as I won't be able to work on them for a while and a release was long overdue, I decided to just put out what I currently have.
Sadly, this is likely to be the last, or nearly the last FORD release from me. I have not had time to continue developing it at a reasonable pace over the past few years as I have become busy with other things. If anyone would be interested in taking FORD over as a project, please get in touch with me.
Stefano Zaghi
@szaghi
@cmacmackin Sorry for my long silence, but I am very very busy too... I am sad to read this about FORD, I'll try to follow it as much as possible
@/all I need help: can you link me to some courses/tutorials/guides about a very, very basic Fortran programming material?
Izaak "Zaak" Beekman
@zbeekman
@szaghi oh boy, sounds like you have your work cut out for you. https://www.youtube.com/watch?v=gSJhfnhs598 seems like a decent start... This one is good, but TERRIBLE audio quality: https://www.youtube.com/watch?v=T8xjodqdsIE