11.01.2017 Views

A Technical History of the SEI

ihQTwP

ihQTwP

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!