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.

tin’s simulator. Although this prototype s<strong>of</strong>tware was used for demonstration purposes only, application<br />

<strong>of</strong> <strong>the</strong> Simplex architecture principles were successfully applied on such systems as <strong>the</strong><br />

F-22 and F-35.<br />

<strong>SEI</strong> Research Included S<strong>of</strong>tware for Parallel Hardware Architectures<br />

S<strong>of</strong>tware has traditionally been written in languages that presume a single processor. Although<br />

s<strong>of</strong>tware has been successfully written for parallel machines, <strong>the</strong> mindset is a radical departure<br />

from <strong>the</strong> single-processor model. Early parallel machines focused largely on applications for<br />

which with applications had natural parallelism that could be exploited, such as matrix manipulation<br />

and image processing. However, hardware vendors and chip manufacturers recognized that to<br />

continue to benefit from <strong>the</strong> “Moore’s Law” curve, <strong>the</strong>y would eventually need to develop general-purpose<br />

processors with a high degree <strong>of</strong> parallelism. The <strong>SEI</strong> initiated efforts that would enable<br />

s<strong>of</strong>tware engineers to exploit <strong>the</strong> capabilities <strong>of</strong> those processors.<br />

Recognizing this future need to support applications running on networks <strong>of</strong> special-purpose processors<br />

executing concurrent tasks, <strong>the</strong> <strong>SEI</strong> initiated research in s<strong>of</strong>tware for heterogeneous machines.<br />

This work continued from 1985 through 1992. The heterogeneous machines targeted by<br />

this research consisted <strong>of</strong> general-purpose processors, special-purpose processors, memory boxes,<br />

and switches that could be configured in arbitrary logical networks. The application tasks were<br />

independent, large-grained, concurrent programs written in various programming languages communicating<br />

via message-passing protocols. Heterogeneous machines, such as <strong>the</strong> one assumed in<br />

this research, pushed <strong>the</strong> leading edge <strong>of</strong> s<strong>of</strong>tware engineering [Barbacci 1988]. By 1991, <strong>the</strong> research<br />

focused on improving <strong>the</strong> practice <strong>of</strong> developing and maintaining distributed systems. The<br />

<strong>SEI</strong> developed a language and methodology (Durra) ) for implementing distributed, real-time applications<br />

on heterogeneous computer systems. The <strong>SEI</strong> also developed a runtime environment to<br />

support distributed applications that use heterogeneous machines.<br />

By 2009, <strong>the</strong> trend to exploit <strong>the</strong> advantages <strong>of</strong> parallelism led to <strong>the</strong> development <strong>of</strong> multicore<br />

chips, that is, a chip-level multiprocessor (CMP). While <strong>the</strong>se chips <strong>of</strong>fer a significant processing<br />

advantage that might be exploited by real-time systems requiring autonomy, such as UAVs, problems<br />

occur when threads distributed across multiple processors must synchronize with each o<strong>the</strong>r,<br />

leading to idle processors and poor utilization. Essentially, <strong>the</strong>re are two aspects that must be considered:<br />

(1) allocating and mapping a thread to a processor, and (2) determining <strong>the</strong> execution order<br />

on that processor (i.e., scheduling). A research team composed <strong>of</strong> <strong>SEI</strong> staff and CMU pr<strong>of</strong>essors<br />

with extensive experience in scheduling and in practical real-time systems has been<br />

addressing multicore scheduling [Andersson 2012a]. It is critical to develop solutions to <strong>the</strong>se<br />

problems because <strong>the</strong> current approach is ei<strong>the</strong>r to avoid <strong>the</strong> use <strong>of</strong> multicore or to turn <strong>of</strong>f all processors<br />

except one to use <strong>the</strong> old sequential solutions. Nei<strong>the</strong>r alternatives enables DoD systems<br />

to realize <strong>the</strong> advantages <strong>of</strong>fered by multicore chips.<br />

The <strong>SEI</strong> Developed Analytic Techniques and Supporting Tools for<br />

Engineering Real-Time Systems<br />

Modern embedded systems still involve real-time constraints, but as processing capabilities improve,<br />

embedded systems are less processor limited in achieving <strong>the</strong>ir real-time objectives, even<br />

though <strong>the</strong>y are <strong>of</strong>ten challenged by added requirements that eat up those spare cycles. In many<br />

applications, <strong>the</strong> result has been a move away from traditional methods toward <strong>the</strong> use <strong>of</strong> more<br />

CMU/<strong>SEI</strong>-2016-SR-027 | SOFTWARE ENGINEERING INSTITUTE | CARNEGIE MELLON UNIVERSITY 22<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!