28.06.2014 Views

Brugia Malayi - Clark Science Center - Smith College

Brugia Malayi - Clark Science Center - Smith College

Brugia Malayi - Clark Science Center - Smith College

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Use of GPUs for Crustal Deformation Modeling<br />

Alexandria Julius and Paula Burgi<br />

To use MATLAB to mathematically model geological interactions and resulting deformations between subduction zones and<br />

upper plate faults, calculations are run on two triangular meshes. A loop in the MATLAB code is used to output the same<br />

calculations for subsequent iterations. A computer with a central processing unit (CPU) has fewer cores, greater memory, and<br />

slower memory access than a graphics processing unit (GPU). 1 The GPU allows the iterations of the loop to run simultaneously<br />

when the separate iterations are independent. Maintenance of the results’ accuracy and shortening of the calculation run-time are<br />

the desired performance improvements.<br />

In order to compare the CPU and GPU, we calculated partial derivatives of displacement and strain 2 induced by unit slip<br />

on triangular elements on the CPU and altered the code using a GPU enabling platform called Jacket. This allowed comparison<br />

between an eight processor CPU to 112 and 480 processor GPUs. Jacket requires changes to the CPU code, including renaming<br />

built-in MATLAB functions 3 and the replacement of certain CPU functions that are unsupported by Jacket. MATLAB’s standard<br />

execution is on the CPU, therefore, MATLAB must be told when to move variables and functions onto the GPU. We tested the<br />

code run-times with different variables initially sent to the GPU, to see effects of overhead data transfer time from the CPU to<br />

GPU. When the GPU ran out of memory, the code was altered to move the solutions from the GPU back to the CPU to free<br />

GPU memory.<br />

By troubleshooting the programs, we were able to successfully rewrite the code originally intended to run on the CPU for<br />

the GPU. Figure 1 shows the run-time relationship between the displacement and strain calculations on the CPU and GPU<br />

for varying numbers of triangles (loop iterations). Strain, a more complicated calculation, has a greater speed advantage than<br />

displacement. The graph also shows that speedup of both codes increases with the number of triangles in the mesh. We found<br />

that, while running calculations using single precision (fewer decimal places) was quicker, the error was greater than the results<br />

from double precision calculations.<br />

Because of the inaccuracy of single precision, we conclude that it is desirable to use double precision on the CPU or the<br />

double precision enabled graphics card. For a smaller number of triangles, the advantage of using the GPU is negligible; however<br />

realistically, processing enough data to accurately represent geological processes will require the GPU. (Supported by Jack<br />

Loveless Startup Fund)<br />

Advisor: Jack Loveless<br />

References:<br />

1<br />

Larsen, Torben. 2011. Parallel High Performance Computing With Emphasis on Jacket Based GPU Computing. Aalborg University. 4-71.<br />

2<br />

Meade, BJ. 2007. Algorithms for the Calculation of Exact Displacements, Strains, and Stresses for Triangular Dislocation Elements in a Uniform Elastic Half<br />

Space. Computers & Geosciences 33.8: 1064-1075.<br />

3<br />

AccelerEyes LLC. 2012. Jacket Wiki. http://wiki.accelereyes.com, August 2012.<br />

2012<br />

138

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!