|
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.
Sun Microsystems took a new open-source step this week, enlisting
the outside world's help in an attempt to create a brand-new
programming language called Fortress.
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.
Popularity contest
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.
Tapping into the open-source software movement, in which anyone can
see and modify the underlying code for software, is a natural way to
try to ensnare new programmers--in particular, programmers in
high-performance computing where open-source software is popular, a
do-it-yourself ethos is encouraged and people are willing to experiment
with new technology to extract the most work from their hardware.
New languages that have shown some successes in recent years--PHP,
Python, Perl and Mono, for example--have open-source underpinnings. And
after years of resisting, Sun is making Java open-source software.
It's too strong to say Fortress would be doomed if it weren't
open-source, "but its future would be extremely niche," O'Grady said.
Sun released the Fortress interpreter under the permissive
open-source BSD license. The company is keeping control over the
official version, though, so for now at least outside programmers will
need to give Sun control over their contributions, Allen said.
It's also important to have a community interested in a new language
to get it to catch on, O'Grady said. For Sun, that community is
high-performance computing.
For example, programmers can use ordinary mathematical expressions
rather than having to translate formulas into the typically very
different syntax of computer languages. "It provides more productivity
because it allows the scientific programmer to stay closer to his own
problem domain instead of learning some computer science language,"
Allen said.
Still a prototype
Fortress is good for other tasks, too,
Allen believes. For example, it's perfectly appropriate for somebody
writing business software for customer-relationship management, he
said.
But not just yet.
Sun released an alpha version of the Fortress language
specification in September, but it's not final, Allen said. And the
interpreter is in its early stages. The interpreter can handle some
Fortress features--for example, "work stealing" in which one hardware
element that's finished up its task can pick up chores from another
that's still busy--but it still only runs a subset of the Fortress
language.
The interpreter runs on a Java foundation, but shouldn't be confused
with Java itself. Java lets the same program run on a multitude of
computers, so it means the Fortress project can be developed more
widely.
Ultimately, Sun wants to build not just an interpreter, which executes
Fortress software line by line, but also a compiler, which translates
the software in advance into a form a computer can understand from the
code a person wrote. Compiled software is generally faster than
interpreted software. In addition, Sun envisions an optimizing
compiler, a technology that adjusts the compiled version of software as
it runs to improve performance.
Sun has started with a clean slate with Fortress. That means new
programmers have more to learn, but also that Sun has more options for
development. But Allen has respect for Fortran's inertia.
"There are a lot of features in Fortran that make it difficult for
programmers to write as efficiently as they can in modern programming
languages," he said, but added, "It's hard to imagine a world in which
Fortran programs are no longer run at all."
Read the original article: http://news.com.com/Suns+Fortran+replacement+goes+open-source/2100-7344_3-6150063.html
|