HPCwire

The Leading Source for Global News and Information Covering the Ecosystem of High Productivity Computing

HPCwire >> Topic >> Developer Tools

Sun's Fortress Language: Parallelism by Default


Page:  1  of  2
1 | 2   All  »  

If anyone knows how to introduce a new programming language, it's Sun Microsystems. The company's highly successful Java language, which was introduced in 1991, has become ubiquitous in network-centric and embedded computing. Today, there's a whole research team at Sun Labs devoted to programming languages, and the big project there in recent years has been the development of the Fortress programming language. The end game is to "do for Fortran what Java did for C."

Unlike Java though, Fortress is geared for HPC applications, with programmability as a major design goal. The language maintains a high level of abstraction for the developer, allowing the focus to be on the algorithm rather than the underlying hardware. And even though Fortress specifically targets high-end technical computing, it is also applicable to large-scale parallel applications of almost any type. "We were looking for a language that was good for multicore, for supercomputing, and for everything in between," explains Eric Allen, principal investigator of the programming languages research group at Sun Labs.

The project began in 2003 and was originally funded out of DARPA's High Productivity Computing System (HPCS) program. When Sun was dropped from HPCS in Phase III of the program, Sun Labs took over the Fortress R&D completely. But since Sun has made Fortress an open source project, the company has received a lot of outside help from universities and other researchers that have contributed to the design and implementation of the language. The University of Tokyo, the University of Virginia, and University of Aarhus in Denmark are all developing new Fortress libraries, while Rice University has been working on compiler optimizations.

Although the basic foundation is now fairly stable, the language specification is not written in stone. Version 1.0 of the compiler and runtime was launched in April of this year and represents a prototype for users who would like to kick the tires and offer some feedback. According to Allen, Sun is updating the spec as new features are added or current ones are refined and is incorporating the changes into the language as appropriate. The intention is to release new distributions every few months. Allen says a production version of the compiler is expected in 2010, or thereabouts.

The current prototype runs on top of a standard Java Virtual Machine (JVM), so just about anyone with a computer can give Fortress a whirl. Sun offers the latest distribution free on their Project Fortress site. For performance reasons, Allen expects that at some point more of the runtime will be statically compiled rather than interpreted, but right now the convenience of the JVM is enabling widespread experimentation. He says they've already received a lot of good suggestions, especially from the academic community.

Allen himself teaches a programming course using Fortress at UT Austin. According to him, the kids there are enthusiastic about writing code with it and are amazed at how concise Fortress programs are compared to other languages they've used.

The language itself supports both task and data parallelism. Most of the constructs assume concurrency unless the programmer explicitly specifies sequential execution. So parallel computation is automatically performed underneath the covers as a result of standard source code execution (assuming the underlying platform has more than a single core). For example, basic operations like for-loops are parallelized by default. Even computing arguments that are to be passed to a function are performed in parallel. "In fact, everywhere where we could possibly add parallelism into the language, we added it," says Allen.

The runtime implicitly farms out computations to the available processor cores using a fine-grained threading model. As cores becomes idle, the runtime will transparently steal work from overloaded parts of the system and move those computations to the unused cores. The language also provides for explicit threading under the control of the programmer. Atomic operations are executed using a transactional memory scheme instead of the old-style locks.

For clusters, where the locality of the computation becomes an issue, the language has both implicit and explicit methods of distributing data. By default, Fortress arrays are spread across a system with the default arrangement determined by the Fortress libraries. This allows the implementation to use target-specific libraries for machines with similar locality characteristics. Fortress also has the notion of a "distribution," which permits the programmer to explicitly specify both distribution of data and locality information for scheduling.

Probably the most distinguishing feature of Fortress is its support for mathematical notation. The goal here is to make the step from algorithm specification to source code as short as possible. To do this, the language supports 16-bit Unicode characters and specifies ASCII keyboard sequences that are rendered into mathematical notation. The current Fortress distribution includes an extension to the Emacs text editor that will convert these keyboard sequences as they are typed. The language designers' devotion to this type of notation created some challenges for the compiler's parser. For example, the use of whitespace between two operands to indicate multiplication (e.g., x y) requires some natural language smarts to determine the intention of the programmer.

Page:  1  of  2
1 | 2   All  »  

HPCwire on Twitter

Article Tools

  • Print This Page
  • Bookmark This Article

Share Options

(Digg, Technorati, more)


Subscribe

Discussion

There are 0 discussion items posted.  

HPC in the Cloud Part 2
People to Watch 2010


Feature Articles

The Week in Review

C-DAC announces plans for a petaflop system; IBM researchers are working on vertical integration techniques to extend Moore's Law another 15 years. We recap those stories and more in our weekly wrapup.
Read More...

Moscow State University Supercomputer Has Petaflop Aspirations

The Moscow State University supercomputer, Lomonosov, has been selected for a high-performance makeover, with the goal of tripling its processing power to achieve petaflop-level performance in 2010. T-Platforms, who developed and manufactured the supercomputer, is the odds-on favorite to lead the project.
Read More...

Intel Ups Performance Ante with Westmere Server Chips

Right on schedule, Intel has launched its Xeon 5600 processors, codenamed "Westmere EP." The 5600 represents the 32nm sequel to the Xeon 5500 (Nehalem EP) for dual-socket servers. Intel is touting better performance and energy efficiency, along with new security features, as the big selling points of the new Xeons.
Read More...

Top Headlines

Australia Commissions Cray Supercomputer

Mar 19 | OfficialWire | New super to support intelligence work Down Under. Read more...

Intel Partners See 'Easy' Upgrade Path With Xeon 5600 Chips

Mar 18 | ChannelWeb | Westmere parts already showing up in HPC machines. Read more...

AMD: OEMs primed for Opteron 6100s

Mar 17 | The Register | But what about the tier ones? Read more...

Arrival of the Desktop Supercomputer

Mar 17 | Cadalyst Magazine | A new generation of workstations is changing the nature of technical computing. Read more...

Scheduling HPC In The Cloud

Mar 17 | Linux Magazine | Latest iteration of Sun Grid Engine able to tap into Cloud. Read more...

Featured Whitepapers

Virtualization for Aggregation And The vSMP Architecture™

Jan 12 | | In-depth look at vSMP Foundation server virtualization technology, technical implementation, use cases and capabilities. The technical whitepaper provides an architectural overview and details on the three vSMP Foundation products: vSMP Foundation for SMP, vSMP Foundation for Cluster and vSMP Foundation for Cloud.

Copper Cable Technologies for High Performance Computing

Jan 18 | | This white paper discusses Gore’s copper cable assemblies, and how they continue to exceed the standards for providing reliable, cost-effective solutions for high-performance computer applications.

Multimedia

Webcast: Virtualized Data Center Roundtable

Join this online panel discussion for live Q&A with leading industry experts, analysts, and end-users to discuss the latest innovations, best practices, barriers to implementation, and measurable benefits of server virtualization with a particular focus on today's real world solutions.

Webcast: Watch SC09 Birds of a Feather Video: Scalable Fault-Tolerant HPC Supercomputers

Learn about scalable fault-tolerant architectures and examples of energy efficient and scalable supercomputing clusters using dual QDR InfiniBand to combine capacity computing with network failover capabilities with the help of programming languages such as MPI and a robust Linux cluster management package.

Webcast: High Performance Computing for a Smarter Planet

LIVE@SCO9: The IBM team discusses new innovations in hardware, software and services that help clients better understand their workloads and get insight from their R&D efforts. Technology demonstrations include the soon-to-be-released Power7 HPC processor, the DCS990 system with 2.4 petabytes of storage, the xCAT management tool, secure HPC cloud computing and more. Winners of two HPCwire Readers' and Editors’ Choice Awards! Take the IBM virtual tour at SC09 or more information go online to: http://www-03.ibm.com/systems/deepcomputing/sc09.html

SC09 HPC in the Cloud

Newsletters

Stay informed! Subscribe to HPCwire email Newsletters.






HPC Job Bank


Featured Events

HPC User Forum DICE
2010 High Performance Computing Linux Financial Markets
Cloud Computing Expo
Cloud Lab
ESC
DEISA PRACE Symposium