January 12, 2007 1:42 PM PST
Sun's Fortran replacement goes open-source
On Tuesday, the company quietly released as open-source software a prototype Fortress "interpreter," a programming tool to execute Fortress programs line by line. "We're trying to engage academics and other third parties," Eric Allen, a Sun Labs computer scientist and Fortress project leader, said about the open-source move.
Fortress is designed to be a modern replacement for Fortran, a programming language born 50 years ago at IBM but still very popular for high-performance computing tasks such as forecasting the weather.
Even though Fortress grew out of a Defense Department-funded supercomputing project, it tackles a mainstream computing challenge, too: more easily extracting work from all those new processing engines appearing in multicore processors.
"We certainly have a lot of visibility in the high-performance computing market right now. We think as multicore becomes more important for ordinary desktop systems that programmers are going to have to turn to a language like Fortress in order to take advantage of the performance their hardware is providing to them," Allen said.
Mainstream x86 chips from Intel and Advanced Micro Devices today have two or four processing cores, while Sun Niagara chips have eight cores and will move to sixteen soon. But it's hard to break down software into independent chunks that run in parallel across all those cores or across multiple processors.
"For some types of workloads, the computer industry has done a pretty good job. Google is a parallel programming problem," Illuminata analyst Gordon Haff said. "Some workloads scale very well. A lot do not, however. Extracting parallelism from those workloads is a very long-standing computer science problem. Progress has been made, but it's a long way from being solved."
Sun hopes that Fortress will help with that problem.
"Fortress isn't pixie dust. But it does allow us to write programs in a way that really work better on multicore in general," Allen said.
For example, Fortress programmers must explicitly declare when software shouldn't run in parallel, a reversal of the prevailing default. When a Fortress program performs a "for" loop--a repeated task such as examining every pixel in a photograph or finding how many people in a list are above age 21--Fortress automatically breaks the job into pieces and farms each piece out to different cores, processors or servers, Allen said.
Fortress also tries to store data intelligently so it will be conveniently near the processor that needs it, Allen said. That should help with large compute clusters that gang together independent servers on a high-speed network, Sun argues.
Sun, by virtue of its successful Java language, has a notable track record introducing new programming languages. But that doesn't guarantee success.
"What is hard--very hard, in fact--is attracting a substantial portion of developers to that language," said RedMonk analyst Stephen O'Grady.