SlideShare a Scribd company logo
1 of 2
Download to read offline
Exploiting Parallelism in Mobile Devices
Arghya Chatterjee,Timothy Newton, Tom Roush, Hunter Tidwell, Vivek Sarkar
Department of Computer Science, Rice University, USA
(arghya, kgmstwo, twr1, wht1, vsarkar) @rice.edu
Abstract
The computational heart of modern mobile devices such as
smartphones, tablets, and wearables is a powerful system-
on-chip (SoC) with rich parallelism and heterogeneity.
While the hardware parallelism of these mobile systems
continues to increase year-over-year, they remain resource
constrained with respect to power consumption and thermal
dissipation. Efficient use of multi-core processors in mobile
devices is a key requirement for improving performance,
while staying within the power and thermal limits of mobile
devices.
Categories and Subject Descriptors D.1.3 [Programming
Techniques]: Concurrent Programming - Parallel Program-
ming
Keywords Mobile devices, parallel programming, multi-
core, Habanero Java library, abstraction
1. Motivation
The state of the art approach is to re-use or develop custom
computing libraries such as OpenIMAJ [3] and OpenCV [6]
with their own specific parallel programming abstractions.
However, this approach suffers from the fact that the pro-
grammers need to understand the library specific abstrac-
tions for development, tune their applications accordingly,
and learn different approaches to parallelism in different li-
braries.
To address this challenge, we explore parallel program-
ming for mobile devices by using the Habanero Java parallel
programming library (HJlib) [7]. HJlib offers a wide variety
of general structured parallel programming abstraction, that
make extensive use of Java 8’s lambda expressions and can
be composed with each other with well-defined semantics.
This single-library approach shortens the learning curve for
adding parallelism to a wide range of Android applications,
since the same set of HJlib primitives can be used in differ-
ent application domains. Prior to this work, it was unknown
if HJlib would work on Android’s Dalvik VM. This work
demonstrates that HJlib provides a viable approach for ap-
plication developers to exploit the multi-core architecture of
modern mobile devices more productively than with existing
approaches.
2. Habanero Java Library (HJlib)
This work uses HJlib, developed at Rice University as a
part of the Habanero Extreme Scale Software Research
Project [2], as our research vehicle. HJlib is a JVM-based
parallel programming library that integrates a wide range of
parallel programming constructs ( async, finish, for-
all, isolated, futures, actors, phasers) into a
single programming system, there by enabling unique and
rich combinations of these constructs. As a high-level par-
allel programming model, HJlib makes it easier to focus on
general parallel programming concepts without getting into
the low-level details. We choose HJlib for two primary rea-
sons: a ) its library-based implementation in Java 8, and b )
its ease of programmability on Android platforms.
3. Evaluation
As part of the exploration of HJlib for parallelism on An-
droid phones, we investigated the Android Image Manipu-
lation, the Android Image Filtration and the Face Replace
applications. These applications are parallelized using the
Habanero programming model constructs (such as async,
finish) by adding HJlib as one of the third-party libraries
to the development flow. Our evaluation uses a Nexus 4
smart phone with a quad-core Qualcomm Snapdragon S4
Pro (APQ8064) processor [1] on Android 4.1. The remain-
der of this section summarizes the characteristics and perfor-
mance evaluation of each of these applications.
3.1 Android Image Manipulation
Android Image Manipulation is an existing application built
with OpenCV, a well-known computer vision library [5], to
apply various filters to a real-time image using the phone’s
camera. The most time-consuming task in the application
is applying a sepia filter on the image. We parallelized the
sepia filter module using the async and finish constructs
available in HJlib.
Permission to make digital or hard copies of part or all of this work for personal or
classroom use is granted without fee provided that copies are not made or distributed
for profit or commercial advantage and that copies bear this notice and the full citation
on the first page. Copyrights for third-party components of this work must be honored.
For all other uses, contact the Owner/Author.
Copyright is held by the owner/author(s).
SPLASH Companion’15, October 25–30, 2015, Pittsburgh, PA, USA
ACM. 978-1-4503-3722-9/15/10
http://dx.doi.org/10.1145/2814189.2817273
38
Figure 1 shows the performance (speedup relative to sequen-
tial) of the parallelized application while applying the sepia
filter. As can be seen from the figure, the parallel version
of the application on four worker threads performs 1.89⇥
faster relative to the sequential version. This speedup is re-
flected in a visible improvement in the responsiveness of the
application running on the phone.
Figure 1: Speedup of the Image Manipulation with diff numbers of
worker threads. Seq. execution time is 3.897 frames per sec
3.2 Android Image Filtration
Android Image Filtration is another application that applies
various effects such as adding different filters, adjusting
color, and adjusting contrast. It is written in pure Java, and
it loops through all pixels one after another to alter an im-
age. As updating a pixel is independent of other pixels, we
parallelize the application by spawning a task for each row
of pixels in the image using the parallel programming con-
structs (async, finish) provided by HJlib.
As can be seen from Figure 2, we achieve a maximum
speedup of 2.61⇥ with the parallel version on four worker
threads relative to the sequential version of the application.
Figure 2: Speedup of the Image Filtration with different numbers
of worker threads and varied image size
3.3 Face Replace
FaceReplace is another existing application which consid-
ers two input image files (source, target) and matches a face
(smaller sub image) from source to the face on the target.
The original application was implemented in the earlier Ha-
banero Hava language based on Java 5, as a part of the
Parachute Project [4]. In this work, we rewrote the appli-
cation using HJlib. Figure 3 shows 3⇥ speedup of the appli-
cation written using the actors constructs from HJlib with
four threads.
Figure 3: Speedup of the Face Replace application with different
numbers of worker threads
4. Conclusions and Future Work
This work is motivated by the observation that modern mo-
bile devices are equipped with heterogeneous and multi-core
processors for rich parallelism. In this work, we enable ap-
plication developers to effectively exploit the parallel com-
puting capabilities of modern mobile platforms while re-
ducing programmer burden. The benefits of our approach
are expected to increase as the number of cores in mo-
bile devices increases. In the future, we like to explore us-
ing some advanced constructs offered by HJlib such as
barriers, phasers and data-driven tasks for bet-
ter performance and scalability of the mobile applications.
Exploring heterogeneous workloads, usage of our custom
runtime/thread scheduler, and portability of the applications
on different mobile architectures are also of future interest.
Acknowledgments
We would like to thank Shams Imam, Max Grossman, and
Prasanth Chatarasi for discussions on HJlib, and for their
feedback on earlier drafts of this paper.
References
[1] LG Nexus 4 E960 - Full Phone Specs. http://www.
gsmarena.com/lg_nexus_4_e960-5048.php, 2012.
[2] Habanero extreme scale software research project.
https://wiki.rice.edu/confluence/display/
HABANERO/Habanero+Extreme+Scale+Software+
Research+Project, 2014. Accessed: 2014-07-25.
[3] OpenIMAJ:Intelligent Multimedia Analysis in Java. http://
www.openimaj.org/tutorial/parallel-processing.
html, 2014.
[4] Parachute Project. http://formalverification.cs.
utah.edu/parachute, 2014.
[5] Android Image Manipulations using OpenCV.
http://opencv.org/platforms/android/
opencv4android-samples.html, 2015.
[6] OpenCV. opencv.org, 2015.
[7] S. Imam and V. Sarkar. Habanero-Java Library: a Java 8
Framework for Multicore Programming. In PPPJ’14. ACM,
2014.
39

More Related Content

Similar to Paper

RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453
Shekhar Parkhi
 

Similar to Paper (20)

Cross platform Web apps
Cross platform Web appsCross platform Web apps
Cross platform Web apps
 
Building A Linux Cluster Using Raspberry PI #1!
Building A Linux Cluster Using Raspberry PI #1!Building A Linux Cluster Using Raspberry PI #1!
Building A Linux Cluster Using Raspberry PI #1!
 
Cross Platform Development Using Flutter
Cross Platform Development Using FlutterCross Platform Development Using Flutter
Cross Platform Development Using Flutter
 
Xamarin vs React Native_ Which one is good for Mobile app development.pdf
Xamarin vs React Native_ Which one is good for Mobile app development.pdfXamarin vs React Native_ Which one is good for Mobile app development.pdf
Xamarin vs React Native_ Which one is good for Mobile app development.pdf
 
RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453
 
React Native Guide A Hybrid Framework for Mobile Apps
React Native Guide A Hybrid Framework for Mobile AppsReact Native Guide A Hybrid Framework for Mobile Apps
React Native Guide A Hybrid Framework for Mobile Apps
 
Advantages of React Native for Mobile App Development.pdf
Advantages of React Native for Mobile App Development.pdfAdvantages of React Native for Mobile App Development.pdf
Advantages of React Native for Mobile App Development.pdf
 
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BD...
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BD...Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BD...
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BD...
 
An Integrated Prototyping Environment For Programmable Automation
An Integrated Prototyping Environment For Programmable AutomationAn Integrated Prototyping Environment For Programmable Automation
An Integrated Prototyping Environment For Programmable Automation
 
React Native: The Future of Hybrid Application Development
React Native: The Future of Hybrid Application DevelopmentReact Native: The Future of Hybrid Application Development
React Native: The Future of Hybrid Application Development
 
Software Engineering 2014
Software Engineering 2014Software Engineering 2014
Software Engineering 2014
 
Wecreate
WecreateWecreate
Wecreate
 
Towards high performance computing(hpc) through parallel programming paradigm...
Towards high performance computing(hpc) through parallel programming paradigm...Towards high performance computing(hpc) through parallel programming paradigm...
Towards high performance computing(hpc) through parallel programming paradigm...
 
Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
 Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
 
App Development Made Easy Why React Native Should Be Your Top Pick.pdf
App Development Made Easy Why React Native Should Be Your Top Pick.pdfApp Development Made Easy Why React Native Should Be Your Top Pick.pdf
App Development Made Easy Why React Native Should Be Your Top Pick.pdf
 
Demo Lecture 01 Notes.pptx by Sabki Kaksha
Demo Lecture 01 Notes.pptx by Sabki KakshaDemo Lecture 01 Notes.pptx by Sabki Kaksha
Demo Lecture 01 Notes.pptx by Sabki Kaksha
 
Demo Lecture 01 Notes paid , course notes
Demo Lecture 01 Notes paid , course notesDemo Lecture 01 Notes paid , course notes
Demo Lecture 01 Notes paid , course notes
 
robocity2013-jderobot
robocity2013-jderobotrobocity2013-jderobot
robocity2013-jderobot
 
Mannu_Kumar_CV
Mannu_Kumar_CVMannu_Kumar_CV
Mannu_Kumar_CV
 
Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for Robotics
 

Paper

  • 1. Exploiting Parallelism in Mobile Devices Arghya Chatterjee,Timothy Newton, Tom Roush, Hunter Tidwell, Vivek Sarkar Department of Computer Science, Rice University, USA (arghya, kgmstwo, twr1, wht1, vsarkar) @rice.edu Abstract The computational heart of modern mobile devices such as smartphones, tablets, and wearables is a powerful system- on-chip (SoC) with rich parallelism and heterogeneity. While the hardware parallelism of these mobile systems continues to increase year-over-year, they remain resource constrained with respect to power consumption and thermal dissipation. Efficient use of multi-core processors in mobile devices is a key requirement for improving performance, while staying within the power and thermal limits of mobile devices. Categories and Subject Descriptors D.1.3 [Programming Techniques]: Concurrent Programming - Parallel Program- ming Keywords Mobile devices, parallel programming, multi- core, Habanero Java library, abstraction 1. Motivation The state of the art approach is to re-use or develop custom computing libraries such as OpenIMAJ [3] and OpenCV [6] with their own specific parallel programming abstractions. However, this approach suffers from the fact that the pro- grammers need to understand the library specific abstrac- tions for development, tune their applications accordingly, and learn different approaches to parallelism in different li- braries. To address this challenge, we explore parallel program- ming for mobile devices by using the Habanero Java parallel programming library (HJlib) [7]. HJlib offers a wide variety of general structured parallel programming abstraction, that make extensive use of Java 8’s lambda expressions and can be composed with each other with well-defined semantics. This single-library approach shortens the learning curve for adding parallelism to a wide range of Android applications, since the same set of HJlib primitives can be used in differ- ent application domains. Prior to this work, it was unknown if HJlib would work on Android’s Dalvik VM. This work demonstrates that HJlib provides a viable approach for ap- plication developers to exploit the multi-core architecture of modern mobile devices more productively than with existing approaches. 2. Habanero Java Library (HJlib) This work uses HJlib, developed at Rice University as a part of the Habanero Extreme Scale Software Research Project [2], as our research vehicle. HJlib is a JVM-based parallel programming library that integrates a wide range of parallel programming constructs ( async, finish, for- all, isolated, futures, actors, phasers) into a single programming system, there by enabling unique and rich combinations of these constructs. As a high-level par- allel programming model, HJlib makes it easier to focus on general parallel programming concepts without getting into the low-level details. We choose HJlib for two primary rea- sons: a ) its library-based implementation in Java 8, and b ) its ease of programmability on Android platforms. 3. Evaluation As part of the exploration of HJlib for parallelism on An- droid phones, we investigated the Android Image Manipu- lation, the Android Image Filtration and the Face Replace applications. These applications are parallelized using the Habanero programming model constructs (such as async, finish) by adding HJlib as one of the third-party libraries to the development flow. Our evaluation uses a Nexus 4 smart phone with a quad-core Qualcomm Snapdragon S4 Pro (APQ8064) processor [1] on Android 4.1. The remain- der of this section summarizes the characteristics and perfor- mance evaluation of each of these applications. 3.1 Android Image Manipulation Android Image Manipulation is an existing application built with OpenCV, a well-known computer vision library [5], to apply various filters to a real-time image using the phone’s camera. The most time-consuming task in the application is applying a sepia filter on the image. We parallelized the sepia filter module using the async and finish constructs available in HJlib. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author. Copyright is held by the owner/author(s). SPLASH Companion’15, October 25–30, 2015, Pittsburgh, PA, USA ACM. 978-1-4503-3722-9/15/10 http://dx.doi.org/10.1145/2814189.2817273 38
  • 2. Figure 1 shows the performance (speedup relative to sequen- tial) of the parallelized application while applying the sepia filter. As can be seen from the figure, the parallel version of the application on four worker threads performs 1.89⇥ faster relative to the sequential version. This speedup is re- flected in a visible improvement in the responsiveness of the application running on the phone. Figure 1: Speedup of the Image Manipulation with diff numbers of worker threads. Seq. execution time is 3.897 frames per sec 3.2 Android Image Filtration Android Image Filtration is another application that applies various effects such as adding different filters, adjusting color, and adjusting contrast. It is written in pure Java, and it loops through all pixels one after another to alter an im- age. As updating a pixel is independent of other pixels, we parallelize the application by spawning a task for each row of pixels in the image using the parallel programming con- structs (async, finish) provided by HJlib. As can be seen from Figure 2, we achieve a maximum speedup of 2.61⇥ with the parallel version on four worker threads relative to the sequential version of the application. Figure 2: Speedup of the Image Filtration with different numbers of worker threads and varied image size 3.3 Face Replace FaceReplace is another existing application which consid- ers two input image files (source, target) and matches a face (smaller sub image) from source to the face on the target. The original application was implemented in the earlier Ha- banero Hava language based on Java 5, as a part of the Parachute Project [4]. In this work, we rewrote the appli- cation using HJlib. Figure 3 shows 3⇥ speedup of the appli- cation written using the actors constructs from HJlib with four threads. Figure 3: Speedup of the Face Replace application with different numbers of worker threads 4. Conclusions and Future Work This work is motivated by the observation that modern mo- bile devices are equipped with heterogeneous and multi-core processors for rich parallelism. In this work, we enable ap- plication developers to effectively exploit the parallel com- puting capabilities of modern mobile platforms while re- ducing programmer burden. The benefits of our approach are expected to increase as the number of cores in mo- bile devices increases. In the future, we like to explore us- ing some advanced constructs offered by HJlib such as barriers, phasers and data-driven tasks for bet- ter performance and scalability of the mobile applications. Exploring heterogeneous workloads, usage of our custom runtime/thread scheduler, and portability of the applications on different mobile architectures are also of future interest. Acknowledgments We would like to thank Shams Imam, Max Grossman, and Prasanth Chatarasi for discussions on HJlib, and for their feedback on earlier drafts of this paper. References [1] LG Nexus 4 E960 - Full Phone Specs. http://www. gsmarena.com/lg_nexus_4_e960-5048.php, 2012. [2] Habanero extreme scale software research project. https://wiki.rice.edu/confluence/display/ HABANERO/Habanero+Extreme+Scale+Software+ Research+Project, 2014. Accessed: 2014-07-25. [3] OpenIMAJ:Intelligent Multimedia Analysis in Java. http:// www.openimaj.org/tutorial/parallel-processing. html, 2014. [4] Parachute Project. http://formalverification.cs. utah.edu/parachute, 2014. [5] Android Image Manipulations using OpenCV. http://opencv.org/platforms/android/ opencv4android-samples.html, 2015. [6] OpenCV. opencv.org, 2015. [7] S. Imam and V. Sarkar. Habanero-Java Library: a Java 8 Framework for Multicore Programming. In PPPJ’14. ACM, 2014. 39