There is a clear trend nowadays to use heterogeneous high-performance computers, as they offer considerably greater computing power than homogeneous CPU systems. Extending traditional CPU systems with specialized units (accelerators such as GPGPUs) has become a revolution in the HPC world. Both the traditional performance-per-Watt and the performance-per-Euro ratios have been increased with the use of such systems. Heterogeneous machines can adapt better to different application requirements, as each architecture type offers different characteristics. Thus, in order to maximize application performance in these platforms, applications should be divided into several portions according to their execution requirements. These portions should th...
The need of optimization is present in every field of engineering. Moreover, applications requiring ...
The design of modern embedded systems is getting more and more complex, as more functionality is int...
Parallel programming is used to partition a computational problem among multiple processing units an...
Nowadays, applications from dissimilar domains, such as high-performance computing and high-integrit...
High Performance Computing (HPC) systems have become widely used tools in many industry areas and re...
Multi-GPU systems are widely used in High Performance Computing environments to accelerate scientifi...
Recently the community started looking into Hardware/Software (HW/SW) co-designed processors as pote...
During the last two decades, High-Performance Computing (HPC) has grown rapidly in performance by im...
Gone are the days when engineers and scientists conducted most of their experiments empirically. Dur...
The design of modern embedded systems is getting more and more complex, as more func- tionality is i...
Exploiting concurrency to achieve greater performance is a difficult and important challenge for cur...
This thesis contributes from the perspective of task-based programming models to the efforts of opti...
Asymmetric multi-cores (AMCs) are a successful architectural solution for both mobile devices and su...
High Performance Computing (HPC) systems have been evolving over time to adapt to the scientific com...
In the last years, hardware specialization has received renewed attention as chips approach a utiliz...
The need of optimization is present in every field of engineering. Moreover, applications requiring ...
The design of modern embedded systems is getting more and more complex, as more functionality is int...
Parallel programming is used to partition a computational problem among multiple processing units an...
Nowadays, applications from dissimilar domains, such as high-performance computing and high-integrit...
High Performance Computing (HPC) systems have become widely used tools in many industry areas and re...
Multi-GPU systems are widely used in High Performance Computing environments to accelerate scientifi...
Recently the community started looking into Hardware/Software (HW/SW) co-designed processors as pote...
During the last two decades, High-Performance Computing (HPC) has grown rapidly in performance by im...
Gone are the days when engineers and scientists conducted most of their experiments empirically. Dur...
The design of modern embedded systems is getting more and more complex, as more func- tionality is i...
Exploiting concurrency to achieve greater performance is a difficult and important challenge for cur...
This thesis contributes from the perspective of task-based programming models to the efforts of opti...
Asymmetric multi-cores (AMCs) are a successful architectural solution for both mobile devices and su...
High Performance Computing (HPC) systems have been evolving over time to adapt to the scientific com...
In the last years, hardware specialization has received renewed attention as chips approach a utiliz...
The need of optimization is present in every field of engineering. Moreover, applications requiring ...
The design of modern embedded systems is getting more and more complex, as more functionality is int...
Parallel programming is used to partition a computational problem among multiple processing units an...