Research

Machine Learning Driven Program Optimization

AI

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

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

xpert 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

spec30

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

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

Cetus Website

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

cetus

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

cetus

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