Re-engineering software to enhance performance on HPC systems
Computer Science and Engineering, Michigan State University
Dr. Metin Aktulga is an assistant professor in the department of Computer Science and Engineering at Michigan State University. As a computer scientist specializing in high performance computing (HPC), his primary objective is “to leverage the power of large computer systems” to enable and advance scientific discovery.
One of the few researchers on campus focused on use-inspired HPC research, Dr. Aktulga’s work seeks to advance understanding and methods for high performance computing by exploring solutions to domain-specific problems. His efforts simultaneously solve scientific and societal problems and develop new approaches to utilizing new HPC technologies, such as multi-core CPUs1, GPUs 2, or new programming paradigms. Dr. Aktulga collaborates with a growing number of domain scientists including chemists, materials scientists, and electrical engineers who are interested in understanding the performance bottlenecks in codes they use and re-engineering it in ways that improve performance.
Increasing the efficiency of highly complex simulation and data analysis codes which utilize a great deal of HPC systems is both useful and necessary for reducing the time to scientific discovery. Simulation is a powerful tool for increasing our understanding of the natural world; using computers scientists conduct experiments which may be difficult, expensive or sometimes impossible to do in real life. Researchers write codes to model/simulate phenomena occurring in the real world with mathematical formulas. The data generated by these experiments is analyzed and interpreted to predict outcomes. This increased efficiency is especially important in cases where our ability to treat diseases or respond to environmental threats is dependent on the outcome of these computational experiments. For example, “it’s not very uncommon for some of these simulations to run a month or two,” says Dr. Aktulga, “if our work cuts down the run time from one month to one week, it can improve the return on investment by a factor of four.”
Unlike most other fields, Dr. Aktulga’s work exists in the middle ground between advancing the capabilities of HPC systems and utilizing these systems to advance and enable scientific discovery. He recalls that his interest in HPC and software optimization developed as a Ph.D. student studying bioinformatics 3. His research advisor at the time had started a new research project and hired a postdoc to work with him. The postdoc noticed that Metin wasn’t particularly interested in bioinformatics and suggested that he might be better suited to working with parallel algorithms 4. It turned out to be such a good match that he completely switched his research focus. While this meant that his Ph.D program took six years to complete, he says it was a “very fun and enjoyable experience.”
Professor Aktulga has enjoyed watching the field grow to include the integration of a wide variety of disciplines. He says that MSU sets itself apart from other universities who continue to use “off the shelf” software and hopes his work will further the scientific efforts of MSU researchers and substantially speed up scientific progress.
1 CPU: A CPU or “central processing unit” is the primary part of a computer where calculations and data processing takes place.
2 GPU: A GPU or “graphics processing unit” is a fundamental component of high performance computers and is used to interpret and process data and code.
3 Parallel Algorithms: Algorithms that can execute instructions on different processing devices at once and then combine the different outputs into one result.
4 Bioinformatics: The science of collecting and analyzing complex biological data.