Research Topics

Autotuning

Existing methods of exploring a search space are primarily limited to a form iterative compilation which requires the exploration of the entire space. Many times this optimization space is too large to exhaustively search. With an autotuning framework, the search space for optimizations can be explored automatically and intelligently without any need for user interaction.

Directive-Based Languages

Many applications cannot be rewritten, but maintainers are expected to improve the performance. Directive-based languages allow a developer to annotate the existing program for guiding features such as specific optimizations to apply, auto-parallelization of code regions, and even targeting accelerators (e.g. NVIDIA GPUs and Intel Coprocessors) automatically.

Programming Models

Directive-based languages are often inflexible to various programming models easily without resorting to (ab)use of the preprocessor. Programming models such as RAJA place that burden on efficient tag dispatching and SFINAE in modern C++. I leverage RAJA as a tuning framework, which enables autotuning on directive-based languages by simply changing a single C++ type.

Publications

  • [WORKSHOP] D. Beckingsale, J. Burmark, R. Hornung, H. Jones, W. Killian, A. Kunen, O. Pearce, P. Robinson, B. Ryujin, and T. Scogland, "RAJA: Portable Performance for Large-Scale Scientific Applications". 2019 International Workshop on Performance, Portability and Productivity in HPC (P3HPC). [PDF]
  • [WORKSHOP] W. Killian, T. Scogland, A. Kunen, and J. Cavazos, "The Design and Implementation of OpenMP 4.5 and OpenACC Backends for the RAJA C++ Performance Portability Layer". The 4th Workshop on Accelerator Programming Using Directives (WACCPD), Denver CO 2017. [PDF] [PRES]
  • [POSTER] W. Killian, I. Karlin, D. Beckingsale, J. Cavazos, "A Compiler Agnostic and Architecture Aware Predictive Modeling Framework for Kernels". Research Poster, 29th International Conference for High Performance Computing, Networking, Storage and Analysis (SC'17) – Denver CO, 2017. [PDF]
  • [PAPER] R. Searles, L. Xu, W. Killian, T. Vanderbruggen, T. Forren, J. Howe, Z. Pearson, C. Shannon, J. Simmons, and J. Cavazos, "Parallelization of Machine Learning Applied to Call Graphs of Binaries for Malware Detection". 25th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing (PDP 2017) – St. Petersburg, Russia, 2017. [PDF]
  • [POSTER] W. Killian, A. Kunen, I. Karlin, J. Cavazos, "Discovering Optimal Execution Policies in KRIPKE using RAJA". ACM Student Poster Competition, 28th International Conference for High Performance Computing, Networking, Storage and Analysis (SC'16) – Salt Lake City UT, 2016. [PDF]
  • [POSTER] W. Killian, G. Zagaris, B. Ryujin, B. Pudliner, J. Cavazos, "Portable Performance of Large-Scale Physics Applications: Toward Targeting Heterogeneous Exascale Architectures Through Application Fitting". ACM Student Poster Competition, 27th International Conference for High Performance Computing, Networking, Storage and Analysis (SC'16) – Austin TX, 2015. [PDF]
  • [PHD PRELIM] W. Killian, J. Cavazos, "Using Graph-Based Characterization for Predictive Modeling of Vectorizable Loop Nests". University of Delaware – Newark DE, 2015. [PDF]
  • [WHITEPAPER] W. Killian, R. Miceli, E. Park, M. Alvarez Vega, J. Cavazos, "Performance Improvement in Kernels by Guiding Compiler Auto-Vectorization Heuristics". Partnership for Advanced Computing in Europe (PRACE) Performance Prediction, 2014. [PDF]
  • [POSTER] W. Killian, W. Wang, E. Park, J. Cavazos, "Energy Tuning of Polyhedral Kernels on Multicore and Many-Core Architectures". at SEAK: DAC Workshop on Suite of Embedded Applications and Kernels (SEAK 2014), San Francisco, CA, USA, 2014. [PDF]
  • [WORKSHOP] S. Grauer-Gray, W. Killian, R. Searles, and J. Cavazos, "Accelerating Financial Applications on the GPU". in Proceedings of the 6th Workshop on General Purpose Processor Using Graphics Processing Units (GPGPU-6), New York, NY, USA, pp. 127–136, ACM, 2013. [PDF]