Research
Machine Learning Driven Program Optimization
Achieving high performance on today’s processors relies on different compiler optimizations. Determine what optimizations to apply and where depends on the program and the target platform. Additionally, the different sets of optimizations will create a vast optimization space, where each of the optimizations can provide good performance individually, and when combined they could increase or degrade performance. In other words, choosing the best set of optimizations will maximize the performance of a target application.
Hence, it is essential to evaluate different combinations of optimizations and find the optimal combination.
Research Staff: Miguel Rosas
DARWIN -- Delaware Advanced Research Workforce and Innovation Network
DARWIN is a compute and storage resource supporting computational and data-intensive research at the University of Delaware and in the Delaware Region. DARWIN is funded by an NSF MRI (Major Research Instrumentation) grant. For more information, see the DARWIN project page
The Xpert Network --A Peer Network for the exchange of computational best practices and support environments
Through a series of online and face-to-face meetings we are aiming to create synergy among teams that assist researchers in developing, optimizing, and running computational and data-intensive applications. We also connect developers of tools that help accomplish these tasks. We welcome participation from large, national projects as well as from individuals that assist computational researchers or develop supporting environments. For more information, see the project page NSF Award Page Research Staff: Parinaz Barakhshan
Real-Application Benchmarks for High-Performance Computing
We are creating HPC benchmarks that are representative of real-world applications. This is a collaboration with the Standard Performance Evaluation Corporation, SPEC and Indiana University. NSF award page. News release
Collaborators: Sunita Chandrasekaran, Robert Henschel
Cetus Source-to-Source Compiler Infrastructure
Cetus is a compiler and transformation infrastructure for transforming C source code. The original purpose of Cetus was for automatic parallelization - translation of C code into C code annotated with OpenMP directives. Many other uses of the translator have emerged, such as the translation of OpenMP programs into CUDA and MPI. Cetus is being maintained as a community infrastructure and has been used for many projects worldwide (see the list of publications on the Cetus web page). The Cetus project is a collaboration with Purdue University. NSF awards: 0707931 1405954
Research Staff: Akshay Bhosale, Parinaz Barakhshan, Jan Sher Khan, Hao Wang
Collaborators: Samuel Midkiff, Milind Kulkarni.
COMPILE-TIME AUTOMATIC PARALLELIZATION OF SUBSCRIPTED SUBSCRIPTS USING RECURRENCE ANALYSIS
In this project we develop novel compiler analysis techniques that gather information from the program that enables parallelization of code that could not be parallelized in the past. Our current focus in on analyzing properties of the content of subscript arrays.
Project Site Research Staff: Akshay Bhosale
Integrating iCetus (Interactive Cetus) with the CaRV (Capture, Replay & Validate) Tool
After developing iCetus, designed to facilitate the use of auto-parallelization techniques and leverage analysis results from Cetus—an ANSI C source-to-source auto-parallelizer—and applying manual parallelization to the code, we are integrating iCetus capabilities with the CaRV tool. CaRV expedites experimentation on code sections and validates the optimizations applied to those sections. The integration project, while facilitating the application of various types of optimizations to the code, aims to expedite the optimization process and ensure the validation of applied optimizations.
Research Staff: Parinaz Barakhshan