5 ms·
The Fortran Standards Committee is attempting to make HPC easier through the use of coarrays, which are essentially massive abstractions over MPI. I really wis
by shepardrtc 12y ago
The Fortran Standards Committee is attempting to make HPC easier through the use of coarrays, which are essentially massive abstractions over MPI.
I really wish people would give Fortran a second chance. It has come a long way from the ancient, all-caps days.
- na85 12y agoI spent a few months learning (modern) Fortran a year or two ago. My chief obstacle was the difficulty involved in finding modern tutorials. I don't want to have to read tutorials written in 1994 whose focus is getting people used to F77 up to speed. I've yet to find a tutorial that approached teaching F08 as if it was a new language, which is what I feel is needed. Even in F08 there's a lot of backwards-compatibility cruft still left in the language, too. The IO model still provides very little abstraction and is based on tape drives. You can/have to "rewind" files. There are obscure "unit descriptors" that manifest themselves as integer literals in most code posted online which makes it a chore to learn from. As far as I can tell there is no functionality that approximates the behaviour of C++'s streams. It's fast as hell, and the GNU compiler is mature and well-developed, but Fortran remains a horrid language for doing any sort of interactive programming. It's best used if you just give it some arguments, let it run free, and then have it return some object or value that a more sane language can then interpret and present to the user for a decision. There is little reason to learn a language where the only sane choice for doing input/output involves calling your Fortran module from a python script and letting the python handle i/o.
- duskwuff 12y ago> You can/have to "rewind" files. This isn't necessarily a Fortran-specific thing. The standard C library includes a rewind(fd) function, equivalent to lseek(fd, 0, SEEK_SET).
- semi-extrinsic 12y agoI also think we need someone to put some real effort into making gdb usable for Fortran dynamic/automatic arrays. That's a real PITA currently.
- markhahn 12y ago"horrid for interactive" is ironic, since interactive and HPC are pretty much disjoint. (well, viz...) From an HPC perspective, Fortran IO should be performed by HDF5...
- jabl 12y ago> There are obscure "unit descriptors" that manifest themselves as integer literals in most code posted online which makes it a chore to learn from. Well, you can think of a "unit descriptor" (or somewhat more Fortranny, "file unit number") as something roughly equivalent to a POSIX file descriptor, which is also an integer. The problem, as you allude to, is that classically unit numbers were assigned by the programmer rather than the OS or runtime library, so you could end up with clashes e.g. if you used two libraries which both wanted to do I/O on, say, unit=10. Modern Fortran has a solution to this, though, in the NEWUNIT= specifier, where the runtime library assigns a unique unit number. > As far as I can tell there is no functionality that approximates the behaviour of C++'s streams. As of Fortran 2003, there is ACCESS="stream", which is a record-less file similar to what common operating systems and programming languages nowadays provide. > It's fast as hell, and the GNU compiler is mature and well-developed, but Fortran remains a horrid language for doing any sort of interactive programming. Personally, I'm hoping for Julia to succeed, but we'll see..
- tormeh 12y agoI LIKE PROGRAMMING IN ALL-CAPS. IT MAKES EVERYTHING I WRITE LOOK OFFICIAL, NO-NONSENSE AND GENERALLY HARD-CORE. INSTEAD OF HAVING A CONVERSATION WITH THE COMPILER I INSTEAD SHOUT!!! COMMANDS AT IT.
- FraaJad 12y agoOh so clever to make fun of FORTRAN. This is how the modern FORTRAN Hello world looks like... program hello print *, "Hello World!" end program hello
- tormeh 12y agoI was actually partly serious. I voluntarily program in all-caps fortran because I think it makes my code look old/funny/the things I said.
- sampo 12y agoFortran has not been all caps after 1991, when the Fortran 90 standard came out. You knowledge is 24 years old.
- tormeh 12y agoYeah, I know. It's just that I like programming in an old-school way for fun. I briefly considered not using structured programming at all, but that's kinda too much.
- ljdursi 12y agoI think coarrays have a lot of promise; it's less ambitious than the single unified picture of a program that Chapel or UPC has, but maybe that's a feature, not a bug, for incrementally changing how we do things. One problem has been that implementations of coarrays depended on MPI-2 features which were brittle and not super optimized (because they weren't widely used); but with MPI-3s RMA, or gasnet (which I think gfortran is starting to use?) it could start being more practical for production use.
- gaius 12y agoAs the old saying goes, a good developer can write FORTRAN in any language.
- m_mueller 12y agoWriting, sure. Getting it to run as fast -> replace any language with C and add some boilerplate.
- VLM 12y agoMaybe after that, the cool kids would "permit" us to try Perl again, if they declare it cool again. Modern Perl is pretty nice. 90s Perl still not so good.