Dissertação de mestrado em InformáticaCurrent computing systems have a multiplicity of computational resources with different
architectures, such as multi-core CPUs and GPUs. These platforms are known as
heterogeneous many-core systems (HMS) and as computational resources evolve they
are o ering more parallelism, as well as becoming more heterogeneous. Exploring these
devices requires the programmer to be aware of the multiplicity of associated architectures,
computing models and development framework. Portability issues, disjoint
memory address spaces, work distribution and irregular workload patterns are major
examples that need to be tackled in order to e ciently explore the computational
resources of an HMS.
This dissertation goal is to design and evaluate a base architecture that enables
the identi cation and preliminary evaluation of the potential bottlenecks and limitations
of a runtime system that addresses HMS. It proposes a runtime system that
eases the programmer burden of handling all the devices available in a heterogeneous
system. The runtime provides a programming and execution model with a uni ed
address space managed by a data management system. An API is proposed in order
to enable the programmer to express applications and data in an intuitive way. Four
di erent scheduling approaches are evaluated that combine di erent data partitioning
mechanisms with di erent work assignment policies and a performance model is used
to provide some performance insights to the scheduler.
The runtime e ciency was evaluated with three di erent applications - matrix multiplication,
image convolution and n-body Barnes-Hut simulation - running in multicore
CPUs and GPUs.
In terms of productivity the results look promising, however, combining scheduling
and data partitioning revealed some ine ciencies that compromise load balancing and
needs to be revised, as well as the data management system that plays a crucial role in
such systems. Performance model driven decisions were also evaluated which revealed
that the accuracy of a performance model is also a compromising component