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.
John Cavazos, Associate Professor (joint appointment with ECE): GPU programming; Compilers; Machine Learning.
Sunita Chandrasekaran, Assistant Professor: Parallel Computing; Parallel Programming Models; Validation & Verification; Deep Learning; Accelerator Programming; Compiler and Runtime.
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.
Michela Taufer, Associate Professor: (joint appointment with Center for Bioinformatics & Computational Biology and Biomedical Engineering): Distributed systems; multi-threading and GPU programming; Volunteer computing; Cloud computing; data-intensive application and MapReduce.
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.
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