Top of page
Aditya Devarakonda

Dr. Aditya Devarakonda is an Assistant Professor in the Department of Computer Science at Wake Forest University. Prior to that he was an Assistant Research Scientist in the Department of Physics and Astronomy at Johns Hopkins University. He received his Ph.D. in Computer Science from the University of California, Berkeley in 2018 and his B.S. in Computer Engineering from Rutgers University, New Brunswick in 2012.

His research interests are in high performance computing, machine learning, and scientific computing with a focus on the design, analysis, and implementation of efficient parallel algorithms. His prior work includes the development of communication-avoiding algorithms and techniques for machine learning. He was a recipient of the NSF Graduate Research Fellowship and the EECS Department Fellowship while at UC Berkeley.


Teaching

Classes taught:

  • CSC 201 – Data Structures and Algorithms
  • CSC 301 – Algorithms Design and Analysis
  • CSC 721 – Theory of Algorithms
  • CSC 790 – Parallel Numerical Optimization

Publications


Research

Communication-Avoiding Machine Learning

Machine learning has gained renewed interest in recent years due to advances in computer hardware (processing power and high-bandwidth storage) and the availability of large amounts of data which can be used to develop accurate, robust models. While hardware improvements have facilitated the development of machine learning models on a single machine, the analysis of large amounts of data still requires parallel computers to obtain shorter running times.

This project focuses on developing novel techniques and algorithms to reduce the communication bottleneck when performing machine learning tasks at scale on parallel machines. Topics in this area include: i) redesigning existing machine learning algorithms to reduce communication, ii) studying the asymptotic and numerical behavior of these algorithms, and iii) implementing these algorithms as part of a high performance software library.

Scalable Deep Learning

Deep learning is the enabling technology behind many applications that we use daily, from FaceID (Image Recognition) and Alexa (Voice Recognition) to Autopilot (Self-Driving Cars). All of these technologies (and many more) utilize deep learning models under the hood to solve complex optimization problems with high accuracy, in some cases, superhuman accuracy.

Large deep learning models are trained on multi-node, multi-GPU machines and require several days of training. This project focuses on developing new training techniques, optimization problems, and computational kernels to improve performance. Topics in this area include: i) implementing new (quasi) second-order optimization methods, ii) redesigning optimization methods to reduce communication, and iii) implementing new matrix and tensor factorizations to compress and speedup training.

Contact Info

Assistant Professor