Multi-core processors have become ordinary in modern commodity computers.Computationally intensive applications, like video processing, that previouslyonly ran on specialized hardware, are now common on home computers. However, thedemand for more computing power is ever-increasing, and with the introduction ofhigh definition video, more performance is desired. As an alternative tohaving multiple identical processor cores, heterogeneous multiprocessors havecores with different capabilities. This allows tasks to be processed on simplecores with specialized functionality. The simplicity furthers low powerconsumption, small die usage, and low price.
Dealing with heterogeneous cores increases the complexity of writing programsfor the architecture. The reasons for this includes different capabilities ofthe cores, and some heterogeneous architectures do not have sharedmemory. Without shared memory, accessing main memory requires explicittransfers to local memory.
In this thesis, we consider two architectures, the STI Cell/B.E. and IntelIXP2400, and evaluate parallelization strategies and performancefor real-world problems. Our tests show promising throughputfor some applications, and we propose a scheme for offloading computationallyintensive parts of an existing application.