
NSF Org: |
CNS Division Of Computer and Network Systems |
Recipient: |
|
Initial Amendment Date: | September 13, 2018 |
Latest Amendment Date: | September 14, 2021 |
Award Number: | 1646235 |
Award Instrument: | Standard Grant |
Program Manager: |
Sandip Roy
CNS Division Of Computer and Network Systems CSE Directorate for Computer and Information Science and Engineering |
Start Date: | October 1, 2018 |
End Date: | September 30, 2021 (Estimated) |
Total Intended Award Amount: | $448,797.00 |
Total Awarded Amount to Date: | $448,797.00 |
Funds Obligated to Date: |
|
History of Investigator: |
|
Recipient Sponsored Research Office: |
5000 FORBES AVE PITTSBURGH PA US 15213-3890 (412)268-8746 |
Sponsor Congressional District: |
|
Primary Place of Performance: |
NASA Ames Research Park Moffett Field CA US 94035-0001 |
Primary Place of
Performance Congressional District: |
|
Unique Entity Identifier (UEI): |
|
Parent UEI: |
|
NSF Program(s): | CPS-Cyber-Physical Systems |
Primary Program Source: |
|
Program Reference Code(s): |
|
Program Element Code(s): |
|
Award Agency Code: | 4900 |
Fund Agency Code: | 4900 |
Assistance Listing Number(s): | 47.070 |
ABSTRACT
The goal of this research is to enable a broad spectrum of programmers to successfully create apps for distributed computing systems including smart and connected communities, or for systems that require tight coordination or synchronization of time. Creating an application for, say, a smart intersection necessitates gathering information from multiple sources, e.g., cameras, traffic sensors, and passing vehicles; performing distributed computation; and then triggering some action, such as a warning. This requires synchronization and coordination amongst multiple interacting devices including systems that are Internet of Things (IoT) devices that may be connected to safety critical infrastructure. Rather than burden the programmer with understanding and dealing with this complexity, we seek a new programming language, sensor and actuator architecture, and communications networks that can take the programmer's statements of "what to do" and "when to do", and translate these into "how to do" by managing mechanisms for synchronization, power, and communication. This approach will enable more rapid development of these types of systems and can have significant economic development impact.
The proposed approach has four parts: (1) creating a new programming language that embeds the notion of timing islands -- groups of devices that cooperate and are occasionally synchronized; (2) creating a network-wide runtime system that distributes and coordinates the action of code blocks -- portions of the program -- across devices; (3) extending the capabilities of communication networks to improve the ability to synchronize devices and report the quality of synchronization back to the runtime system, enabling adaptive program behavior; and (4) extending device hardware architecture to support synchronization and time-respecting operation.
This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH
Note:
When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external
site maintained by the publisher. Some full text articles may not yet be available without a
charge during the embargo (administrative interval).
Some links on this page may take you to non-federal websites. Their policies may differ from
this site.
PROJECT OUTCOMES REPORT
Disclaimer
This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.
The Internet-of-Things (IoT) promises to provide an ever-growing supply of Internet-connected devices that can collect, analyze, and respond to data about their environments. Applications enabled by the IoT include autonomous driving, in which vehicles must detect and avoid collisions with nearby vehicles, and environmental monitoring, in which sensors can collect and display information, such as current noise or ambient temperature levels, about the surrounding environment. Programming such applications, however, often requires specialized knowledge. In particular, many IoT applications naturally involve multiple physical devices, such as multiple sensors or a sensor and a separate server. Coordinating across these devices, then, may require knowledge of distributed systems and networking, particularly if applications must execute in a time-sensitive manner. Ensuring that data from multiple sensors is collected at approximately the same time, for example, may require synchronizing device clocks, which is nontrivial and energy-consuming at fine time granularities. Indeed, many IoT devices are also energy-constrained, which more generally requires application programmers to be aware of the energy consumption of their applications?often not the case, especially if the programmer does not know the specific hardware on which an application will be run. Such specialized knowledge threatens to bottleneck the widespread deployment of IoT programs, by making their development difficult.
TickTalk includes new language, system, network, and device mechanisms for programmers to easily specify and enforce timing constraints. The first part of the project addressed the specific device- and network-level challenge of designing low-power mechanisms for synchronizing clocks on different physical devices. The main insight is to carefully model delays associated with data transmitted between a given pair of devices, which allows this data to be used for synchronizing clocks on these devices. These synchronization methods, which we call LongShoT, allow TickTalk to execute fine-grained synchronization if required by an application.
In addition to clock synchronization, many applications may have deadlines by which they need to be completed. Thus, at the system level, we designed a framework for representing application programs that cleanly slices them into atomic computation units and codifies their timing constraints (e.g., deadlines by which computations should be completed). This representation allows the program to be easily distributed across multiple hardware devices, e.g., across multiple sensors. We further define a protocol for exchanging information between computation units, which carries information about timing constraints and the order in which computations should be executed. Programs written in this framework can then be optimized to meet timing constraints, e.g., by splitting individual computation units across sufficiently fast physical devices. If timing constraints cannot be met, we design fallback mechanisms that detect that the constraint will be missed and instead execute backup code to avoid catastrophic application failure.
Finally, at the language level, we developed an initial prototype of the language mechanisms that has been packaged together and released as TTPython, which runs on Python3. Our language extends the usual Python programming language, allowing programmers to easily specify application timing constraints by adapting their existing Python programs into the TickTalk framework. Once written in TTPython, programs can take advantage of the system, network, and device mechanisms developed to enforce timing constraints in a low-power fashion.
The project additionally facilitated several educational activities. Two courses at CMU made extensive use of low-power synchronization mechanisms developed during the project: one on Wireless Device Architectures and one on Connected Embedded Systems. Five graduate students and one undergraduate student worked on the project over the past three years. The students participated in weekly all-hands meetings as well as individual research meetings with their faculty advisors. Thus, they gained experience in working on a team with diverse backgrounds and managing a large technical project. The public-facing nature of the TTPython open-source release and CPS IoT Week Student Design Competition further trained the students in presenting their research and demonstrating its practical value to a range of audiences.
Last Modified: 02/07/2022
Modified by: Carlee Joe-Wong
Please report errors in award information by writing to: awardsearch@nsf.gov.