Fortran Goes Interactive

When you think of Fortran you probably think of punched cards and green bar paper. While it is true that Fortran isn’t the go-to language it used to be — pun unintentional — it still has a vibrant community of people who do serious number crunching. However, many members of that community have been seduced away by interactive tools that are also good at number crunching like MATLAB, Julian, and Python with special libraries. The LFortran project aims to create a Fortran environment with interactivity like Python, but retaining the speed that Fortran is known for.

The resulting tool is impressive. You can use it from Jupyter, can parse code targeting existing Fortran compilers, and supports Linux, Mac, and Windows. There is development to make the code fully interoperable with other languages like C or Python as well as take advantage of GPUs and other specialized hardware. They are also zeroing in on full Fortran 2018 support.

Continue reading “Fortran Goes Interactive”

Beatrice Tinsley and the Evolution of Galaxies

It seems almost absurd now, but cosmologists once assumed that galaxies of a given type were all the same and didn’t change. Because of this assumption, galaxies were used as a redshift or light-based yardstick to measure distances in the universe. But what if some galaxies were intrinsically redder than others? Little to no thought was given to their origins, compositions, or evolution until Beatrice Tinsley came along.

Beatrice saw galaxies as changing bodies of stars. She believed that they grew, evolved, and died because they’re made of stars, and that’s what their star populations did. To lump all galaxies together and use them as a standard candle was an oversimplification. Beatrice created the first computer model of a galaxy to prove her point and in doing so, she founded the field of galaxy evolution.

If you’ve never heard of Beatrice, don’t feel bad. Just as her career was really beginning to take off, she developed cancer and died shortly after her 40th birthday. Though her life was short, her influence on cosmology is long-reaching. Continue reading “Beatrice Tinsley and the Evolution of Galaxies”

FORTRAN for the Web

There’s an old saying: “I don’t know what programming language scientists and engineers will use in the 22nd century, but I know it will be called FORTRAN.” FORTRAN was among the first real programming languages and, along with LISP, one of the oldest still in common use. If you are one of those that still loves FORTRAN, you no longer have to be left out of the Web development craze thanks to Fortran.io.

Naturally, the Fortran.io site is served by — what else — FORTRAN. The system allows for Jade templates, SQLite databases, and other features aimed at serving up web pages. The code is hosted on GitHub, and you can find several examples there, as well.

If you’ve ever wanted to do formatted I/O to a web page, here’s your chance. Come to think of it, why not? We’ve seen servers in BASIC and even in Linux shell script. Of course, today’s FORTRAN isn’t the one we learned back in the 1970’s (we assume if you didn’t learn about FORTRAN in the 1970’s, you quit reading this post a while back… prove us wrong and show us your FORTRAN projects).

DOE Announces a High Performance Computing Fortran Compiler Agreement

The U.S. Department of Energy’s National Nuclear Security Administration (NNSA) and its three national labs this week announced they have reached an agreement for an open-source Fortran front-end for Higher Performance Computing (HPC). The agreement is with IBM? Microsoft? Google? Nope, the agreement is with NVIDIA, a company known for making graphics cards for gamers.

The heart of a graphics card is the graphics processor unit (GPU) which is an extremely powerful computing engine. It’s actually got more raw horsepower than the computer CPU, although not as much as many claim. A number of years ago NVIDIA branched into providing compiler toolsets for their GPUs. The obvious goal is to drive sales. NVIDIA will use as a starting point their existing Fortran compiler and integrate it with the existing LLVM compiler infrastructure. That Fortran, it just keeps chugging along.

You can try out GPU programming on your Raspberry Pi. Yup! Even it has one, a Broadcom. Just follow the directions from Raspberry Pi Playground. You’re going to get your hands dirty with assembly language so this is not for the faint hearted. One of the big challenges with GPUs is exchanging data with them which gets into DMA processing. You could also take a look at [Pete Warden’s] work on using the Pi’s GPU.

Still wondering about the performance of CPU vs GPU? Here’s Adam Savage taking a look…

Continue reading “DOE Announces a High Performance Computing Fortran Compiler Agreement”

Who Said FORTRAN is Dead?

NASA has an urgent need for a FORTRAN developer to support the Voyager spacecraft. Popular Mechanics interviewed Voyager program manager [Suzanne Dodd] who is looking to fill [Larry Zottarell’s] shoes when he retires.

We had a lot of people comment on my recent Hackaday article, “This Is Not Your Father’s FORTRAN”, who studied the language at some point. Maybe one of you would like to apply? You need to do so soon! NASA is hoping to give the new hire six to twelve months with [Zottarell] for on-the-job training. You’ll need to brush up on your vintage assembly language too.

light data system hwThe two Voyagers were some of the first NASA spacecraft to use computers. The resources are limited in the three 40 year-old computers found on each probe. They handle the spacecraft’s science and flight software. The software is a little more recent having been updated only 25 years ago in 1990.

A big problem is a lot of the engineering design materials are no longer in existence. People’s memories of the events and reasons for decisions made that long ago are bit hazy. But NASA does have an emergency list of those former engineers when questions arise. That means this could be more than just a job where you program for ancient hardware, you could find a lot of reasons to interact with the people who pioneered this field!

This will be an awesome hack. Anyone up to doing remote computing at a distance of 12 billion miles?

A video on the history of the two voyagers is found after the break.

Continue reading “Who Said FORTRAN is Dead?”

This Is Not Your Father’s FORTRAN

I learned to program FORTRAN IV in the spring of 1968 while working as an engineering technician in water resources. One of the engineers knew of my interest in computers and asked if I would like to learn FORTRAN. He needed to calculate the biological oxygen demand in streams but didn’t have any interest in programming. I jumped at the chance.

415I2ZfVyqL._SX258_BO1,204,203,200_This was the days of big iron when the term computer meant a room full of heavily air-conditioned equipment. The State University of New York at Buffalo had an IBM 704 but they soon upgraded to a CDC 6400. To help pay for it they were inviting people to attend a seminar on FORTRAN so they could use the system. My job was with a small State of NY office and getting approval for me to attend was surprisingly easy.

Off I went for 6 weeks of training on one night a week. I still have my black “A Guide to Fortran IV Programming” by [Daniel McCracken]. For years, this was the FORTRAN bible, commonly referred to as just “McCracken”.

The programming went well and somewhere out there is a very old paper with a reference to the results it generated about the Chadakoin River flowing through Jamestown, NY.

This is FORTRAN’s strength – scientific calculations. It’s name says it: FORmula TRANslation.

Origins and FORTRAN IV

[John W. Backus] suggested to IBM a language to replace assembly language. Development began in 1953 for the IBM 704 and the project reached fruition in 1957. Not only was it the first general purpose high-level language, just beating out COBOL and LISP, but its compiler optimized the code since it needed to compete head-on with assembly language. It was the C compiler of its day in that regard.

That was not the only reason it attained success. Reducing the number of punched cards needed for a program by a factor of 20 over assembly helped considerably.

In those days, you needed to use a key punch to create a deck of punch cards. To be really good you had to know how to create a programming card that would let you skip through the fields on a FORTRAN card, or how to edit a card by duplicating it and holding one of the cards in place while you typed in new characters. Because of my fascination with computers I’d taken a key punching and automation machines class in high school so I was all set.

Continue reading “This Is Not Your Father’s FORTRAN”