Home

About Me

I graduated with a Bachelor's degree in Computer Science from University of Delaware's College of Engineering in May of 2012. I am currently a graduate student at UD and a research assistant under Professor John Cavazos. Over the last 2 years, my research has been focused on autotuning high-level GPU programming languages to optimize performance. As of January 2013, I have also begun working on similarity analysis using graph-based representations of SQL statements.

Activities

Current

  • Research Assistant at University of Delaware
  • PhD Student at University of Delaware

Past

  • Teaching Assistant at University of Delaware
  • Vice-President: Association of Computing Machinery @ UD
  • Webmaster: Linux Users Group @ UD
  • Computing Site Assistant at University of Delaware
  • Omnidata Inc. IT Consultant
Education

Graduate

I began my graduate studies at Delaware during the fall of 2012 as a research assistant for John Cavazos. I attended SuperComputing 2012, and recently was published on a second paper involving auto-tuning high level GPU codes. My coursework up to this point has consisted of Computer Algorithms, Data Mining, Advanced Parallel Programming, and Advanced Computer Networks.

Undergraduate

I completed my undergraduate degree in Computer Science at University of Delaware in May 2012. My elective coursework consisted of Computer Graphics, Computer Networks, Mobile App Development, Artificial Intelligence, System Security, Software Engineering, and Advanced Parallel Programming. I also worked with John Cavazos initially as his teaching assistant and later as a research assistant. As his research assistant, I achieved my first publication just before graduating, and I attended INPAR 2012 in May 2012.

Research
Accelerating Financial Applications on the GPU
Advisor: John Cavazos
June 2012 - March 2013

Abstract

The QuantLib library is a popular library used for many areas of computational finance. In this work, the parallel processing power of the GPU is used to accelerate QuantLib financial applications. Black-Scholes, Monte-Carlo, Bonds, and Repo code paths in QuantLib are accelerated using handwritten CUDA and OpenCL codes specifically targeted for the GPU. Additionally, HMPP and OpenACC versions of the applications were created to drive the automatic generation of GPU code from sequential code. The results demonstrate a significant speedup for each code using each parallelization method. We were also able to increase the speedup of HMPP-generated code with auto-tuning.

Publication

This research was accepted to the Sixth Workshop on General Purpose Processing Using GPUs (GPGPU6). A pdf of our paper (collaboration with Scott Grauer-Gray, William Killian, and John Cavazos) may be found here.

Auto-tuning a High-Level Language Targeted to GPU Codes
Advisor: John Cavazos
January 2010 - May 2012

Abstract

Determining the best set of optimizations to apply to a kernel to be executed on the graphics processing unit (GPU) is a challenging problem. There are large sets of possible optimization configurations that can be applied, and many applications have multiple kernels. Each kernel may require a specific configuration to achieve the best performance, and moving an application to new hardware often requires a new optimization configuration for each kernel. In this work, we apply optimizations to GPU code using HMPP, a high-level directive-based language and source-to-source compiler that can generate CUDA / OpenCL code. However, programming with high-level languages may mean a loss of performance compared to using low-level languages. Our work shows that it is possible to improve the performance of a high-level language by using auto-tuning. We perform auto-tuning on a large optimization space on GPU kernels, focusing on loop permutation, loop unrolling, tiling, and specifying which loop(s) to parallelize, and show results on convolution kernels, codes in the PolyBench suite, and an implementation of belief propagation for stereo vision. The results show that our auto-tuned HMPP-generated implementations are significantly faster than the default HMPP implementation and can meet or exceed the performance of manually coded CUDA / OpenCL implementations.

Publication

This research was accepted to Innovative Parallel Computing (INPAR) 2012. A pdf of our paper (collaboration with Scott Grauer-Gray, Lifan Xu, Sudhee Ayalasomayajula, and John Cavazos) may be found here.

Contact

About This Site

The template from this site was given to me by my coworker William Killian.

This site uses HTML5, CSS3, and a tiny bit of javascript. I elected to use minimal animations to target a quick, responsive feel for my site. I chose a bright color pallette to cause less eye strain. Ample amounts of whitespace are used for separation of content and to promote readability. If you have any questions regarding the design of this site, please send me a message at your convenience. Currently I only support recent major browsers such as Firefox, Chrome, Safari, or Internet Explorer. I recommend using one of the browsers I tested my site on for the best possible experience.

Fonts were legally obtained through Font Squirrel and the icons used for the contact information were obtained from  IcoMoon. The cool hackery with the syntax highlighting is provided by highlight.js. All other content (HTML, CSS, Javascript) was created by Will Killian and modified by Robbie Searles (me).

Tested Platforms and Browsers

Conforms to HTML5 and CSS3 Standards