Mirage: a coherent distributed shared memory design
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
Implementation and performance of Munin
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
Shasta: a low overhead, software-only approach for supporting fine-grain shared memory
Proceedings of the seventh international conference on Architectural support for programming languages and operating systems
MicroC/OS-II: the real-time kernel
MicroC/OS-II: the real-time kernel
Heterogeneous Distributed Shared Memory
IEEE Transactions on Parallel and Distributed Systems
Memory safety without runtime checks or garbage collection
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Turducken: hierarchical power management for mobile devices
Proceedings of the 3rd international conference on Mobile systems, applications, and services
The low power energy aware processing (LEAP)embedded networked sensor system
Proceedings of the 5th international conference on Information processing in sensor networks
Shared memory programming for large scale machines
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
CellSs: a programming model for the cell BE architecture
Proceedings of the 2006 ACM/IEEE conference on Supercomputing
Proceedings of the 6th international conference on Information processing in sensor networks
EXOCHI: architecture and programming environment for a heterogeneous multi-core multithreaded system
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Tapping into the fountain of CPUs: on operating system support for programmable devices
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Merge: a programming model for heterogeneous multi-core systems
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Liquid Metal: Object-Oriented Programming Across the Hardware/Software Boundary
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Programming model for a heterogeneous x86 platform
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
SoundSense: scalable sound sensing for people-centric applications on mobile phones
Proceedings of the 7th international conference on Mobile systems, applications, and services
Somniloquy: augmenting network interfaces to reduce PC energy usage
NSDI'09 Proceedings of the 6th USENIX symposium on Networked systems design and implementation
The multikernel: a new OS architecture for scalable multicore systems
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Helios: heterogeneous multiprocessing with satellite kernels
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Darjeeling, a feature-rich VM for the resource poor
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
uWave: Accelerometer-based personalized gesture recognition and its applications
Pervasive and Mobile Computing
Qilin: exploiting parallelism on heterogeneous multiprocessors with adaptive mapping
Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture
Conservation cores: reducing the energy of mature computations
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
An asymmetric distributed shared memory model for heterogeneous parallel systems
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
Energy-efficient rate-adaptive GPS-based positioning for smartphones
Proceedings of the 8th international conference on Mobile systems, applications, and services
Hera-JVM: a runtime system for heterogeneous multi-core architectures
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
WH '10 Wireless Health 2010
A Primer on Memory Consistency and Cache Coherence
A Primer on Memory Consistency and Cache Coherence
Open data kit sensors: a sensor integration framework for android at the application-level
Proceedings of the 10th international conference on Mobile systems, applications, and services
Improving energy efficiency of personal sensing applications with heterogeneous multi-processors
Proceedings of the 2012 ACM Conference on Ubiquitous Computing
Supporting distributed execution of smartphone workloads on loosely coupled heterogeneous processors
HotPower'12 Proceedings of the 2012 USENIX conference on Power-Aware Computing and Systems
Open data kit 2.0: expanding and refining information services for developing regions
Proceedings of the 14th Workshop on Mobile Computing Systems and Applications
eDoctor: automatically diagnosing abnormal battery drain issues on smartphones
nsdi'13 Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation
SmartCap: user experience-oriented power adaptation for smartphone's application processor
Proceedings of the Conference on Design, Automation and Test in Europe
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Exploiting processor heterogeneity for energy efficient context inference on mobile phones
Proceedings of the Workshop on Power-Aware Computing and Systems
K2: a mobile operating system for heterogeneous coherence domains
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
Hi-index | 0.00 |
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%.