Gedae Promises Performance and Portability

By John E. West

September 11, 2008

Developers in HPC have long lamented that you can either have performance or portability, but not both. You can get middling performance on many architectures with a single, portable code, but to get great performance, you need to tune your application for the features of a particular machine. For example, machine A, with a giant cache and slow inter-processor communication demands one approach to solving the problem, while machine B with vector processors, mid-sized cache, and fast interconnect demands another. This creates headaches for developers who have to manage multiple versions of an application for various platforms, inserting complex target-dependent logic into the application build process to ensure that users are able to get at the special features of their chosen platform.

For a while it looked like the need for platform-specific tuning might gradually fade away as the industry concentrated on the x86 architecture, but the rise of new architectures and re-introduction of hardware acceleration reminds us that in HPC the only constant is change. That’s why development platforms like Gedae, pronounced “JEE-day,” are getting renewed attention. Gedae is both the name of the product and the name of the company. The platform strikes a middle ground between performance and portability. Yes, you can separate implementation and specification, but you can also get into the implementation and tune to your heart’s content. Gedae CEO Bill Lundgren is sure his company is on to something big, and he expects this approach to become the standard technique for creating efficient, portable, parallel applications on everything from desktop computers to Top 10 machines.

Gedae is a complete application development system. Development starts with the expression of application functionality at a very high level using a visual “widget-on-a-string” editor, which CEO Bill Lundgren describes as a “thinking tool” for scientists and engineers. This type of environment is most typically associated with data flow computing, and that’s where Gedae’s roots are. But the company has worked hard to expand the basic data flow approach, which originated in real-time signal processing, to include the expressiveness needed to specify a wide range of computational problems. As a result, today Gedae is used in applications ranging from image and radar processing to fluid flow simulation and distributed battle simulation.

The developer then moves on to specifying how the functionality should be implemented and creates a separate implementation specification to express the problem- or machine-specific details of the application. For example, while the functional specification might say “multiply matrix A and matrix B,” the implementation file contains details of domain decomposition and architecture-specific tuning parameters (e.g., tile size). Because implementation and high-level behavior are separated, it is possible for scientists and engineers to work just on what their algorithm should do, while computer and computational scientists can be left to focus on how the final application should get those things done.

The Gedae compiler then takes both files as input and starts working on creating a parallel application. The compiler takes into account what machine it is compiling for, and uses information about the machine supplied to it in a hardware model to make very specific decisions about how to compile the application for best performance, lengthening vectors for machine A, and favoring fewer but larger messages on machine B.

The compiler also handles thread definition, task scheduling, and decomposition (following the rules built into the implementation file). This level of automation allows the compiler to worry about concurrency control and avoid deadlocks, in addition to optimizing memory sharing between threads or tasks. After the application is compiled, Gedae can monitor the performance of the application as it runs, and developers can iteratively refine the hardware-specific details based on actual application performance for better performance.

All of these features emphasize Gedae’s belief that the compiler should do as much work as possible. “It is absolutely essential to have a new language for creating parallel programs,” says Lundgren. “We also have to have a high degree of automation to produce reliable and accurate high performance codes, but to get there the compiler needs to have access to the same information the developer has.”

Gedae got its start in 1987 at RCA as a project to support the DoD’s need to program a set of newly acquired Connection Machines. The compiler was designed from the beginning to support multiple hardware architectures (“targets”), and as it was developed, it was also used to create applications for other computers of the day, including BBN’s Butterfly. This was at a time when computer scientists were just starting to get excited about object-oriented computing, and the first versions of Gedae were built around an object engine that executed applications in a managed runtime. While the system worked and was well-received by users, the object engine made many runtime decisions and added a lot of execution overhead that made Gedae inappropriate in many scenarios.

In 1995 Gedae was re-engineered and adapted for better performance. Part of the new mandate was for Gedae to create code for embedded systems, which meant moving away from a managed runtime. Efficient execution became a driving force, and Gedae added a compiler. This is also when the original data flow model was expanded with the semantics needed to express a much wider range of problems than data flow graphs can typically express.

Developers today are using Gedae to build applications targeted for IBM’s BlueGene and Cell processors, Intel’s multicore processors, and a variety of other specialized hardware, for applications in medical, defense and scientific domains. Gedae offers the features that Lundgren believes are essential to performance-oriented programming in multi-processor and multicore environments.

“Gedae separates functionality from implementation, but still exposes the knobs that developers want to tune to get the best performance,” he says. “Those knobs have good defaults on each platform, ensuring good performance for developers that lack the time or knowledge to do detailed performance tuning. Gedae’s compile approach keeps the code lean, without time consuming conditionals and library calls that conventional approaches need, and provides the observability tools developers require to understand what the compiler did and how to tweak the implementation in response.”

As Gedae plans out the near term for its namesake product, the company continues to focus on reducing complexity for developers and improving performance. An important upcoming change is the addition of more and better automation, including a rules-based engine for generating code that will adapt algorithms and implementation details based on a specific target platform, eliminating the need for developers to bring this knowledge to the process. This engine will also allow for the feedback of information gathered during profiling runs, enabling further support for performance tuning by the compiler. Another significant new feature in Gedae is the planned addition of a high level language, similar to MATLAB, to provide users with another path for specifying functionality.

“We are seeing an increasing number of cases from customers, especially in the last year, in which a Gedae-compiled application is outperforming hand-tuned code in real applications,” says Lundgren. He also believes that the success of Gedae thus far, and more importantly the success of the application development model, are strong indicators that this approach will be an important part of the application developer’s toolkit in the future.

As Lundgren puts it, “I expect this technique will become pervasive in the software development community. Whether Gedae itself becomes pervasive is up for debate, but we have proven that the strong separation of implementation and functionality works in practice and offers significant advantages for performance and productivity.”

Subscribe to HPCwire's Weekly Update!

Be the most informed person in the room! Stay ahead of the tech trends with industy updates delivered to you every week!

Mira Supercomputer Enables Cancer Research Breakthrough

November 11, 2019

Dynamic partial-wave spectroscopic (PWS) microscopy allows researchers to observe intracellular structures as small as 20 nanometers – smaller than those visible by optical microscopes – in three dimensions at a mill Read more…

By Staff report

IBM Adds Support for Ion Trap Quantum Technology to Qiskit

November 11, 2019

After years of percolating in the shadow of quantum computing research based on superconducting semiconductors – think IBM, Rigetti, Google, and D-Wave (quantum annealing) – ion trap technology is edging into the QC Read more…

By John Russell

Tackling HPC’s Memory and I/O Bottlenecks with On-Node, Non-Volatile RAM

November 8, 2019

On-node, non-volatile memory (NVRAM) is a game-changing technology that can remove many I/O and memory bottlenecks and provide a key enabler for exascale. That’s the conclusion drawn by the scientists and researcher Read more…

By Jan Rowell

What’s New in HPC Research: Cosmic Magnetism, Cryptanalysis, Car Navigation & More

November 8, 2019

In this bimonthly feature, HPCwire highlights newly published research in the high-performance computing community and related domains. From parallel programming to exascale to quantum computing, the details are here. Read more…

By Oliver Peckham

Machine Learning Fuels a Booming HPC Market

November 7, 2019

Enterprise infrastructure investments for training machine learning models have grown more than 50 percent annually over the past two years, and are expected to shortly surpass $10 billion, according to a new market fore Read more…

By George Leopold

AWS Solution Channel

Making High Performance Computing Affordable and Accessible for Small and Medium Businesses with HPC on AWS

High performance computing (HPC) brings a powerful set of tools to a broad range of industries, helping to drive innovation and boost revenue in finance, genomics, oil and gas extraction, and other fields. Read more…

IBM Accelerated Insights

Atom by Atom, Supercomputers Shed Light on Alloys

November 7, 2019

Alloys are at the heart of human civilization, but developing alloys in the Information Age is much different than it was in the Bronze Age. Trial-by-error smelting has given way to the use of high-performance computing Read more…

By Oliver Peckham

IBM Adds Support for Ion Trap Quantum Technology to Qiskit

November 11, 2019

After years of percolating in the shadow of quantum computing research based on superconducting semiconductors – think IBM, Rigetti, Google, and D-Wave (quant Read more…

By John Russell

Tackling HPC’s Memory and I/O Bottlenecks with On-Node, Non-Volatile RAM

November 8, 2019

On-node, non-volatile memory (NVRAM) is a game-changing technology that can remove many I/O and memory bottlenecks and provide a key enabler for exascale. Th Read more…

By Jan Rowell

MLPerf Releases First Inference Benchmark Results; Nvidia Touts its Showing

November 6, 2019

MLPerf.org, the young AI-benchmarking consortium, today issued the first round of results for its inference test suite. Among organizations with submissions wer Read more…

By John Russell

Azure Cloud First with AMD Epyc Rome Processors

November 6, 2019

At Ignite 2019 this week, Microsoft's Azure cloud team and AMD announced an expansion of their partnership that began in 2017 when Azure debuted Epyc-backed ins Read more…

By Tiffany Trader

Nvidia Launches Credit Card-Sized 21 TOPS Jetson System for Edge Devices

November 6, 2019

Nvidia has launched a new addition to its Jetson product line: a credit card-sized (70x45mm) form factor delivering up to 21 trillion operations/second (TOPS) o Read more…

By Doug Black

In Memoriam: Steve Tuecke, Globus Co-founder

November 4, 2019

HPCwire is deeply saddened to report that Steve Tuecke, longtime scientist at Argonne National Lab and University of Chicago, has passed away at age 52. Tuecke Read more…

By Tiffany Trader

Spending Spree: Hyperscalers Bought $57B of IT in 2018, $10B+ by Google – But Is Cloud on Horizon?

October 31, 2019

Hyperscalers are the masters of the IT universe, gravitational centers of increasing pull in the emerging age of data-driven compute and AI.  In the high-stake Read more…

By Doug Black

Cray Debuts ClusterStor E1000 Finishing Remake of Portfolio for ‘Exascale Era’

October 30, 2019

Cray, now owned by HPE, today introduced the ClusterStor E1000 storage platform, which leverages Cray software and mixes hard disk drives (HDD) and flash memory Read more…

By John Russell

Supercomputer-Powered AI Tackles a Key Fusion Energy Challenge

August 7, 2019

Fusion energy is the Holy Grail of the energy world: low-radioactivity, low-waste, zero-carbon, high-output nuclear power that can run on hydrogen or lithium. T Read more…

By Oliver Peckham

Using AI to Solve One of the Most Prevailing Problems in CFD

October 17, 2019

How can artificial intelligence (AI) and high-performance computing (HPC) solve mesh generation, one of the most commonly referenced problems in computational engineering? A new study has set out to answer this question and create an industry-first AI-mesh application... Read more…

By James Sharpe

Cray Wins NNSA-Livermore ‘El Capitan’ Exascale Contract

August 13, 2019

Cray has won the bid to build the first exascale supercomputer for the National Nuclear Security Administration (NNSA) and Lawrence Livermore National Laborator Read more…

By Tiffany Trader

DARPA Looks to Propel Parallelism

September 4, 2019

As Moore’s law runs out of steam, new programming approaches are being pursued with the goal of greater hardware performance with less coding. The Defense Advanced Projects Research Agency is launching a new programming effort aimed at leveraging the benefits of massive distributed parallelism with less sweat. Read more…

By George Leopold

AMD Launches Epyc Rome, First 7nm CPU

August 8, 2019

From a gala event at the Palace of Fine Arts in San Francisco yesterday (Aug. 7), AMD launched its second-generation Epyc Rome x86 chips, based on its 7nm proce Read more…

By Tiffany Trader

D-Wave’s Path to 5000 Qubits; Google’s Quantum Supremacy Claim

September 24, 2019

On the heels of IBM’s quantum news last week come two more quantum items. D-Wave Systems today announced the name of its forthcoming 5000-qubit system, Advantage (yes the name choice isn’t serendipity), at its user conference being held this week in Newport, RI. Read more…

By John Russell

Ayar Labs to Demo Photonics Chiplet in FPGA Package at Hot Chips

August 19, 2019

Silicon startup Ayar Labs continues to gain momentum with its DARPA-backed optical chiplet technology that puts advanced electronics and optics on the same chip Read more…

By Tiffany Trader

Crystal Ball Gazing: IBM’s Vision for the Future of Computing

October 14, 2019

Dario Gil, IBM’s relatively new director of research, painted a intriguing portrait of the future of computing along with a rough idea of how IBM thinks we’ Read more…

By John Russell

Leading Solution Providers

ISC 2019 Virtual Booth Video Tour

CRAY
CRAY
DDN
DDN
DELL EMC
DELL EMC
GOOGLE
GOOGLE
ONE STOP SYSTEMS
ONE STOP SYSTEMS
PANASAS
PANASAS
VERNE GLOBAL
VERNE GLOBAL

Intel Confirms Retreat on Omni-Path

August 1, 2019

Intel Corp.’s plans to make a big splash in the network fabric market for linking HPC and other workloads has apparently belly-flopped. The chipmaker confirmed to us the outlines of an earlier report by the website CRN that it has jettisoned plans for a second-generation version of its Omni-Path interconnect... Read more…

By Staff report

Kubernetes, Containers and HPC

September 19, 2019

Software containers and Kubernetes are important tools for building, deploying, running and managing modern enterprise applications at scale and delivering enterprise software faster and more reliably to the end user — while using resources more efficiently and reducing costs. Read more…

By Daniel Gruber, Burak Yenier and Wolfgang Gentzsch, UberCloud

Dell Ramps Up HPC Testing of AMD Rome Processors

October 21, 2019

Dell Technologies is wading deeper into the AMD-based systems market with a growing evaluation program for the latest Epyc (Rome) microprocessors from AMD. In a Read more…

By John Russell

Intel Debuts Pohoiki Beach, Its 8M Neuron Neuromorphic Development System

July 17, 2019

Neuromorphic computing has received less fanfare of late than quantum computing whose mystery has captured public attention and which seems to have generated mo Read more…

By John Russell

Rise of NIH’s Biowulf Mirrors the Rise of Computational Biology

July 29, 2019

The story of NIH’s supercomputer Biowulf is fascinating, important, and in many ways representative of the transformation of life sciences and biomedical res Read more…

By John Russell

Xilinx vs. Intel: FPGA Market Leaders Launch Server Accelerator Cards

August 6, 2019

The two FPGA market leaders, Intel and Xilinx, both announced new accelerator cards this week designed to handle specialized, compute-intensive workloads and un Read more…

By Doug Black

With the Help of HPC, Astronomers Prepare to Deflect a Real Asteroid

September 26, 2019

For years, NASA has been running simulations of asteroid impacts to understand the risks (and likelihoods) of asteroids colliding with Earth. Now, NASA and the European Space Agency (ESA) are preparing for the next, crucial step in planetary defense against asteroid impacts: physically deflecting a real asteroid. Read more…

By Oliver Peckham

When Dense Matrix Representations Beat Sparse

September 9, 2019

In our world filled with unintended consequences, it turns out that saving memory space to help deal with GPU limitations, knowing it introduces performance pen Read more…

By James Reinders

  • arrow
  • Click Here for More Headlines
  • arrow
Do NOT follow this link or you will be banned from the site!
Share This