A Technical History of the SEI
ihQTwP
ihQTwP
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
S<strong>of</strong>tware for Heterogeneous Machines<br />
The Challenge: Meeting Performance Goals for Real-Time Applications<br />
Involving Heterogeneous Machines<br />
Around <strong>the</strong> time that <strong>the</strong> <strong>SEI</strong> was formed, DARPA was sponsoring research, under <strong>the</strong> Strategic<br />
Computing Initiative, in a number <strong>of</strong> computation-intensive, real-time applications, such as autonomous<br />
land vehicles. These applications required processing data obtained from sensors (for example,<br />
TV cameras, radar, and sonar), extracting basic features <strong>of</strong> <strong>the</strong> terrain, consulting low-level<br />
knowledge sources to build hypo<strong>the</strong>ses about paths and obstacles, and consulting higher level<br />
knowledge sources to make decisions about current vehicle location, desired target location, and<br />
ways to arrive <strong>the</strong>re.<br />
Given <strong>the</strong> computer technology <strong>of</strong> <strong>the</strong> day, <strong>the</strong> demands for computing cycles were so great that<br />
conventional processors could not meet all <strong>the</strong> performance goals. Certain tasks in <strong>the</strong> applications<br />
required special-purpose processors capable <strong>of</strong> executing some tasks very quickly—but such<br />
processors were perhaps not very useful for o<strong>the</strong>r tasks.<br />
A Solution: S<strong>of</strong>tware for Heterogeneous Machines (Durra)<br />
Recognizing this future need to support applications running on networks <strong>of</strong> <strong>the</strong>se special-purpose<br />
processors executing concurrent tasks, <strong>the</strong> <strong>SEI</strong> initiated research in s<strong>of</strong>tware for heterogeneous<br />
machines. This work continued from 1985 through 1992. The heterogeneous machines targeted<br />
by this research consisted <strong>of</strong> general-purpose processors, special-purpose processors, memory<br />
boxes, and switches that could be configured in arbitrary logical networks. The application tasks<br />
were independent, large-grained, concurrent programs, written in various programming languages<br />
and communicating via message passing protocols. Heterogeneous machines, such as <strong>the</strong> one assumed<br />
in this research, pushed <strong>the</strong> leading edge <strong>of</strong> s<strong>of</strong>tware engineering [Barbacci 1988].<br />
By 1991, <strong>the</strong> research focused on improving <strong>the</strong> practice <strong>of</strong> developing and maintaining distributed<br />
systems. The <strong>SEI</strong> had developed a language and methodology (Durra) 9 for implementing distributed,<br />
real-time applications on heterogeneous computer systems [Barbacci 1986a, 1997, 1987;<br />
Doubleday 1992]. The <strong>SEI</strong> also developed a runtime environment to support distributed applications<br />
that use heterogeneous machines [Weinstock 1989].<br />
This research improved <strong>the</strong> state <strong>of</strong> <strong>the</strong> practice <strong>of</strong> s<strong>of</strong>tware engineering by integrating techniques<br />
for specifying <strong>the</strong> s<strong>of</strong>tware structure <strong>of</strong> applications, specifying reusable component programs,<br />
and specifying <strong>the</strong> timing and functional behavior <strong>of</strong> component programs and applications [Barbacci<br />
1986b].<br />
Much <strong>of</strong> <strong>the</strong> research was done in collaboration with <strong>the</strong> CMU Department <strong>of</strong> Computer Science<br />
(now part <strong>of</strong> <strong>the</strong> School <strong>of</strong> Computer Science), building on and leveraging its work on Nectar [Arnould<br />
1989], a prototype heterogeneous machine that was also funded by DARPA to develop applications<br />
for an autonomous land vehicle.<br />
9 The name Durra is not an acronym. Ra<strong>the</strong>r it came from Sorghum bicolor, commonly called sorghum<br />
and also known as durra, jowari, or mil—a grass species cultivated for its edible grain. Since<br />
<strong>the</strong> project was dealing with large-grained parallelism, <strong>the</strong> name seemed appropriate.<br />
CMU/<strong>SEI</strong>-2016-SR-027 | SOFTWARE ENGINEERING INSTITUTE | CARNEGIE MELLON UNIVERSITY 43<br />
Distribution Statement A: Approved for Public Release; Distribution is Unlimited