reliable intermittent computers - stanford university talks/2019/brandon_lucia.… · nv for( i =...
TRANSCRIPT
Reliable Intermittent ComputersBrandon Lucia | Assistant Professor, CMU ECEABSTRACT Research Group - https://intermittent.systemswith PhD Students: Kiwan Maeng, Emily Ruppel, Vignesh Balaji
Graham Gobieski, Milijana Surbatovich, Brad Denby, Harsh DesaiPhD Alumni: Alexei ColinAcademic Collaborators: Nathan Beckman (CMU), Michael Bond (OSU), Joseph Devietti (UPenn),…Industry Collaborators: Zac Manchester (Stanford/KickSat)
Alanson Sample (Disney Research Pittsburgh)
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 2
Wearables, sensors, “Internet of Things”, tiny satellites, medical
implants, environment monitoring, security, computational art,
interactive clothing, smart furniture, smart carpets, smart toilet paper
Emerging Devices Everywhere
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 4
Tethered to a power source
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 6
computer (microcontroller)
energy buffer (capacitor)
energy receiver
energy source
Energy harvesting untethers devices
empty space
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 7
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 8
No battery replacements
No battery lifetime limitation
No environmental battery waste
No bulky battery
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 9
energy source
empty space
…but energy is intermittentsoftware becomes inherently unreliable.
—and as a result—
computer (microcontroller)
energy buffer (capacitor)
energy receiver
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 10
Designing for IntermittenceSystem Support for Reliable Intermittence
The Intermittent Execution ModelReasoning About Intermittently-powered Devices
Intermittent & Physically Constrained Computing Platforms
Hardware, Programming Models, System Software
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 11
Running on intermittent energy
Available
Energy
Time
Charging, dead.
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 12
Running on intermittent energy
Available
Energy
Time
“Life Line”
Operating!
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 13
Running on intermittent energy
Available
Energy
Time
“Death Line”Not charging, dead.
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 14
Running on intermittent energy
Available
Energy
Time
Charging, dead.
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 15
Running on intermittent energy
Available
Energy
Time
“Life Line”
Operating!
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 16
Available
Energy
Time
“Death Line”
Computer
shuts down
Computer
reboots
“Life Line”
Intermittent Operation on Harvested Energy
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 17
Available
Energy
Time
Compute ComputeRebootReboot
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 18
Time
Compute Reboot Compute
The Intermittent Execution Model
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 19
Time
The Intermittent Execution Model
Goal: Run programs that take longer than one green box
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 20
void main(void){
for( i = 1 .. 10)
append()
}
void append(){
sz++
buf[sz] = ‘a’
}
/*Store a letter ‘a’ in buf[sz]
and increase sz by one*/
/*Store 10 letters ‘a’ in the buffer*/
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 21
void main(void){
for( i = 1 .. 10)
append()
}
void append(){
sz++
buf[sz] = ‘a’
}
for( i = 1 )
append()sz++
buf[sz] = ‘a’
for( i = 2 )
append()sz++
buf[sz] = ‘a’
REBOOT
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 22
void main(void){
for( i = 1 .. 10)
append()
}
void append(){
sz++
buf[sz] = ‘a’
}
for( i = 1 )
append()
for( i = 1 )
append()sz++
buf[sz] = ‘a’
for( i = 2 )
append()sz++
buf[sz] = ‘a’
REBOOT
REBOOT
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 23
void main(void){
for( i = 1 .. 10)
append()
}
void append(){
sz++
buf[sz] = ‘a’
}
for( i = 1 )
append()
for( i = 2 )
append()
for( i = 3 )
append()
sz++
buf[sz] = ‘a’
sz++
buf[sz] = ‘a’
sz++
buf[sz] = ‘a’
for( i = 1 )
append()
for( i = 1 )
append()sz++
buf[sz] = ‘a’
for( i = 2 )
append()sz++
buf[sz] = ‘a’
REBOOT
REBOOT
REBOOT
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 24
void main(void){
for( i = 1 .. 10)
append()
}
void append(){
sz++
buf[sz] = ‘a’
}
main()append()
for( i = …)
call append()
<loop>
end of main()
Control-flow Graph
buf[sz] = ‘a’
sz++
We can model intermittence as a control-flow problem
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 25
main()append()
for( i = …)
call append()
<loop>
end of main()
Control-flow Graph
Failure Induces
Implicit Control-flow
Intermittent Execution
Challenge:
Implicit control-flow
“back in time” on reboot.
buf[sz] = ‘a’
sz++
Back in time!
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 26
Mixture of Volatile & Non-volatile State
volatile memory (e.g.,
DRAM, SRAM registers)
non-volatile memory
(e.g., Flash, FRAM)
Access latencies growing
similar w/ new technology
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 27
Time
Reboots clear volatile state and
preserve non-volatile state
Persists!
Volatile
State
Non-volatile
State
Clear! Clear! Clear! Clear!
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 28
main()append()
for( i = …)
call append()
<loop>
end of main()
Control-flow Graph
Checkpoint introduce more
compleximplicit control-flow
Intermittent Execution
Challenge:
Implicit control-flow
“back in time” on reboot.
buf[sz] = ‘a’
sz++
Checkpoint Volatile State
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 29
void main(void){
for( i = 1 .. 10)
append()
}
void append(){
sz++
buf[sz] = ‘a’
}
for( i = 1 )
append()
for( i = 2 )
append()
for( i = 3 )
append()
sz++
buf[sz] = ‘a’
sz++
buf[sz] = ‘a’
sz++
buf[sz] = ‘a’
for( i = 1 )
append()
for( i = 1 )
append()sz++
buf[sz] = ‘a’
for( i = 2 )
append()sz++
buf[sz] = ‘a’
REBOOT
REBOOT
REBOOT
Intermittence is a Challenge
Software that is correct with continuous power
can be incorrect in an intermittent execution
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 31
main()append()
for( i = …)
call append()
<loop>
end of main()
buf[sz] = ‘a’
sz++
Intermittence Bug: Out-of-thin-air Values
sz
buf
-1
ckpt
[MSPC ’14; PLDI ‘15]
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 32
main()append()
for( i = …)
call append()
<loop>
end of main()
buf[sz] = ‘a’
sz++
for( i = 1)
sz
buf
0
call append()sz++buf[sz] = ‘a’
‘a’
Intermittence Bug: Out-of-thin-air Values[MSPC ’14; PLDI ‘15]
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 33
main()append()
for( i = …)
call append()
<loop>
end of main()
buf[sz] = ‘a’
sz++
sz
buf
1
‘a’
Error: ’a’ is appended to buf
twice on the i = 1 iteration
for( i = 1)
call append()sz++buf[sz] = ‘a’
for( i = 1)
call append()sz++buf[sz] = ‘a’
‘a’
Intermittence Bug: Out-of-thin-air Values[MSPC ’14; PLDI ‘15]
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 34
for( i = 1)
call append()sz++buf[sz] = ‘a’
for( i = 1)
call append()sz++buf[sz] = ‘a’
Stuck in an implicit
loop for i = 1
for( i = 1)
call append()sz++buf[sz] = ‘a’
for( i = 1)
call append()sz++buf[sz] = ‘a’
for( i = 1)
call append()sz++buf[sz] = ‘a’
call append()
buf[sz] = ‘a’
sz++
for( i = 1)
Intermittence Bug: Out-of-thin-air Values[MSPC ’14; PLDI ‘15]
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 35
sz
buf
11
‘a’‘a’ ‘a’‘a’‘a’‘a’ ‘a’‘a’ ‘a’‘a’ ‘a’‘a’
Stuck in an implicit
loop for i = 1
call append()
buf[sz] = ‘a’
sz++
for( i = 1)
Memory contents depend on the availability of
harvestable energy and capacitor size!
sz & buf contain corrupt values.
“Out of thin air” value not permitted by any
continuous execution!
Intermittence Bug: Out-of-thin-air Values[MSPC ’14; PLDI ‘15]
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 37
main()
senseProcTx()for( i = …)
call senseProcTx()
<loop>
end of main()
process()
sense()
NV
for( i = 1)
Energy cost atomic span exceeds energy capacity
Intermittence Challenge: Livelock & Non-termination
Affected code need not even
modify NV storage!
[CASES ’15, ASPLOS ’16, ASPLOS ‘18, CC ‘18, OSDI ’18, PLDI ‘19]
Code reboots indefinitely on intermittent power.
If energy cost exceeds
full capacitor charge:
never completes 1 iteration
for( i = 1)
call senseProcTx()
transmit()
Variable E cost?
Unpredictable livelock
call senseProcTx()
call sense () call sense ()
call process () call process ()
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 38
main()
checkpoint
Sense_pressure()
end of main()
Checkpoint between I/O operations that should
execute together leaves I/O inconsistent
Intermittence Challenge: I/O Atomicity & Timeliness
Inconsistent data read at different moments in time
No atomicity control w/ automatic checkpoints
Sense_temp()
checkpoint
Sense_pressure()restore
Sense_temp()
A very long time …
[ASPLOS ’18, PLDI ‘19]
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 39
checkpoint
If( X > max) { BLINK = 1 }
Re-execution of I/O operations leads to non-
idempotent re-execution of part of a program
Intermittence Challenge: I/O Non-Idempotence & Event-Driven I/O
Variation in input values makes normally-idempotent writes non-idempotent
Not all I/O dependent data checkpointed
Sense_temp()checkpoint
Sense_ temp()restore
X = Sense_temp()
Restart from Checkpoint
If( X <= max) { NOBLINK = 1 }
X = Sense_temp()
BLINK = 1 NOBLINK = 1
assert( BLINK ^ NOBLINK )Power Failure
[PLDI ‘19]
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 40
Intermittent software is
unreliable.
Need easy programming
and reliable execution
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 41
Reliable Intermittent ExecutionTask-based Programming Models
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 42
Task-based Intermittent Execution
Chinchilla[OSDI ’18]
DINO[PLDI’15] Chain[OOPSLA’16] Alpaca[OOPSLA’17]
Automatic Intermittent Execution
without Non-termination
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 43
Task-based Intermittent Execution
Task Boundary
Task Boundary
Task Boundary
Task
Task Task
Task
Tasks have atomic all-or-
nothing semantics
Task boundaries selectively
checkpoint volatile and
non-volatile state
No implicit control-flow!
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 44
Chain: Static data multi-versioning
out in in
Task
Channels statically multiversion data
separating inputs from outputs
[Colin, et al OOPSLA ’16]
Tasks exchange data via abstract
channels of non-volatile memory
out
Task
Task
Task
Programmer explicitly defines tasks
and task-flow graph in code
Key limitation: Programmer must
learn new programming model
X X’ X” X””
Y
Y’
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 45
Task
Compiler adds code to automatically
commit copied state back to main memory
[Maeng, et al OOPSLA ’17]
Task
Task
Task
Compiler automatically privatizes data
creating a copy safe to use in a task.
Alpaca: Tasks with Dynamic Privatization
Privatize
Commit
Alpaca tasks are restartable
without a checkpoint of volatile state
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing
task Alert(){
report(S, Cnt);
Cnt++
NextTask Sense }
46
[Maeng, et al OOPSLA ’17]
origin task Sense(){
S=read_sensor()
NextTask CmpAvg }
task CmpAvg(){
for(int i=0; i < 5; i++){
sum += A[i] }
avg = sum / 5
A[head] = S
head = (head+1)%5
if( S > avg*2 ){
NextTask Alert
}
NextTask Sense }
Alpaca: Tasks with Dynamic Privatization
Shared S, Cnt,
A[5],head Alpaca selectively privatizes task-shared variables
Function-as-task means
no need to checkpoint
stack & regs
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 47
for( i = 1)
call append()buf[sz] = ‘a’
sz++
task_boundary
for( i = 2)
task_boundary
call append()
sz++
task_boundary
-1sz
buf
0sz
-1sz
buf
‘a’
0sz
buf
buf[sz] = ‘a’‘a’buf Commit buf and sz
Correctly UpdatedOnly Once!
Tasks Eliminate Surprising Behavior
Task privatizes
buf and sz
Re-execute with consistent
buf and sz!
Implicit flow targetmade explicit
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 48
int NV_Array[1000000];
task_boundary
for( i = 0; i < 1000000; i++){
NV_Array[i] = i;
}
task_boundary
Key Question:
Which data to selectively privatize?
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 49
task_boundary
i = rand(…)
NV_Array[i]++;
task_boundary
NV_Array[1000000] = {0};
NV_Array[1000000] = {…};
int NV_Array[1000000];
task_boundary
i = rand(1000000);
NV_Array[i]++;
task_boundary
Failure-induced
NV-data flow!
Which task-shared data to privatize?
Data written before a failure that may be read after reboot
Failure-induced
NV-data flow!WAR
Dependence
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 50
Prototype Implementations
DINO, Chain, Alpaca
Programming
Model
Task-aware
Compiler
Task Data-flow Analysis
Link to Task Runtime
Channels, Versioning,
Privatization
Task, Channel Definitions
Runtime Library
DINO: Checkpoint & Recovery
Chain: Task Management
Alpaca: Privatization/Commit
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 51
Energy-harvesting
Platform Prototypes
WISP5 Energy-harvesting Device
RF Power Setup
ApplicationsActivity Recognition
(accelerometer+ML)
Cold-chain Equipment Monitor
Multi-granular Sensor Log
Key Result:Applications suffer errors & failures
without our system support for tasks
Deep Neural Networks (MNIST,
OKGoogle, Activity Recognition)[ASPLOS’19]
Custom PCBs
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 52
0
2
4
6
8
10
12
14
16
18
CEM AR RSA CF BF BC
No
rma
lize
d R
un
Tim
e
Alpaca Chain DINO
Alpaca outperforms DINO and Chain
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 53
Chinchilla[OSDI ’18]
Efficient Automatic Checkpoints
without Non-termination
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 54
Chinchilla Supports Safe, Efficient
Checkpoint-based Intermittent Execution
i
A
sum
Non-volatile
i 1
A 2 3 4
sum 2
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 55
Too Few Checkpoints May Cause Non-termination
Cannot reach the
next checkpoint
→ Non-termination
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 57
Too Many Checkpoints Incur High Overhead
High overhead!
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 58
Checkpoint Placement Determines
Efficiency and Correctness
High overhead!Non-terminating!
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 59
Requirements for Checkpoint Insertion
Frequent Low energy variance Compiler-friendly
Basic Block checkpoints avoid non-
termination if no block exceeds device energy
E
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing
0.01
0.1
1
10
100
CEM CF RSA AR BF BC
En
erg
y (
uJ)
Min Avg Max
60
Chinchilla Checks Block Energy to Avoid Non-termination
Energy of an 47uF (small) Capacitor
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 61
Block Energy is Far Below Device EnergyChinchilla’s Block Checkpoints Avoid Non-termination
Energy of an 47uF Capacitor
0.01
0.1
1
10
100
CEM CF RSA AR BF BC
En
erg
y (
uJ)
Min Avg Max
21x
headroom
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 62
Checkpoint Placement Determines
Efficiency and Correctness
High overhead!Non-terminating!Safe!
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 63
Checkpoint Placement Determines
Efficiency and Correctness
High overhead!Non-terminating!
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 64
Chinchilla Selectively Checkpoints to Avoid High Overheads
• Key Idea:
– Checkpointing on each block is worst case reasoning.
– Average case: sufficient energy for multiple blocks to complete
– Chinchilla’s idea: selectively skip checkpoints to avoid high cost
– Gracefully Degrade to worst case checkpoints if necessary
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 65
Chinchilla Uses Timer-Based Selective Checkpointing
Ti:=0
sum:=0
i < A_LEN?
sum:=sum+A[i]
i:=i+1
…
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 66
i:=0
sum:=0
i < A_LEN?
sum:=sum+A[i]
i:=i+1
…
Skip
Chinchilla Uses Timer-Based Selective Checkpointing
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 67
i:=0
sum:=0
i < A_LEN?
sum:=sum+A[i]
i:=i+1
…
Chinchilla Uses Timer-Based Selective Checkpointing
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing
i:=0
sum:=0
i < A_LEN?
sum:=sum+A[i]
i:=i+1
…
Skip
Chinchilla Uses Timer-Based Selective Checkpointing
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 69
i:=0
sum:=0
i < A_LEN?
sum:=sum+A[i]
i:=i+1
…
Skip
Chinchilla Uses Timer-Based Selective Checkpointing
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 70
i:=0
sum:=0
i < A_LEN?
sum:=sum+A[i]
i:=i+1
…
Chinchilla Uses Timer-Based Selective Checkpointing
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 71
i:=0
sum:=0
i < A_LEN?
sum:=sum+A[i]
i:=i+1
…Checkpoint!
Chinchilla Uses Timer-Based Selective Checkpointing
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 72
Chinchilla Adapts its Checkpointing Interval
• Dynamically find the right checkpointing interval
during execution by binary search
• Automatically adjusted on environmental changes
?
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 73
Checkpoint Placement Determines
Efficiency and Correctness
Non-terminating!Safe!
High overhead!Fast!
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing
Chinchilla Is Safe and Efficient
Non-termination if
Alpaca task too large
[van Der Woude
et al OSDI ‘16
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 75
[Lucia, et al PLDI ’15]
Use Chinchilla, Alpaca, Chain and DINO for your research!
http://intermittent.systems | http://github.com/CMUAbstract
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing
80
Intermittent & Physically Constrained Computing Platforms
Hardware, Programming Models, System Software
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 81
Key Insight: Co-design PL, OS, Arch, and power system for intermittent operation
Intermittence-safe HW/SW Systems [ASPLOS 2018]
EDBSat Chip-scale
satellite• 3cmx3cmx4mm, solar power
• Magnetometer + gyro sensors
• Low-power radio (to earth)
• Custom “burst” power system
• Integrated HW/SW diagnostics
• Programmed in intermittence-
safe Chain programming lang.
• Launch partner: KickSat/NASA
• 5cmx5cm, solar/RF power
• 10 sensor array
• Bluetooth Low-energy Radio
• Software-switchable variable-
capacity “burst” power system
• Integrated HW/SW diagnostics
• Supports Alpaca & Chain
intermittent programming langs.
Capybara multi-
sensor platform
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 82
EDBSat is in LEO now!
KickSat-2 Mission w/ Zac Manchester (Stanford)
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 84
Capybara’s Co-designed HW & SW Meet
Dynamically Varying Energy DemandConfigurable HW
Energy StorageProgrammable Task Energy Modes
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 85
EDB: The Energy-interference-free Debugging Toolchain
Energy-interference-free debugging and monitoring
for intermittent, energy-harvesting computers.
Energy-interference-free
debugger
Reboot… …bug!
AssertionsBreakpointsTracingInteractive debuggingEnergy tracingDebug-time I/O& More!
Simultaneously monitor & manipulate program state and energy state.
[Colin, et al. CASES ’15, ASPLOS ’16, IEEE Micro Top Picks ‘16]
Intelligence beyond the Edge
Deep neural network inference optimized for intermittent operation
First demonstration of DNN inference on an intermittent device
SpaceWildlife Monitoring
ASPLOS 2019
Software-Only Neural Intermittent Computing (SONIC) &
TI Accelerated Intermittent Linear algebra Solver (TAILS)
<256 KB Memory 16MHz Clock 100s of Failures/min
Challenge: Resource constrained & intermittent
Jetson TX2 Compute Module
Capacitor-based energy storage
3U CubeSat Nanosatellite
Orbital Edge Computing: Machine inference in camera-equipped computational nanosatellites[GoMACTech’19, CAL’19]
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing
Orbital Edge Computing
Distributed platform designs for
high-performance orbital edge
computing[GoMACTech’19, CAL’19]
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing
Edge Graph Processing
Single-machine processing of
network structured data.[IISWC’18 Best Paper, HPDC ‘19 (in sub)]
Brandon Lucia - Carnegie Mellon University - Challenges of Intermittent Computing 105
Designing for IntermittenceSystem Support for Reliable Intermittence
The Intermittent Execution ModelReasoning About Intermittently-powered Devices
Intermittent Computing PlatformsHardware, Programming Models, System Software
Solving the System Challenges ofIntermittent Energy-harvesting DevicesBrandon Lucia | Assistant Professor, CMU ECEABSTRACT Research Group - https://intermittent.systemswith PhD Students: Kiwan Maeng, Emily Ruppel, Vignesh Balaji
Graham Gobieski, Milijana Surbatovich, Brad Denby, Harsh DesaiPhD Alumni: Alexei Colin,Industry Collaborators: Zac Manchester (Harvard/KickSat)
Alanson Sample (Disney Research Pittsburgh)