High Performance Computing

Core Research Area in High Performance Computing

High performance computing (HPC) is an established area of research and graduate study in the Department of Computer and Information Sciences at the University of Delaware (UD). HPC at UD embraces several research aspects including parallel and distributed programming; programming languages and compilers; optimization and scheduling of large-scale scientific applications; software validation, verification, and testing; and algorithms and tools for exact linear algebra computation on large dense and sparse matrix problems. Parallel and distributed programming aims to enhance performance through the process of performing parts of a task concurrently. Achieving the performance gains projected for applications through parallelism offered by today’s parallel and distributed systems mandates new paradigms for system software (i.e., operating systems, languages, compilers, computer architecture, and programming tools) and the redesign of applications software through the development, implementation, optimization, verification, and testing of parallel and concurrent algorithms.

Advanced cyberinfrastructure available to faculty and their groups at UD include high-end, multi-core supercomputer on campus and from XSEDE. Targeted platforms include cloud computing, multi-threading and GPU computing, and volunteer computing. New challenges include moving scientific applications and their execution beyond peta-scale architectures into the new era of exa-scale platforms; designing new algorithms both compute- and data-intensive applications; exploring and adapting new paradigms such as MapReduce for the latter application. Research projects have been supported by grants from the National Science Foundation, the Department of Energy (DoE), the US Air Force Organization (USAF), the US Army Research Organization (ARO), Google, DARPA, JP Morgan, and CERDEC.

Current Faculty

  • Sunita Chandrasekaran, Assistant Professor: Parallel Computing; Parallel Programming Models; Validation & Verification; Deep Learning; Accelerator Programming; Compiler and Runtime.
  • Lena Mashayekhy, Assistant Professor: Cloud Computing; Edge Computing; Internet of Things; Cyber-Physical Systems, and Game Theory.
  • Lori Pollock, Professor: Program analysis for building better software maintenance tools; Optimizing compilers for modern computer architectures; Software testing.
  • B. David Saunders, Professor: Exact linear algebra; Dense, sparse, and structured integer matrix computations.
  • Stephen Siegel, Associate Professor: Software validation and verification in HPC.

ECE Faculty with Joint Appointments in CIS

  • Guang Gao, Professor of Electrical and Computer Engineering: Computer architecture and parallel systems; Optimizing and parallelizing compilers; Applications (e.g., bioinformatics)
  • Xiaoming Li, Assistant Professor: Code generation and optimization; Compilers; Interaction between hardware and software.
  • Courses

Courses

  • CISC 649 Topics in Computer Applications: Programming for High Performance
  • CISC 662 Computer Systems: Architecture
  • CISC 663 Operating Systems
  • CISC 670 Programming Languages
  • CISC 672 Compiler Construction
  • CISC 673 Program Analysis and Transformation
  • CISC 822 Algebraic Algorithms
  • CISC 873 Compiling for Advanced Architectures
  • CISC 879 Advanced Topics in Architecture and Software Systems: Parallelization for Scientific Applications
  • CISC 879 Advanced Topics in Architecture and Software Systems: Advanced Parallel Programming
  • CISC 879 Advanced Topics in Architecture and Software Systems: Machine Learning for Solving Systems Problems
  • CISC 879 Advanced Topics in Architecture and Software Systems: Software Support for Multi-core Architectures
Laboratories - High Performance Computing

Computational Research and Programming Lab

221 Smith Hall, Professor Sunita Chandrasekaran.

The Computational Research and Programming Lab (CRPL) focuses on exploring programming models and its language features to parallelize real-world scientific applications on large scale computing processors consisting of hundreds to thousands of CPUs and accelerators such as GPUs or co-processors such as Xeon Phi or even specialized processors such as DSPs, FPGAs. We explore compiler and runtime techniques to optimize data movement for High Performance Computing (HPC). We also explore deep learning techniques for image classification using power-efficient embedded platforms. Scientific domains that we focus include Molecular Dynamics and Bioinformatics. We also develop validation and verification suites to check for validation and corrections of programming models’ implementations in compilers.

LinBox Laboratory

119 Elkton Road, Professor David Saunders, Research Associate Professor David Wood.

We design algorithms and high performance implementations for exact linear algebra computation. Exact linear algebra with matrices of integers is harder than the more widely used approximate linear algebra in floating point. Our work contributes to LinBox, a software library for solving exact systems exactly. It is developed by a team of researchers in the US, France, and Canada

Cavazos Laboratory

208 Smith Hall, Professor John Cavazos.

The Cavazos Laboratory conducts research on the application of machine learning techniques to build intelligent software systems. We work on intelligent and iterative compilation and auto-tuning for computer systems, spanning embedded computers to large-scale supercomputers. We perform research in the construction and tuning of compilers and in using machine-learning algorithms to solve hard systems problems.

Software Analysis and Compilation Laboratory

213 Smith Hall, Professor Lori Pollock.

Our research focuses on program analysis to automate and semi-automate tedious and error-prone tasks typically performed by software engineers, testers, and scientists. Current research projects include applying natural language processing techniques to perform textual analysis of software artifacts and using that information for automatically generating documentation from source code, improving code search and feature location, and improving other software maintenance tools. We are also investigating various aspects of green software engineering to enable software designers to make energy-conscious design decisions. In software testing, we are developing techniques to automatically generate tests for web applications. Other projects focus on optimizing compilers for modern parallel architectures.

Verified Software Laboratory

421 Smith Hall, Professor Stephen Siegel.

The VSL conducts research into one of the most important problems in Software Engineering: how to develop verifiably correct complex software systems. Currently, the VSL is focusing on parallel programs used for scientific computation and is developing tools that can find defects in these programs or establish their correctness. These tools are based on techniques from logic, compiler theory, symbolic computation, and model checking.

Research High Performance Computing