The OpenUH compiler is a branch of the Open64 compiler suite for C, C++, and Fortran, with support for a variety of targets including x86-64, IA-64, IA-32, MIPS, and PTX. For the past several years, we have developed and used OpenUH to conduct research in parallel programming models and their implementation, static and dynamic analysis of parallel applications, and compiler integration with external tools. OpenMP programs compiled with OpenUH can be profiled using selective compiler instrumentation or the runtime collector interface. OpenUH supports OpenMP 2.5 as well as the tasking extensions introduced in OpenMP 3.0. Additionally, the coarrays feature in Fortran 2008 (sometimes abbreviated as CAF) is also supported.
XPRESS: eXascale PRogramming Environment and System Software
This is a 3-year DoE project to develop extreme scale compiler and runtime tools for the future exascale computers. The project, titled “eXascale PRogramming Environment and System Software (XPRESS)”, undertakes research and software development efforts to deliver to the DOE Office of Science through its 2012 X-Stack Program of Programming Challenges, Runtime Systems, and Tools as a revolutionary software system for extreme-scale computing for both Exascale and strong-scaled problems.
In this collaborative project, titled “Image Processing Cloud (IPC): A Domain-Specific Cloud Computing Infrastructure for Research and Education”, the team with members from Prairie View A&M University, University of Houston and University of Delaware will develop a high-performance and high-productivity cloud infrastructure for image processing research.
OpenACC is an emerging directive-based programming model for programming accelerators that typically enables non-expert programmers to achieve portable and productive application performance. In this project, we will develop an open-source OpenACC compiler based on the OpenUH research compiler.
OpenACC is a new de facto standard for programming accelerator boards in conjunction with a host CPU, which could be a multicore platform. It is based upon the use of compiler directives that allow the application developer to mark regions of code for acceleration in a vendor-neutral manner. The goal of this project is to provide a testing infrastructure to validate implementations for conformance to the standard.
Glass Box: A New Approach to Enabling Open, Deep Interactions in the HPC Toolchain
The main goal of this NSF project is to develop a framework that enhances collaboration between several performance analysis/optimization tools to ensure scalability, interoperability and reduction in software maintenance cost. The project is a joint venture between Georgia Institute of Technology, the University of Houston and the University of Oregon.
Coarray Fortran (CAF), also sometimes referred to as Fortran Coarrays, is a set of new language features incorporated into the Fortran 2008 standard which enable parallel programming in Fortran with minimal changes to the language syntax. In this joint project between UH and Total S.A., we are investigating CAF as a viable programming model for production applications developed for HPC systems, with a focus on codes from the Oil and Gas industry. CAF contains considerable scope for compiler optimization to mitigate costs due to communication latency and synchronization. We have created an open-source CAF implementation within the OpenUH compiler and use this implementation to explore its performance potential.
OpenSHMEM is a library-based parallel programming model that emphasizes an intuitive approach to distributed computation and communication by partitioning a global view of data. By leveraging network hardware capabilities such as remote direct memory access, OpenSHMEM implementations provide routines to transmit data, synchronize, and perform computations such as atomics and reductions, amongst distributed components of a program. The University of Houston is working with Oak Ridge National Laboratory to standardize OpenSHMEM via a community-driven specification with a reference implementation and test-suite; promote its use via the web, conferences and workshops; and develop training and education materials.
Klonos: A Similarity-based Analysis Tool for Large Scale Program Restructuring and Porting
The High Performance Computing (HPC) community is heading toward the era of exascale computing. While these new systems provide more opportunities, porting applications to them is a non-trivial task as it is time-consuming, labor-intensive, and error-prone. To assist programmers with this process, we have created a tool called “Klonos” that uses static and dynamic code features to detect and identify parts of programs that can benefit from similar porting strategies. This project is funded through the Oak Ridge Associated Universities (ORAU) and Oak Ridge National Laboratory (ORNL).
Parallel Programming: Exploring novel programming models for heterogeneous computing in the Oil & Gas industry
Emerging large-scale computing platforms for scientific and technical computing are massively parallel clusters with increasingly powerful and complex nodes. Challenges to fully exploiting these massive architectures include addressing heterogeneity and concurrency issues. In this project we intend to explore and experiment with a variety of programming interfaces and state-of-the-art architectures on kernels and applications of high interest to Oil & Gas industries.
Embedded OpenMP: Effective Programming Strategies for Multicore Embedded Systems
Rapid evolution of Multiprocessor System-on-Chip (MPSoC) poses new programming challenges. Software developers are still expected to handle many of the low-level details of programming including utilizing DMA, ensuring cache coherency, and inserting synchronization primitives explicitly. In this project, we will address these programming challenges by creating a portable OpenMP runtime library for heterogeneous embedded systems based on low-level interfaces specified by the Multicore Association (MCA).