Research Interests
Previous
research
List of projects
Project descriptions
Thesis opportunities
Job opportunities
Current research in our
High Performance Computing and Tools (HPCTools) research group at the
Much of our recent work has
focused on support for OpenMP, an industry standard for shared
memory parallel programming that is widely supported. The OpenMP standard is
maintained, and further developed, by the OpenMP Architecture Review Board
(ARB) with participation by almost all the leading computer vendors. We have
founded cOMPunity, a not-for-profit
research organization with international membership that has joined the OpenMP
Architecture Review Board, cOMPunity provides a variety of information and
supporting material about OpenMP on its website, organizes workshops devoted to research, development
and experiences related to OpenMP, and participates in the work of the ARB.
OpenMP can be used to write
parallel programs for execution on SMPs, ccNUMA systems such as SGI’s
Altix, and on multicore and multithreading systems. It has also been
implemented on clusters to enhance its portability. The idea of OpenMP is that
the application developer uses special notation (a comment in Fortran and a
pragma in C/C++) to describe the strategy that should be used to parallelize a
program. An OpenMP-aware compiler will then process this user information in
order to construct the explicitly parallel code. This generally makes it easier
to write and maintain the code than is possible with “low-level”
explicit parallel programming APIs such as PThreads.
Our research aims to contribute to the specification of OpenMP and to its
take-up. In particular, we have created an open source reference compiler for
OpenMP along with Fortran, C or C++. OpenUH is a
freely available, robust compiler framework that was developed by local
students in several years of intensive effort with support from the Department
of Energy’s Office of Science (DOE). It generates native code for
Pentium, Opteron and Itanium-based systems and emits heavily optimized source
code that makes calls to its custom runtime library for other platforms. A
specific feature of OpenUH is its ability to interact with several popular
performance analysis tools in order to simplify the task of tuning OpenMP codes
(as well as MPI codes or programs that use both of these programming
interfaces). The tools currently include TAU, KOJAK, PerfSuite and VAMPIR. This
work was begun with support from the National Science Foundation (NSF) and is
described on the COPPER website.
Current DOE support within
the Center for Programming Models for Scalable Parallel Computing is enabling
us to perform research into language features that enhance the usefulness of
OpenMP for scalable parallel computing, where many threads may be utilized to
execute a program, or where OpenMP may be combined with other models. In this
project we are also considering alternative strategies for implementing OpenMP
on clusters and other non-shared memory architectures. To this end we have
collaborated with colleagues at the
NSF support is now also
permitting us to implement ideas on different strategies for OpenMP
implementation that may be more suitable for multicore platforms, and that take
the OpenMP 3.0 tasking features into account. At the time of writing, OpenMP
3.0 has recently been introduced. It broadens the scope of applicability of
OpenMP and enhances its usefulness on systems that are able to execute many
threads concurrently. In this context, we are exploring ways in which the
compiler can be adapted to generate code that takes the resource sharing of
multicore platforms, and the limited memory per thread, into account,
.We also lead a Sun
Microsystems Center of Excellence in High Performance Application and
Development. This Center comprises a variety of work at the
New paradigms for computing
have been enabled by the rapid evolution of high-speed networking and web
technologies. From application service providers to wide-area coupled
computations, a variety of approaches attempt to make hardware, software and
other computing resources available for use irrespective of their location and
connectivity. We have performed a variety of research into the deployment of
Grid technologies, with a particular focus on ease of use of Grids, security
concerns in Grids, and on the specification and deployment of workflow
computations. In particular, we have interacted with the Sun Grid Engine team and
with the UH IMAQS institute, which focuses on air quality models, as part of
our work in this area.