Title: Why 21st Century Software Engineering is More Like French Fries than Ever
1Why 21st Century Software Engineering is More
Like French Fries than Ever
- Eric M. Dashofy
- Computer Systems Research Department
- The Aerospace Corporation
- CSRD/CSTS/ETG
- March 8, 2011
2Ill give you the answer up front
- It comes in many different sizes
- Small
- Medium
- Large
- Super-Size Me!
- Its cheap and it doesnt last long
- Nearly any alternative is healthier
3Outline
- Ill 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
4Large Fries
- High-Performance Computing
5High-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
6Major 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
7Increasing Complexity in HPC
Chip Multi-issue SIMD Inst. 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
8A Challenge Problem
- What is the fastest way to transform a large
amount of data through three transformations
(Red, Green, and Blue)? - Ill give you two options (assume both will
result in the same output)
Data
Data
9A Challenge Problem Option 1
- Do all the red, then all the green, then all the
blue.
Data
10A Challenge Problem Option 2
- Chunk up the data and do red, then green, then
blue on each chunk.
Data
11Ordinary parallelism is only one side of the
story
- Moores Law The number of transistors on a chip
will double every 18 months
Credit User Wgsimon used under Creative Commons
ShareAlike 3.0 License
12but what are we doing with those transistors?
- Moores law the number of transistors on a chip
will double every 18 months
Multicore VLIW/EPIC
Multicore SMT
GPUs
VLIW/EPIC
Heterogeneous Multiprocessor
Multicore
SMT, multi-issue
SMT, in-order
Superscalar, multi-issue
13Key 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
14A Little Research
15Medium Fries
16Kinda-Embedded Computing
- New computing platforms and processors emerging
in a niche we havent 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
17Applications
- Cell phones, tablets, PDAs, other handhelds
- Plug Computers
- Car-puters
- Walltops
- Location-aware applications
- Situational Awareness
- Micro web-servers
- Spaceborne(?)
18Research Gumstix for HPC-style Processing
- Are 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)
19Performance of various implementations
- Comparing Gumstix implementation strategies to
Mac Mini
20Energy Use
- Its slower, but how much energy does it use?
- Gumstix extremely close to Mac Mini in terms of
power consumption
21Key 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.
22Small Fries
23Wireless 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
24Meet 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
25How Motes Work
Base Station PC
- Drop a bunch of motes in an area
- Distance between them 50-100 meters
- One distinguished mote is the gatewaythis is
connected to an ordinary PC bya serial
connection or Ethernettransceiver for data
collection
26How Motes Work
- Drop a bunch of motes in an area
- Distance between them 50-100 meters
- One distinguished mote is the gatewaythis 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 parentin the network - Base station ultimately gets all data
27A sample application we developed
- Signal transmitter tracking application
28A sample application we developed
- Cell-phone tracking application
29The Software Stacks
XMesh forms and maintains ad-hoc network also
provides interface for other TinyOS components to
send and receive messages.
Map UI
Tables
Web UI
XServe receives data from base station mote and
makes itavailable to user-space apps
XMesh
Timers/Utilities
Device Drivers
Device Control
User App
Socket
TinyOS
XServe
Mote software based on open-source TinyOS. A
thin component model is built on top of that.
Motes communicateover 802.15.4 protocol(used in
ZigBee devices) Long-range, low data rate.
Serial
USB
Ethernet
30Software 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 -gt BlinkM.StdControl
Main.StdControl -gt SingleTimer.StdControl
BlinkM.Timer -gt SingleTimer.Timer BlinkM.Leds
-gt LedsC interface Timer command
result_t start(char type, uint32_t interval)
command result_t stop() event result_t
fired()
31Key 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?
32Conclusion
- 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 costbenefit ratio
All trademarks, service marks, and trade names
are the property of their respective owners.