This thesis deals with how to develop scientific computing software that runs efficiently on multicore processors. The goal is to find building blocks and programming models that increase the productivity and reduce the probability of programming errors when developing parallel software. In our search for new building blocks, we evaluate the use of hardware transactional memory for constructing atomic floating point operations. Using benchmark applications from scientific computing, we show in which situations this achieves better performance than other approaches. Driven by the needs of scientific computing applications, we develop a programming model and implement it as a reusable library. The library provides a run-time system for execut...
The multicore era has initiated a move to ubiquitous parallelization of software. In the process, co...
Multi-core processors are considered now the only feasible alternative to the large single-core proc...
Substantial time is spent on building, optimizing and maintaining large-scale software that is run o...
This thesis studies how the multi-core hardware architecture can be efficiently used for real-world ...
Modern computer architectures, with multicore CPUs and GPUs or other accelerators, make stronger dem...
This dissertation addresses creating portable and efficient parallel programs for scientific computi...
Until recently, performance gains in processors were achieved largely by improvements in clock speed...
Modern high performance systems are becoming increasingly complex and powerful due to advancements i...
A multi-core processor is a single computing unit with two or more processors (“cores”). These cores...
The growth of single core performance and energy efficiency have been stagnating for decades. Multic...
Computing has moved away from a focus on performance-centric serial computation, instead towards ene...
This report summarizes our investigations into multi-core processors and programming models for para...
Thesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Comp...
There’s no doubt that the fundamentals of computer programming were broken at the launch of the mu...
With multicore processors now in every computer, server, and embedded device, the need for cost-effe...
The multicore era has initiated a move to ubiquitous parallelization of software. In the process, co...
Multi-core processors are considered now the only feasible alternative to the large single-core proc...
Substantial time is spent on building, optimizing and maintaining large-scale software that is run o...
This thesis studies how the multi-core hardware architecture can be efficiently used for real-world ...
Modern computer architectures, with multicore CPUs and GPUs or other accelerators, make stronger dem...
This dissertation addresses creating portable and efficient parallel programs for scientific computi...
Until recently, performance gains in processors were achieved largely by improvements in clock speed...
Modern high performance systems are becoming increasingly complex and powerful due to advancements i...
A multi-core processor is a single computing unit with two or more processors (“cores”). These cores...
The growth of single core performance and energy efficiency have been stagnating for decades. Multic...
Computing has moved away from a focus on performance-centric serial computation, instead towards ene...
This report summarizes our investigations into multi-core processors and programming models for para...
Thesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Comp...
There’s no doubt that the fundamentals of computer programming were broken at the launch of the mu...
With multicore processors now in every computer, server, and embedded device, the need for cost-effe...
The multicore era has initiated a move to ubiquitous parallelization of software. In the process, co...
Multi-core processors are considered now the only feasible alternative to the large single-core proc...
Substantial time is spent on building, optimizing and maintaining large-scale software that is run o...