Go for Broke: Maximizing Performance in Clustered and GPU Environments
Open AccessNo longer bound by a single processor, today’s parallel computing applications instead marshal legions of processors whether in a computer cluster or within graphics processing units (GPU). While these environments may yield massive improvements in the performance of those applications, such bounties are frustratingly out of reach save for the most experienced practitioners with considerable time and resources available to them. Although APIs and frameworks such as the CUDA GPU API and Apache Storm distributed streaming framework do mitigate these issues somewhat, developing and deploying applications with them is no small feat. In this dissertation, we explore how to optimize the utilization of streaming cloud applications with special attention to the Apache Storm framework in particular, in addition to similar utilization of the GPU for graph processing algorithms with a focus on belief propagation.As we begin our work with optimizing streaming applications, we first present the challenges involved for properly tuning the configurations of streaming application frameworks to achieve optimal performance. To address this problem, our research explores several automated search techniques to efficiently find optimal configurations, namely Bayesian optimization and genetic algorithms. It then examines the impact of using machine learning based classifiers on accelerating the genetic algorithm search. Finally, we demonstrate that our combined method of a classifier-enhanced genetic algorithm is not only portable to different Apache Storm jobs but to different computer architectures with a thorough evaluation. We likewise use similar techniques in our second thrust.Before diving into our optimizations for performing complex graph computations on the GPU in depth, we start by describing how such algorithms operate, their utility at large and the encumbrances encountered with executing them at large scale. To achieve this goal, we describe our design improvements, including a new graph format to support complex graph structures that other GPU graph frameworks cannot support, our two major methods for processing a graph by edge or node, the data structures and algorithmic improvements to maximize cache utilization and minimize memory usage, and the work queues to drastically reduce the amount of work necessary to complete processing the graph. Our study then details the impact and considerations of moving to a GPU platform in particular. Given the wide range of methods we ultimately develop and evaluate during the course of our research, our work finally defines a classification method to choose the best method to efficiently perform belief propagation a priori solely based on the graph’s metadata.
- All rights reserved
Notice to Authors
If you are the author of this work and you have any questions about the information on this page, please use the Contact form to get in touch with us.