AbstractResearchGroup

From Abstract wiki

(Difference between revisions)
Jump to: navigation, search
(Abstract Research Group @ CMU)
(Abstract Research Group @ CMU)
Line 22: Line 22:
The Abstract research group at CMU does research at the intersection of computer architecture, computer systems, and programming languages.  Our research focuses on improving the programmability, reliability, and efficiency of computing devices and systems. Our work cuts across the layers of the system stack, from the microarchitecture to the application, often touching on everything in between.
The Abstract research group at CMU does research at the intersection of computer architecture, computer systems, and programming languages.  Our research focuses on improving the programmability, reliability, and efficiency of computing devices and systems. Our work cuts across the layers of the system stack, from the microarchitecture to the application, often touching on everything in between.
 +
 +
 +
==Research==
 +
 +
===Defining Intermittent Computing===
 +
We are working to define the system stack for intermittent computing devices, like ones that harvest energy from their environment.  Our goal is to make these devices programmable, reliable, and robust to common-case power failures. Making these devices useful requires us to rethink the whole system stack to deal with complexity and reliability, from programming abstractions tolerant of interruptions, down to super-energy-efficient circuits we use to implement microarchitectural features tolerant of byzantine failures. Tolerating failures and imprecision are the key to making these devices work.
 +
 +
===Concurrency and Parallelism===
 +
We are working to develop software techniques and hardware architectural features to make concurrent and parallel computer systems and software correct, reliable, and efficient. I am especially interested in architectural features that make programming easier, hardware software solutions to making debugging automatic, and architecture, compiler, and runtime gadgets that automatically avoid failures in broken programs. I think approaches based on statistical inference, symbolic execution, and super-lightweight dynamic analysis are particularly promising.
 +
 +
===Taming Heterogeneous Computing===
 +
We are working to map the design space of programmability, performance and generality on the increasingly important heterogeneous computing systems, like ones with a mixture of CPUs, GPUs FPGA, CGRAs, and ASICs.  One of our goals is to define an efficient, implementable, comprehensible memory model and programming abstraction for such systems. To solve this problem, we need reconcile the differences of these devices with unifying architectural abstractions, hardware/software compilation and synthesis, and programming techniques that accommodate the breadth of features, precision levels, and efficiencies available.

Revision as of 16:00, 5 May 2015

de koonig - excavation barnett newman - dionysius Mark Rothko Clyfford Still - Untitled Jackson Pollack - Full Fathom 5 Hans Hoffman - Equinox



Abstract Research Group @ CMU

The Abstract research group at CMU does research at the intersection of computer architecture, computer systems, and programming languages. Our research focuses on improving the programmability, reliability, and efficiency of computing devices and systems. Our work cuts across the layers of the system stack, from the microarchitecture to the application, often touching on everything in between.


Research

Defining Intermittent Computing

We are working to define the system stack for intermittent computing devices, like ones that harvest energy from their environment. Our goal is to make these devices programmable, reliable, and robust to common-case power failures. Making these devices useful requires us to rethink the whole system stack to deal with complexity and reliability, from programming abstractions tolerant of interruptions, down to super-energy-efficient circuits we use to implement microarchitectural features tolerant of byzantine failures. Tolerating failures and imprecision are the key to making these devices work.

Concurrency and Parallelism

We are working to develop software techniques and hardware architectural features to make concurrent and parallel computer systems and software correct, reliable, and efficient. I am especially interested in architectural features that make programming easier, hardware software solutions to making debugging automatic, and architecture, compiler, and runtime gadgets that automatically avoid failures in broken programs. I think approaches based on statistical inference, symbolic execution, and super-lightweight dynamic analysis are particularly promising.

Taming Heterogeneous Computing

We are working to map the design space of programmability, performance and generality on the increasingly important heterogeneous computing systems, like ones with a mixture of CPUs, GPUs FPGA, CGRAs, and ASICs. One of our goals is to define an efficient, implementable, comprehensible memory model and programming abstraction for such systems. To solve this problem, we need reconcile the differences of these devices with unifying architectural abstractions, hardware/software compilation and synthesis, and programming techniques that accommodate the breadth of features, precision levels, and efficiencies available.


People

Faculty

Brandon Lucia

PhD Students

Alexei Colin

Nuno Machado (summer 2015 Visiting Scholar, from IST Lisboa)

Masters Students

Dhruva Tirumala

Undergraduates

Graham Harvey

Mark McElwaine

Personal tools