Tag Archives: Architecture

Mixed-Parallel Heterogenous Partitioning

Mixed Parallel Heterogeneous Partitioning

PI’s: Dirk Grunwald and Jeremy Siek
Students: Joseph Blomsted
Many complex applications contain mixed parallel behavior that can be expressed as a combination of task, data, and pipeline parallelism. To achieve the best performance, these applications must be carefully mapped to each target platform; the capabilities of the target system greatly influence the ratio of mixed-parallel behavior that should be exploited. Heterogeneous systems also require additional decisions concerning how code is scheduled across the available devices, as well as balancing the interdependence between device scheduling and parallelization strategy selection.
Conceptually, the program decomposition process occurs in three high-level phases. This holds true whether the decomposition is performed manually by a programmer or automatically through a parallel computing framework or compiler.  First, code regions must be identified that have the appropriate granularity and execution characteristics to benefit from parallel execution. Then, a parallelization strategy (none, task, data, or pipeline) must be selected for each code region or group of related regions. Finally, the code regions must be converted into parallel code and scheduled to the available resources, either as static threads or entities within a parallel runtime system. This is often a challenging task because the appropriate parallelization strategy, granularity, and degree of nested parallelism for a region of code depends on the capabilities of the target system. The challenge is increased for heterogeneous parallel systems, which augment general-purpose computers with GPUs and other accelerators. These systems necessitate the additional task of scheduling regions across the different devices, and further complicate the parallelization strategy and granularity decisions
that are influenced by this schedule.
The Mixed-Parallel Heterogeneous Partitioning (MPHP) project  is building a new program decomposition and scheduling algorithm that partitions a program into appropriately sized regions that are scheduled across the available resources using a mix of the three parallelization strategies. Unlike existing techniques, the presented algorithm does not evaluate the different parallelization strategies in a fixed order, but treats all three strategies equally.  Furthermore, the system addresses the interdependence between device scheduling and strategy selection, reducing both decisions to a common problem that allows both issues to be explored simultaneously.

Wireless Radio Architecture

Wireless Radio Architecture

As we move forward towards the next generation of wireless protocols, the push for a better radio physical layer is ever increasing. Conventional radio architectures are limited to narrow operating regions and fails to adapt with changing technology. This is further strengthened with the advent of cognitive radio, which needs a more versatile and flexible framework that is programmable within the timing constraints of a protocol. In this research, we present an architecture for Software Defined Cognitive Radio that caters to the specific baseband processing requirements in a changing environment. We aim to provide more flexibility by deconstructing the radio pipeline into a framework of user controlled kernels that can be reconfigured at run-time. This architecture provides the barebones of a OFDM based radio physical layer that can adapt to perform a varied number of tasks in different radio networks. We also present a novel message based real-time reconfiguration method to transmit and receive a wide range of waveforms used in concurrent wireless protocols.



Cyberphysical Systems

Cyberphysical systems focus on the computer control control of physical systems. At Colorado, this has involved systems to control the energy or thermal characteristics of computer systems themselves as wel as the control of non-computer systems.


Selected Recent Publications