Research Home

Projects

Publications

Tools

Illinois Impact

 

 

 

Parallel at Illinois

UPCRC Research Themes

Focus on Disciplined Parallel Programming

Sequential languages have evolved to support well-structured programming, and provide safety and modularity. Mechanisms for parallel control, synchronization, and communication have not yet undergone a similar evolution. We're taking the optimistic view that parallelism can be tamed for all to use by providing disciplined parallel programming models, supported by sophisticated development and execution environments. Our agenda includes bringing to parallel programming the analogs of the tenets underlying modern sequential programming such as safety, modularity, and separation of concerns.

Multi-Front Attack on Multicore Programming

We're taking an integrated broad-based attack on parallelism at all levels of the system stack from applications down to hardware, using every weapon in the arsenal to enable performance, scalability, and programmability. This includes investigating disciplined parallel languages, metaprogramming and autotuners, and domain-specific environments; developing a powerful translation environment to exploit information from multiple sources at different times in the life of a program; developing an adaptive runtime to handle heterogeneity and automate resource management; developing new hardware mechanisms to enhance performance, scalability and programmability; and rethinking the customary division of labor among the layers of the system stack. Refactoring tools will help move existing code to new environments and formal methods-based techniques and tools will help ensure correctness.

Human-Centric Vision of Future Consumer Applications

Driving our agenda is a human-centric vision of future consumer applications, backed up by research on application technologies to enable quantum-leaps in immersive visual realism, reliable natural-language processing, and robust telepresence. Investigating these applications reveals new parallel patterns and serves as a testbed for evaluating, refining, and ultimately proving our ideas on multicore programming.

Go to the Research Themes section in the UPCRC whitepaper pdf