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.

8 of 205 comments (clear)

  1. Re:What's the replacement for FORTRAN? by Baron_Yam · · Score: 4, Informative

    C++, but Fortran's pretty much the same for all but a few cases... where it's markedly better. Apparently it's also easier to learn and has a few other practical advantages.

    So the answer is that there ISN'T a replacement yet. Fortran is the programming language of choice for large physics simulations at present.

  2. my dream by phantomfive · · Score: 5, Informative

    "This is the ultimate 'geek' dream assignment,"

    Actually it sounds like what I call "work."

    --
    "First they came for the slanderers and i said nothing."
  3. Re:What's the replacement for FORTRAN? by polgair · · Score: 4, Informative

    Pleiades is just a slurm cluster. You can deploy new hardware, push your processes to be queued to the new hardware and link your run time to use cuda enabled libraries no problem.

    Switching link time and link time hooks is pretty easy on Pleiades. It's the same way you would switch between python versions, different fortran run times (intel and gnu), different mpi runtimes (openmpi/sgi enabled stuff).

    Source: worked on Advanced Vehicle Make and had to run cfd code on Pleiades.

  4. Re:Ultimate 'geek' dream assignment? by HornWumpus · · Score: 3, Informative

    You don't know how tax brackets work. At least in the USA.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  5. Re:What's the replacement for FORTRAN? by ShanghaiBill · · Score: 5, Informative

    They want a 10000 times speed up.

    To be fair, NASA did not say that. They said a 10 times speed up. They also said they are hoping that maybe it could be sped up even more, perhaps even by a factor of a thousand. So the journalist took the "10" and the "thousand" and multiplied them together. Then that inflated made-up number was copy-pasted into the summary.

  6. Re:FORTRAN jokes miss the point(er) by ShanghaiBill · · Score: 3, Informative

    Old FORTRAN's default statically allocated arrays are one less indirection to access.

    Also, FORTRAN does not allow pointer aliasing, so memory accesses can be cached in registers. That is a barrier to optimization in C/C++. C has the "restrict" keyword which helps, but it is rarely used and is not supported by old compilers.

  7. Re:What's the replacement for FORTRAN? by T.E.D. · · Score: 3, Informative

    Where I work (we have tons of legacy Fortran code), generally C++. However, the real answer is not to bother. If you have a working Fortran compiler, the old code works just fine. "Porting" it to another language does nothing for you but potentially introduce new bugs. At best you'd just have the same functionality you did before (as that is the goal of a port), but we all know the best never happens. Why go through a really expensive effort that will do nothing for you but make your product worse?

    However, we do all brand new work in C++, so it will slowly take over.

    I suspect most COBOL houses will tell you the same vs C# (or Java or whatever your current language du-jour is).

    What would you tell a mechanic who wants $400 to change your perfectly functional alternator with a new one that works exactly the same, but uses the latest in alternator technology, so mechanics will enjoy working on it more? I know I'd tell him if the old one breaks and can't be fixed, put a new one in. Otherwise, I have better uses for my $400, tyvm.

  8. Re:Ultimate 'geek' dream assignment? by HornWumpus · · Score: 3, Informative

    When you cross into a new bracket, you don't pay that rate on all your income. Only the income above the cutoff.

    Some payroll programs are _stupid_, it is possible to get a raise and see a smaller check. But at the end of the year, you get a bigger refund, all other things being equal.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'