View
214
Download
1
Tags:
Embed Size (px)
Citation preview
© The Aerospace Corporation 2011
Why 21st Century Software Engineering is More Like French Fries than Ever
Eric M. DashofyComputer Systems Research DepartmentThe Aerospace Corporation
CSRD/CSTS/ETGMarch 8, 2011
1
2
I’ll give you the answer up front…
• It comes in many different sizes:– Small
– Medium
– Large
– Super-Size Me!
• It’s cheap and it doesn’t last long
• Nearly any alternative is healthier
3
Outline
• I’ll talk about three areas of interest at different scales– Small: Wireless sensor networks
– Medium: Tiny embedded computers, clustered
– Large: High-performance and cloud computing
• And identify some unique challenges in each area
• And describe some Aerospace research or investigations in each one
© The Aerospace Corporation 2011
Large Fries
High-Performance Computing
5
High-Performance Computing
• Critical domain to work of The Aerospace Corporation• Solving computationally-intensive problems, generally with large data
sets• Sometimes data sets are from “real” sensor sources:
– Signal processing, image processing• Sometimes they are synthesized
– e.g., find optimal satellite configuration through exhaustive search or Monte-Carlo method
• …using a variety of different, interconnected computing architectures, techniques, and resources beyond a single core/serial implementation.
• HPC-style resources are everywhere: laptops, desktops, gaming consoles, embedded processors…
6
Major trends in HPC
• Increasing the speed of individual processing elements– i.e., more megahertz!
• Increasing the “smarts” within processors– i.e., longer pipelines, branch prediction, speculative execution
• Parallelism is the name of the game: dwarfs megahertz and smarts
At the level of… Through…
Instructions Multi-issue processors
Data elements Vector processing, SIMD instructions
Threads “Hyperthreading”
Processor elements Multicore processors, Heterogeneous Multicore
Processors Symmetric Multiprocessing (SMP), NUMA
Machines Cluster-based computing
Clusters Grid computing
7
Increasing Complexity in HPC
• Put another way…
Chip Multi-issue
SIMDInst.
SIMD Units
SMT Multi-core
VLIW/EPIC
Multi-Proc.
H.M.P.
486 X
Pentium X X
PII/III X X X
P4 X X X X
Core… X X X X
GPUs X X
Power6 X X X X X
Itanium X X X X
Cell X/X X/_ X/X X X
Not shown: FPGAs, tile-based computing…
8
A Challenge Problem
• What is the fastest way to transform a large amount of data through three transformations (“Red”, “Green”, and “Blue”)?– I’ll give you two options (assume both will result in the same output)
Data
Data
9
A Challenge Problem: Option 1
• Do all the red, then all the green, then all the blue.
Data
10
A Challenge Problem: Option 2
• Chunk up the data and do red, then green, then blue on each chunk.
Data
11
Ordinary parallelism is only one side of the story…• Moore’s Law: The number of transistors on a chip will double every ~18 months
Credit: User Wgsimon; used under Creative Commons ShareAlike 3.0 License
12
…but what are we doing with those transistors?• Moore’s law: the number of transistors on a chip will double every
~18 months
Superscalar, multi-issue
SMT, in-order
SMT, multi-issueMulticore
VLIW/EPIC
Multicore VLIW/EPIC
GPUs
Heterogeneous Multiprocessor
Multicore + SMT
13
Key Challenges
• Parallelism is still hard for people to understand and master– Some techniques – OpenMP, actor model – ease things
• Trying out different parallelization strategies is still expensive and labor-intensive
• Good tooling is hard to get, because the platforms are evolving faster than the tools can be built
14
A Little Research
© The Aerospace Corporation 2011
Medium Fries
Kinda-Embedded Computing
16
“Kinda-Embedded” Computing
• New computing platforms and processors emerging in a niche we haven’t seen before– The power, programmability, and connectivity of an (old) desktop
computer
– In extremely small form factors
• Largely driven by developments in cell phone technology
• Meet Gumstix Overo
• 600Mhz ARM-based processor w/extensions
• 256MB RAM, 256MB Flash, plus SD card (up to 8GB)
• 10/100 Ethernet, 54mbps WiFi, Bluetooth
• USB, HDMI
17
Applications
• Cell phones, tablets, PDAs, other handhelds
• “Plug Computers”
• Car-puters
• Walltops
• Location-aware applications
• Situational Awareness
• Micro web-servers
• Spaceborne(?)
18
Research: Gumstix for HPC-style ProcessingAre they viable for future spaceborne applications?
• Worked with a UCSB student team and a summer intern
• Developed two clusters– One homemade
– One on Gumstix “Stagecoach” backplane
• Ported Range-Doppler SAR algorithm to Gumstix and parallelized it
• Compared performance and power usage to a small-form-factor desktop (Mac Mini)
19
Performance of various implementationsComparing Gumstix implementation strategies to Mac Mini
20
Energy UseIt’s slower, but how much energy does it use?
Gumstix extremely close to Mac Mini in terms of power consumption
21
Key Challenges
• Optimization can make performance vary widely– Software engineering gives us few tools to do that optimization
• Biggest performance gains at very low levels of abstraction
• Likely to see increasing diversity in processors at this scale– Will what we learn on one apply to another?
• True mobility requires batteries– Power-aware computing probably increasingly important
– But the lure of these platforms is how similar they are to platforms where we can blithely ignore power use.
© The Aerospace Corporation 2011
Small Fries
Wireless Sensor Networks
23
Wireless Sensor Networks
• A wireless network of physically distributed small computing devices (colloquially: “motes”) equipped with tiny sensors
• Additional characteristics:
– Network topology may be fixed, variable, or ad-hoc
• Motes may be mobile, though infrequently
– Devices expected to run for months or years unattended
– Data collected generally forwarded to a central collection point
– Network should survive the loss of numerous motes
• Applications:
– Environmental monitoring
– Factory/industrial monitoring
– Target detection and tracking
24
Meet Mica
• MicaZ Mote– 8Mhz Atmel ATMega128 Microcontroller (MIPS-like assembly language)– 4KB of RAM– 512KB of Flash (usually partitioned into 4x128KB program blocks)– CC2420 802.15.4 “Zigbee”-compliant radio
• 7 power usage modes– Several analog inputs, several digital inputs, I2C
• Sensor boards stack on top– Light, temperature, humidity,
orientation (magnetometer),acceleration, location (GPS),microphone (levels only)
Crossbow MicaZ Mote
25
How Motes Work
• Drop a bunch of motes in an area
• Distance between them: 50-100 meters
• One distinguished mote is the “gateway;”this is connected to an ordinary PC bya serial connection or Ethernettransceiver for data collection
GW
Base Station PC
26
How Motes Work
• Drop a bunch of motes in an area
• Distance between them: 50-100 meters
• One distinguished mote is the “gateway;”this is connected to an ordinary PC bya serial connection or Ethernettransceiver for data collection
• Software on the motes allows themto self-organize, collect data, andreport that data to their ‘parent’in the network– Base station ultimately gets all data
GW
27
A sample application we developed
• Signal transmitter tracking application
28
A sample application we developed
• Cell-phone tracking application
29
The Software Stacks
TinyOS
XM
esh
Tim
ers/
Util
ities
Dev
ice
Driv
ers
Dev
ice
Con
trol
Mote software based on open-source
TinyOS. A thin component
model is built on top of that.
XMesh forms and maintains ad-hoc
network; also provides interface for other TinyOS components to
send and receive messages.
Motes communicateover 802.15.4 protocol
(used in ZigBee devices)Long-range, low data rate.
Serial USB Ethernet
XServe
Socket
User App
XServe receives data
from base station mote and makes itavailable to
user-space apps
Map
UI
Tab
les
Web
UI
30
Software on the Motes
• TinyOS developed concurrently with the Mica family motes– Mica motes still probably the #1 platform for TinyOS – Other platforms supported
• Amazingly, there is a thin but useful component model
• Components written in nesC (a dialectof C) with well-defined interfaces
• Interfaces connected through aconfiguration diagram that resemblesearly module interconnectionlanguages (e.g., Polylith)
configuration Blink {}implementation { components Main, BlinkM, SingleTimer, LedsC;
Main.StdControl -> BlinkM.StdControl; Main.StdControl -> SingleTimer.StdControl; BlinkM.Timer -> SingleTimer.Timer; BlinkM.Leds -> LedsC;}
…
interface Timer { command result_t start(char type, uint32_t interval); command result_t stop(); event result_t fired();}
31
Key Challenges
• Extreme power management is key– How can we better integrate higher-level power management
principles into the sensor architecture?• Control flow is low-level and painful
– Can we alleviate this with higher-level models that are “compiled down” to implementations without sacrificing power?
• Are there architectural styles appropriate for these applications?– How do you build applications that use computation and
aggregation in-the-mesh to reduce data transmission?• How do you build debuggable systems?• How do you transition to next-generation systems?
32
Conclusion
• We are faced with yet-another “Cambrian Explosion” of– Scales
– Platforms
• Software engineering knowledge and insight lacking in these domains– For the smaller domains, abstraction (the key to software engineering) is
the enemy of performance and battery life
• We are building platforms faster than we can build tools and far faster than we can build skills– Domain experts often have little formal training in software engineering
• Need lightweight “force multipliers” with a very low cost:benefit ratio
All trademarks, service marks, and trade names are the property of their respective owners.