Loading...
Thumbnail Image
Publication

Massively parallel engineering simulations on graphics processors: parallelization, synchronization, and approximation

Steuben, John C.
Research Projects
Organizational Units
Journal Issue
Embargo Expires
Abstract
A great deal of scientific advancement, across almost all fields of research, has been achieved by the use of increasingly powerful computer systems. This utility has in turn driven the unceasing development of ever more powerful computing hardware. Due to limitations imposed by the materials and architectures of computer systems the last decade has seen an explosion in parallel computing platforms where computation is shared among several processing units. There have been many realizations of this drive towards parallel computing platforms, spanning from multi-core processors to supercomputers with tens of thousands of computing nodes. This thesis is devoted to the study of one promising parallel computing platform which has been gaining wider usage over the last decade: the Graphics Processing Unit, or GPU. While the original and ongoing purpose of the GPU is to produce graphics output for human consumption, the demanding nature of this task led to an early adoption of parallelism in GPU hardware design. As a result, the modern GPU is a massively parallel processor featuring thousands of computing cores and capable of running billions of "threads," or distinct lines of computation, simultaneously. Consequently the GPU is the most powerful processor in a modern computer, often out-performing the central processing unit (CPU) by a factor of ten or more. General Purpose Graphics Processing Unit (GPGPU) computing is a paradigm for employing the capabilities of these processors. Adoption of GPGPU computing has led to broad, often dramatic, performance gains in a wide variety of engineering simulations and computing tasks. While GPGPU offers significant performance gains for many applications of engineering relevance, it poses many of its own difficulties. The massively parallel nature of these processors requires a deeper understanding of computing principles than single-core or multi-core programming. This has led to a catchphrase associated with the art: "easy to implement but hard to optimize." The principal hypothesis of this thesis is that three main factors must be properly considered in order to effectively design engineering simulations which utilize GPGPU computing: parallelization, synchronization, and approximation. In this context, parallelization refers to the method by which a large-scale computation is subdivided into parallelizable work units. In a similar vein, synchronization refers to the necessity of communications between the parallel work units. The final element of the trio refers to the necessity for judicious choice of approximations to the underlying physical laws of the simulation model which can greatly impact both the parallelism and synchronization needs of the simulation implementation. The body of this thesis is adapted from three papers originally concerning a Boundary Element Methods (BEM) simulation, a Discrete Element Method (DEM) simulation, and a routine for characterizing composite materials. Each of these works employs GPGPU computing in order to gain computational performance, and they each serve as a case study for this practice. For each of these case studies the aspects of parallelization, synchronization, and approximation are examined in order to support the hypothesis given above. The summation of these observations are collected in a final chapter in order to advance the state of GPGPU computing for engineering simulation.
Associated Publications
Rights
Copyright of the original work is retained by the author.
Embedded videos