The Gedae Origin Story
A revolution 25 years in the making...
STANDING ON THE SHOULDERS OF GIANTS
The historical evolution of Gedae's technology is most clearly illustrated as a a series of layered developments. The technology evolved through several stages before arriving at the general purpose language and compiler it is today.
THE SEED
The seed for Gedae was first planted in the mid 80's while Kerry and Bill were members of an RCA group working with one of the DARPA Supercomputers, the Connection Machine. Their work with the Connection Machine sparked an interest in parallel programming.
THE BIRTH
RCA soon became GE Aerospace and in 1987 Kerry and Bill were tasked to build tools to simplify the parallel programming task. That was the true birth of Gedae's technology. The work was inspired by the early needs of the defense sensor market; primarily RADAR, SIGINT and electro-optic processing. At the time, it was essential to use parallel computers in these products and to create highly efficient software, and that demanded highly skilled and specialized programmers.
They quickly realized a few things.
- Most valuable algorithms are complex and challenging to implement and optimize.
- Efficiency doesn't imply scalability and scalability doesn't imply efficiency.
- The true value of software lies with the algorithm. The software is just a means to an end, a way of getting the computer to act out the algorithm as we wish to run it.
- There are hard limits to the effect of parallel program as defined by Amdahl's Law.
- This lead to the obvious but often overlooked understanding that a complete solution had to deliver efficient implementations of both the parallel and serial portions of the algorithm.
Based on these realizations they set out to develop a solution to automate parallel programming. From 1987 through 1994 the team built a solution based on the software stack. The primary focus was an object layer that implemented data flow at runtime. In today's terminology the layer would have been called the programming model. Gedae's block diagram editor provided the programming interface. During that time the team rigorously analyzed the associated issues with the approach and identified fundamental efficiency limitations that rendered the approach unfeasible.
THE REBIRTH
In 1995 the team was asked to design a solution to address the performance and other problems. The team determined that the only way to fix the problems was to replace the runtime programming model with a compiler that made software decisions at compile time, thus eliminating the associated runtime overhead. By the end of 1995 it was clear that the approach was feasible, and Gedae set out to build a commercial version of the compiler. The compiler was evolved on a set of rules determined through experience – by building software and analyzing its performance.
Starting in 1996, Gedae began using it products to develop production systems and learned iteratively from each. The company also saw from the beginning that this rule-based compilation required specific information about the application behavior. Specifically, it was essential to provide the compiler with precise information about the memory requirements and the required sequencing of operations. Gedae continued with the development of a language to insure the compiler had the necessary information.
GROWING UP IS HARD TO DO
In 2001, with Lockheed Martin downsizing, Bill Lundgren purchased the IP rights to an early version of the technology with the development environment, and formed Gedae, Inc. During the period from 1997 through 2006, Gedae was used on many successful production software programs. These programs provided the opportunity to test and mature the compiler against real world software problems and architectures.
THE COLLEGE YEARS
In 2007, a relationship with IBM as a member of the Cell/B.E. ecosystem Gedae was pushed to yet another level. The Gedae staff's successful benchmarking efforts quickly raised the profile of Gedae in IBM. Spurred on by IBM, Gedae began to investigate what it would take to transform the company’s technology from a niche technology solution into a general-purpose solution for development and maintenance of parallel processing software. The benefit was three fold: first, it forced us to further generalize the hardware model, second it drove us to optimize Gedae compiler to deliver maximum efficiency and third it drove the creation of a text language.
Though the Cell quickly fizzled and was abandoned before we completed our development the experience was invaluable. From 2007 to 2013 Gedae continued it's maturation of these aspects of the technology against customer use before arriving at what we considered the first complete version of the foundational technology in our history.
LOOK AT YOU COLLEGE GRAD!
In January of 2013 we released this finished product. Today Gedae calls that fully developed productivity language Idea™. The compiler automatically converts applications written in Idea into the data flow language giving the developer direct access to Gedae’s parallelizing optimizing compiler. This is our first release of a generalized programming language and compiler for today's multi-core, multiprocessor and complex memory architectures and it's amazing.
So while we say we have completed the foundational technology this does not mean development will stop - rather the foundation for broad use is in place. The Von Neumann paradigm is going on 60 years old and development still continues based on that foundation. As a foundation for today's generation of hardware we expect no less for this the Gedae paradigm.
Return to the INNOVATION main page.
THE DRIVERS...
Our research was driven by customers, vendors and markets demanding applications with real functionality and tough performance(efficiency) requirements that require thoughtful hand-coding in order to achieve success.
Successful support of their requirements demanded:
- Precise description of the functional behavior must be expressible.
- Algorithmic concepts
- Requiring the language and tool to act as a thinking toy
- Software control concepts
- Resource management when switching among applications or modes of operation within an application.
- Real-time performance
- Ability to target hardware with a broad range of architectural features
The Gedae technology has been rigorously and continuously tested by our customers use for development of production systems like the Eurofighter's CAPTOR RADAR, in addition to 40 others.