CS  

2014

7  31 High Performance Computing on Mobile Devices 





1331098 MARTINEZ NORIEGA Edgar Josafat
1.

computing platform and programming model enables

Introduction

 GPGPU (General Purpose Computing on Graphics

dramatic increases in computing performance byProcessors Units) has become one of the best paradigms

harnessing the power of GPU. Easily using C /C++ ,tobuilt

Fortran, Java or Python (between the most popularsupercomputers. Nowadays 2 / 10 supercomputers

languages that support CUDA) we can access to theutilizes GPU’s to achieve TFlops (floating operation perdifferent memory spaces of GPU fig 1 and manage

second) [1]. GPU’s are designed with massively

thousands of threads to achieve great performance inprogrammable parallel processors, different memory

our applications.

acceleratescientificapplications

andhierarchy and many core chips, thus are reallyattractive due to its performance/cost benefit. NVIDIA

3.

DS-CUDA

was one of the pioneers to offer an easy way to program

DS-CUDA is a middleware that allows you to manage

and develop for GPU’s through CUDA (ComputeNVIDIA’s GPUs on a distributed network. A single

Unified Device Architecture), released in 2006 [2].

client node and various server nodes compose one

Mobile devices are becoming another interesting way to

DS-CUDA system. The server nodes have one or moreinteract with computers due to its specific andCUDA capable GPUs that are handled by server

particular capabilities: mobility, portability, low powerprocesses. An application on the client side can use

consumption, touchscreen, connectivity, between otherthese parallel devices to process data without having acapabilities. In this sense, applications are changing,physical GPU. The program sees all GPUs contained

and also the way to interact and visualize data. Mobile

into a cluster as if they were actually attached to thedevices are dotted with GPU’s as well, however theseclient

ones cannot be programed easily to achieve more

GPU-virtualization tool at source code level. When theperformance than only using the mobile processor e.g.

clientARM.

preprocessor handles the correct wrapper function,

To merge high performance computing and mobile

which communicates with the server nodes through andevices, we propose the usage of Distributed Shared

InfiniBand (IB-Verb) or TPC socket. A more detailed

CUDA (DS-CUDA). This new technology allows use one

description is on another paper [3].

node.
calls

Therefore,
nativeDS-CUDACUDAAPI,istheakindof

DS-CUDAor many NVIDIA’s GPU from our local network. We
implement a molecular dynamics simulation on Tablet
device using an external GPU (from our local network)to accelerate its performance.

4.

Proposal System Architecture
On Figure 2, we show the proposed system. The

mobile device, client node, is a Nexus 7 tablet running
Android 4.3. A PC (server node) with 2 GeForce 460

2.

CUDA

GTX GPUs and DS-CUDA is the server node. The PC

 NVIDIA’s CUDA was released on 2006 with theand the tablet are connected in the same LAN throughintroduction of GeForce 8800 GTX. This new parallel

wireless network. Table 1 summarizes

Fig 2: Proposal system architecture.

Fig 1: Hierarchy of CUDA memory.

CS  

2014

Client NodeGPU

ARM-Tegra 3, Quad-core, 1.7 GHz.

Tablet Nexus
7Memory

1GiB

GPU

N/AOS

Android 4.3

CPUIntel Core i7 920, 2.7GHz, 8 coresMemory

6 GiB

GPUx2

NVIDIA GeForce 460 GTX,Server NodePC6.

Results

Table 3 shows the performance of the molecular
dynamics simulation between NaCl particles.

7 Multiprocessors,
1.3 GHz

8 Particles
Nexus 7
Ethernet

336 CUDA cores
Global memory 1024MB

Interconnect

7  31 

100BaseOSUbuntu 12.04 x86 Linux

Nexus 7, DS-CUDA
wireless (1m)

CUDA

Driver 310.32, toolkit 4.1, SDK 4.1

Nexus

Ethernet

1 Gibit/sec (theoretical throughput)

ARM-Tegra 3

Wireless

39 Mbit/sec

PC, Native CUDA,

802.11n@2.
4GHz

7,CPU,

1728 Particles

5832 Particles

0.003 Gflops

29.306 Gflops

99.887 Gflops

0.001 Gflops

9.86 Gflops

34.879 Gflops

0.052 Gflops

0.054 Gflops

0.054 Gflops

0.1 Gflops

391.3 Gflops

438.7 Gflops

GeForce 460 GTX.

Table 3: NaCl Molecular Dinamycs Force Performance

Table 1. System components specifications.

5.

For a low amount of particles, CPU shows better

Molecular Dynamics NaCl Simulation.
We performed a molecular dynamics simulation onAndroid tablet. A particle conglomerate of NaCl isshown and its behavior under vacuum level. Tosi-Fumi
potential [4] is used to describe the interaction between
atoms. This potential de- scribes a Coulomb term, arepulsion

term,

adipole-dipoletermandadipole-quadruple term, where qi and qj are electriccharges and r is the distance between them. Initially thesystem is equilibrated at 300 o K.

φij =qi q j(σ + σ j − r) Cij Dij+ Aij B exp[ i] − 6 − 8 ... (1)rρrr

performance than GPU, due to sending and receiving
memory for a few particles. However, for a bunch
amount of particles, latency and bottleneck of memory
through the net is hide. With DS-CUDA we achieved
almost a quarter of performance between using
DS-CUDA with Tablet and native CUDA. We outrange
the original Tablet CPU performance for more than 1
800 times faster calculations on NaCl molecular
dynamics with 5832 particles.

7.

Conclusions
We merge performance computing with mobile

devices showing a better performance of molecular
dynamics simulation on tablet using DS-CUDA. For
future work we intend to make a thorough analysis ofmemory transfer. A model will be presented to compare
theoretical and practical approaches.

References
Table 2: Parameters of eq (1)B = 3.15A-1.

In order to compute eq. (1) for all bodies in the system,
we allocate all parameters mentioned in table 1 insideof constant memory and send a fraction of each qi ion toshared memory. Thus, we update the force for each qj
within each block of threads, keeping this result inshared memory as well. Finally we apply reduction sum
in each thread block to obtain the complete force foreach particle.
We used OpenGL ES 1.1 to render all particles in thesystem. Using JNI (Java Native Interface) [6], all the[1] http://www.top500.or/ TOP500 supercomputers
website [retrieved: June 2014 List][2] The NVIDIA website.
https://developer.nvidia.com/category/zone/cuda-zone[retrieved: march, 2014][3] Atsushi Kawai, Kenji Yasuoka, Kazuyuki Yoshikawa,and Tetsu Narumi, “Distributed-Shared CUDA:
Virtualization of Large-Scale GPU Systems for
Programability and Reliability”, The FourthInternational Conference on Future Computational
Technologies and Applications, Nice, France, 2012.

main code for the n-body simulation is written on C

[4] M.P. Tosi, F.G Fumi, “J. Phys. Chem. Solids”, 25,

language. On this way, we can use DS-CUDA libraries1964, 45.

and take advantage of faster computation rather thanover Java code.