Abstract
Multi-core processors have become ordinary in modern commodity computers.
Computationally intensive applications, like video processing, that previously
only ran on specialized hardware, are now common on home computers. However, the
demand for more computing power is ever-increasing, and with the introduction of
high definition video, more performance is desired. As an alternative to
having multiple identical processor cores, heterogeneous multiprocessors have
cores with different capabilities. This allows tasks to be processed on simple
cores with specialized functionality. The simplicity furthers low power
consumption, small die usage, and low price.
Dealing with heterogeneous cores increases the complexity of writing programs
for the architecture. The reasons for this includes different capabilities of
the cores, and some heterogeneous architectures do not have shared
memory. Without shared memory, accessing main memory requires explicit
transfers to local memory.
In this thesis, we consider two architectures, the STI Cell/B.E. and Intel
IXP2400, and evaluate parallelization strategies and performance
for real-world problems. Our tests show promising throughput
for some applications, and we propose a scheme for offloading computationally
intensive parts of an existing application.