TY - GEN
T1 - Reflex
T2 - 17th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2012
AU - Lin, Felix Xiaozhu
AU - Wang, Zhen
AU - Likamwa, Robert
AU - Zhong, Lin
PY - 2012/3/28
Y1 - 2012/3/28
N2 - To accomplish frequent, simple tasks with high efficiency, it is necessary to leverage low-power, microcontroller-like processors that are increasingly available on mobile systems. However, existing solutions require developers to directly program the low-power processors and carefully manage inter-processor communication. We present Reflex, a suite of compiler and runtime techniques that significantly lower the barrier for developers to leverage such low-power processors. The heart of Reflex is a software Distributed Shared Memory (DSM) that enables shared memory objects with release consistency among code running on loosely coupled processors. In order to achieve high energy efficiency without sacrificing performance much, the Reflex DSM leverages (i) extreme architectural asymmetry between low-power processors and powerful central processors, (ii) aggressive compile-time optimization, and (iii) a minimalist runtime that supports efficient message passing and event-driven execution. We report a complete realization of Reflex that runs on a TI OMAP4430-based development platform as well as on a custom tri-processor mobile platform. Using smartphone sensing applications reported in recent literature, we show that Reflex supports a programming style very close to contemporary smartphone programming. Compared to message passing, the Reflex DSM greatly reduces efforts in programming heterogeneous smartphones, eliminating up to 38% of the source lines of application code. Compared to running the same applications on existing smartphones, Reflex reduces the average system power consumption by up to 81%.
AB - To accomplish frequent, simple tasks with high efficiency, it is necessary to leverage low-power, microcontroller-like processors that are increasingly available on mobile systems. However, existing solutions require developers to directly program the low-power processors and carefully manage inter-processor communication. We present Reflex, a suite of compiler and runtime techniques that significantly lower the barrier for developers to leverage such low-power processors. The heart of Reflex is a software Distributed Shared Memory (DSM) that enables shared memory objects with release consistency among code running on loosely coupled processors. In order to achieve high energy efficiency without sacrificing performance much, the Reflex DSM leverages (i) extreme architectural asymmetry between low-power processors and powerful central processors, (ii) aggressive compile-time optimization, and (iii) a minimalist runtime that supports efficient message passing and event-driven execution. We report a complete realization of Reflex that runs on a TI OMAP4430-based development platform as well as on a custom tri-processor mobile platform. Using smartphone sensing applications reported in recent literature, we show that Reflex supports a programming style very close to contemporary smartphone programming. Compared to message passing, the Reflex DSM greatly reduces efforts in programming heterogeneous smartphones, eliminating up to 38% of the source lines of application code. Compared to running the same applications on existing smartphones, Reflex reduces the average system power consumption by up to 81%.
KW - distributed shared memory
KW - energy-efficiency
KW - heterogeneous systems
KW - mobile systems
UR - http://www.scopus.com/inward/record.url?scp=84863345817&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84863345817&partnerID=8YFLogxK
U2 - 10.1145/2150976.2150979
DO - 10.1145/2150976.2150979
M3 - Conference contribution
AN - SCOPUS:84863345817
SN - 9781450307598
T3 - International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS
SP - 13
EP - 24
BT - ASPLOS XVII - 17th International Conference on Architectural Support for Programming Languages and Operating Systems
Y2 - 3 March 2012 through 7 March 2012
ER -