Programming Cyber-Physical Systems
198:671 Graduate Seminar, Fall 2010
(index 16096)
Annoucements
- The project report template has been posted.
- Next meeting, Friday December 3, in Hill 482.
- Please get an ilab account if you do not have one already.
Class Information
Meeting times/location: Fridays, 10:00am-1:00pm, CoRE B (CoRE 305, small
conference room, third floor in CoRE building).
We will not use a text book, but a selection of papers that cover
the discussed topics.
If you have any questions regarding this seminar, please contact me by
email (uli@cs.rutgers.edu) or
stop by my office (CoRE 318).
Course Description
There is a large class of system architectures that contain software (cyber) and
physical components. Physical processes may change particular conditions that a
cyber component senses. In response, the software components may perform a particular
computation and/or may influence the physical processes through physical actuators,
which in turn may result in new sensor readings etc. This interplay and
feedback between cyber and physical components defines a cyber-physical system,
which in some cases also includes human interactions ("human in
the loop").
The phrase "Cyber-Physical Systems" was termed around 2006 to describe
systems that include real-time and embedded systems, with the additional
feature of possible communication between system components. This
allows cyber and physical processes to collaborate with each other to
form a distributed system, increasing the overall complexity of the
resulting architecture over traditional real-time and embedded systems.
Cyber-physical systems include (incomplete list)
- industrial automation systems and robots,
- vehicular systems (e.g.: collision avoidance, autonomous driving),
- avionics,
- medical systems (e.g.: integrated diagnostics and medication, remote surgery)
- smart power grids (e.g.: load balancing between power demand and supply)
- smart homes and buildings (e.g.: cooling, lighting)
- assisted living (elderly care)
Most of these applications have strict requirements with respect to some or all of the following
- real-time
- reliability and robustness (dealing with uncertainty)
- correctness assurance (verification and validation)
- human in the loop interactions
For example, before new hardware or software can be integrated within
a car, plane, or medical device,
there are strict correctness requirements that have to be met. The
cost of this certification process
is very high. As a result, hardware or software components are
typically not changed during
the lifetime of a product due to the high cost of re-certification
necessary after any modification. While in
traditional real-time and embedded systems a "closed box" approach may
be used for verification and validation, this strategy may not be
applicable in cyber-physical systems due to the unpredictability /
uncertainty of possible inputs and interactions.
Cyber-physical systems also include systems where no particular
execution deadline can be enforced due
to the nature of the underlying computing or communication
architecture. These systems are typically
opportunistic and provide a service that is desirable, but not crucial
for the survival of the entity that tries to access the service. For
instance, a cyber-physical system that optimizes airflow for heating and cooling
of a building may miss a duty cycle (miss a re-adjustment deadline) with only minor
consequences to the inhabitants of the building. However, a vehicular
cyber-physical system for collision
detection that misses the deadline may result in serious injuries to the passengers.
In this course, we will focus on issues related to cyber-physical
systems with soft execution time deadlines . We will also
concentrate on systems that are battery operated, i.e.,
cyber-physical systems
where energy is a crucial resource that needs to be managed, possibly
trading off system functionality for energy savings. Our target cyber-physical systems are
- Sarana, a programming architecture (middleware) for spatiotemporal applications in a dynamic, opportunistic network of smart phones (e.g.: iPhone, Android phone).
- A
programming system for autonomous underwater vehicles (AUVs),
targeting the Slocum glider and groups of gliders.
- Intel's
SCC, a high-performance, multi-core programming architecture that
allows energy vs. performance tradeoffs, and can serve as a
single-chip cloud computer as part of a cyber-physical system.
Students taking this graduate seminar will learn about the design and
programming challenges of cyber-physical systems, their energy
consumption, and their overall evaluation.
Course Outline
Students are required to present at least two research papers, work on one larger project, and write and present a project report.
The tentative syllabus is as follows:
- Introduction and overview; Sarana, the Slocum glider, and the SCC
- Power, energy, and thermal management issues
- Small project: Using a power measurement infrastructure
- Topics in spatiotemporal programming - paper presentations
- Topics in AUV programming - paper presentation
- Programming the SCC - paper presentations
- Project discussions and assignments
- Other topics for cyber-physical systems
- Security and privacy in dynamic networks
- Challenges in power evaluations
- Power/energy management for high-performance systems
- Project presentations
Since I believe that you cannot optimize or improve what you cannot measure, students will learn how to use a power measurement infrastructure, and how to use this infrastructure to measure the power/energy behavior of a system. The main project will be the core part of the course. Depending on the particular project, students may work by themselves or within groups. The project report should be workshop quality, i.e., at a level that would allow publication. As a consequence, the projects will contain a significant experimental evaluation component. Course participants are expected to help each other during the evaluation process (e.g.: take part in a dynamic network of smart phone on campus).
Sample Projects
Here is a list of possible projects (tentative and incomplete). All projects will require the design and implementation of an evaluation methodology of the new cyber-physical system.
- Parallelize ADCP applications (e.g.: krill detection) and port them onto the SCC (gliders & SCC); illustrate performance/energy tradeoffs;
- Implement infrastructure to inject services into a dynamic
network (Sarana); this will allow in-network data processing
"on-demand";
allows transition from data networks to information networks; allows building more complex cyber-physical systems based on abstract services;
- A distributed directory structure for services in Sarana;
- A coherency model for Sarana to provide a semantic basis of communication between Sarana programs
- Glider communication and the development and evaluation of different swarming algorithms (Glider)
- Image understanding algorithms for the SCC; porting different algorithms onto the SCC and evaluate performance vs. QoR vs. energy tradeoffs;
- Weather prediction on the SCC; porting different algorithms onto the SCC and evaluate performance vs. QoR vs. energy tradeoffs;
- Simulation environment (validation and safety assurance) for AUVs
- Development and evaluation of a Zipcar application that includes
costs assignments to ensure efficient distribution of cars in a target
region.
Main Project
Three possible projects cover
Sarana, the SCC, and
Slocum glider. The project report should have the following template
(pdf,
tex).
Due date: not yet determined.
Lectures and Presentations (incomplete list, subject to change, not necessarily in
chronological order)
Under Construction
- September 3, 2010 --
Introduction
Readings:
- September 10, 17, and 24 -- Topic: Power/Energy Management
Further Readings:
-
Low Power/Energy Compiler Optimizations,
Ulrich Kremer, in : Low-Power Electronics Design (Editor:
Christian Piguet), CRC Press, 2005.
- Execution Context Optimization for Disk Energy .
J. Hom and U. Kremer.
International Conference on Compilers, Architecture,
and Synthesis for Embedded Systems (CASES'08), Atlanta, GA,
pp. 255-264, October 2008.
-
Code Transformations for Energy-Efficient Device Management .
T. Heath, E. Pinheiro, J. Hom, U. Kremer, and R. Bianchini.
IEEE Transactions on Computers 53(8), August 2004.
-
Parametric Analysis For Adaptive Computation
Offloading,
Cheng Wang and Zhiyuan Li,
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'04), Washington, DC, June 9-11, 2004.
-
The Design, Implementation, and Evaluation
of a Compiler Algorithm for CPU Energy Reduction .
C-H. Hsu and U. Kremer.
ACM SIGPLAN Conference on Programming Language Design and
Implementation (PLDI'03),
San Diego, CA, June 2003.
-
A Compilation Framework for Power and Energy Management on
Mobile Computers .
U. Kremer, J. Hicks and J. Rehg,
Proceedings of the 14th International Workshop on Parallel Computing (LCPC'01), August 2001.
Also available as Technical Report DCS-TR446,
Department of Computer Science, Rutgers University, June 2001.
- October 1, 8, and 15 -- Topic: Sarana and other programming
architectures for dynamic networks
-
Adaptive Spatiotemporal Node Selection in Dynamic Networks.
Pradip Hari, John McCabe, Jonathan Banafato, Marcus Henry, Kevin Ko, Emmanouil Koukoumidis,
Ulrich Kremer, Margaret Martonosi, and Li-Shiuan Peh
International Conference on Parallel
Architectures and Compilation Techniques (PACT'10),
Vienna, Austria, September 2010.
Presenter: Yogesh Padmanaban
-
Reliable and Efficient Programming Abstractions for Wireless Sensor
Networks,
N. Kothari, R. Gummadi, T. Millstein, and R. Govindan,
ACM SIGPLAN Conference on Programming Language Design and
Implementation (PLDI'07), San Diego, CA, June 2007.
Presenter: Mohan Dhawan
-
The Regiment Macroprogramming System.
R. Newton, G. Morrisett, and M. Walsh,
International Conference on Information Processing in Sensor Networks
(IPSN'07), Cambridge, MA, April 2007.
Presenter: David Menendez
-
Green: A Framework for Supporting Energy-Conscious Programming using
Controlled Approximation,
W. Baek and T. Chilimbi,
ACM SIGPLAN Conference on Programming Language Design and
Implementation (PLDI'10), Toronto, Canada, June 2010.
Presenter: Ashwin Narayan
-
GUESSTIMATE: A Programming Model for Collaborative Distributed Systems ,
K. Rajan, S. Rajamani, and S. Yaduvanshi,
ACM SIGPLAN Conference on Programming Language Design and
Implementation (PLDI'10), Toronto, Canada, June 2010.
Presenter: Vinayak Ravi
Further readings:
- Topic: AUV Programming and Operations --
Readings:
-
Slocum Gliders: Robust and Ready,
O. Schofield, L. Creed, J. Graver, C. Haldeman, J. Kerfoot,
H. Roarty, C. Jones, D. Webb, and S. Glenn,
Journal of Field Robotics 24(6), 2007, Wiley Periodicals, Inc.,
pp. 473-485.
-
A Robust Layered Control System for a Mobile Robot ,
Rodney Brooks, IEEE Journal of Robotics and Automation,
Vol. RA-2, No.1, March 1986, p.14-28.
-
Task Configuration With Layered Control,
James Bellingham and John Leonard, IARP Second Workshop on
Mobile Robots for Subsea Environments, Monterey, CA, May 1994.
-
A Programming Architecture for Smart Autonomous Underwater Vehicles,
H.C. Woithe and U. Kremer, IEEE International
Conference on Intelligent Robots and Systems (IROS'09),
St. Louis, Missouri, October 2009.
-
Slocum Glider Energy Measurement and Simulation Infrastructure,
H.C. Woithe, I. Chigirev, D. Aragon, M. Iqbal,
Y. Shames, S. Glenn, O. Schofield, I. Seskar, and
U. Kremer, IEEE Oceans Conference, Sydney, Australia, May 2010.
-
An Interactive Slocum Glider Flight Simulator,
H.C. Woithe and U. Kremer, IEEE Oceans Conference,
Seattle, WA, September 2010.
-
Scripting Language for State Configured Layered Control
of the Tethys Long Range Autonomous Underwater,
M. Godin, IEEE Oceans Conference, Seattle, WA, September 2010.
-
Thermocline Tracking Based on Peak-Gradient Detection by
an Autonomous Underwater Vehicle,
Y. Zhang, IEEE Oceans Conference, Seattle, WA, September 2010.
- Topic: Many-core, power-aware parallel programming --
Intel's 48 core SCC system
Readings:
- Topic: Other issues in cyber-phycial systems
- security and trust
- privacy (e.g.: location)
- battery technology
- Project discussions
Small Power Measurement Projects
The goal of the first project is to make you appreciate the challenges
involved in measuring power and energy in a real system. You will
perform power measurements on a desk top system available in the
EEL lab (Core 334). A short description of the overall
power measurement infrastructure, and the initial project is
available by clicking
here.
A short project report (no more than 3 pages in pdf) is due on
October 22.
Other projects of interest to us would be:
- Communication costs of the Slocum Glider (satellite phone and
FreeWave)
- Power distribution of sensors/components of Nokia N900
(display, processor, communication)
- Impact of cache locality on CPU power/energy consumption
- ADCP and Bio-puck sensors power consumption profiles
How to Survive Graduate School, Keep the Big Picture in Mind, and
More
Last updated by Ulrich Kremer at 11:35pm on September 2, 2010