Slashdot Mirror


NASA Runs Competition To Help Make Old Fortran Code Faster (bbc.com)

NASA is seeking help from coders to speed up the software it uses to design experimental aircraft. From a report on BBC: It is running a competition that will share $55,000 between the top two people who can make its FUN3D software run up to 10,000 times faster. The FUN3D code is used to model how air flows around simulated aircraft in a supercomputer. The software was developed in the 1980s and is written in an older computer programming language called Fortran. "This is the ultimate 'geek' dream assignment," said Doug Rohn, head of NASA's transformative aeronautics concepts program that makes heavy use of the FUN3D code. In a statement, Mr Rohn said the software is used on the agency's Pleiades supercomputer to test early designs of futuristic aircraft. The software suite tests them using computational fluid dynamics, which make heavy use of complicated mathematical formulae and data structures to see how well the designs work.

3 of 205 comments (clear)

  1. I had assumed Fortran was dead by Baron_Yam · · Score: 4, Interesting

    But a bit of googling shows that there's still more than enough justification to call it the best programming language for physics simulations.

    So... there will be Fortran programmers out there. I'd suspect, though, given that it's maintained a niche in high-end physics simulation, that anyone who would program in Fortran at the level required here currently has a job doing just that, and won't have time for a major side project with an unknown probability of paying off.

    1. Re:I had assumed Fortran was dead by nickol · · Score: 4, Interesting

      As an active Fortran programmer, I'd like to tell you that it is definitely NOT the best language for any task. It is old and also spoiled by multiple improvements. It has terrible syntax. It has entertaining semantics. And it has all these implementations also, which makes things even more interesting.
      However it is not probable that someone will be able to increase the speed of the program 10000 times. For example, I recently took a Fortran program for 16-bit DOS, running in emulator (DOSBOX), and recompiled it under 64-bit Linux. This yielded speed increase of about 20 times. My personal record in this area is 200 times, but this was PL-SQL.
      10000 times could be possible if they still use, for example, IBM PC for the program, and it will be rewritten for NVIDIA-CUDA or something parallel like this. But not for the same machine. Also the task description says that the requirement is 10-1000 times speedup.

  2. Re:algo, profile, assy by BostonPilot · · Score: 3, Interesting

    Um, towards the bottom of the article it mentions "10 times faster" which is probably achievable and probably what they actually are looking for. They even mention that rewriting an inner loop, shaving a few milliseconds off will give a substantial speed increase.

    Way back I worked at Alliant Computer Systems (https://en.wikipedia.org/wiki/Alliant_Computer_Systems) which was a hardware/software system that would automatically unroll loops in Fortran code and run them in parallel on up to 8 processors at a time (and each of the 8 also had vector hardware). It was very fast on the right Fortran code... Hardware support for concurrency control when one iteration of the loop depended on a computation from another iteration. All done in custom hardware which was killed (like many supercomputer companies) by the advent of high performance microprocessors.