The Eclipse Foundation is forging ahead with an attempt to bring order to the fragmented field of tools for building software to run on parallel computers.
Parallel computers are usually found at universities, research institutions, and businesses where large, centralized data warehouses, such as Wal-Mart's Teradata system, are used.
The foundation will team up with the Los Alamos National Laboratory, a parallel-computing user, to make Eclipse a central host for many parallel-computing tools. Under the Eclipse approach, many tools plug into its programmer's workbench and work together by passing development work from one tool to another.
"Los Alamos knows firsthand the pain of using many parallel-programming tools and trying to make them work together," says Greg Watson, project leader in Los Alamos' Advanced Computing Laboratory. Different parallel computers tend to have their own tools, and software can't be moved between them without being reworked. There's even little integration among the different tools for the same type of parallel machine, he adds.
The foundation has launched a Parallel Tools Platform Project to produce open-source tools for use in parallel computing. Parallel computing allows one large task to be subdivided and its individual parts run on separate processors, yielding complex computing results much faster, Watson says.
"Parallelized" development tools produce software that solves problems by arranging them into subdivided tasks that are assigned to parallel processors. A leading example of parallel processing is the Google search engine. It doesn't methodically conduct a search of the Google index of the Internet from end to end when pursuing a keyword. It breaks the task down into many parts, with independent processors each conducting part of the search. In that way, it returns results much faster, Urs Hoelzle, Google's VP of engineering, told attendees at the EclipseCon user conference in Burlingame, Calif., early last month.
Parallel processing is also different from more common processor clusters in that each processor in a parallel machine usually has its own memory and operating system. That configuration allows it to perform a task as if it were a standalone unit. Software governing the parallel machine coordinates the overall results.
Processors in a cluster, in contrast, tend to share a common pool of memory, and one processor is restricted from using a set of data already in use by another processor, slowing output if the cluster's resources are focused on one big task. Instead, the work of several applications is generally spread across a cluster.
Los Alamos Lab will lead the parallel-tools project, says Mike Milinkovich, executive director of the Eclipse Foundation. The foundation will host the project, he says, providing a central development site where work will proceed on a parallel debugger and other tools.