In developing High-Performance Computing (HPC) software, time to solution is an important metric. This metric is comprised of two main components: the human effort required developing the software, plus the amount of machine time required to execute it. To date, little empirical work has been done to study the first component: the human effort required and the effects of approaches and practices that may be used to reduce it. In this paper, we describe a series of studies that address this problem. We instrumented the development process used in multiple HPC classroom environments. We analyzed data within and across such studies, varying factors such as the parallel programming model used and the application being developed, to understand t...
Abstract—Parallelizing serial software systems in order to run in a High Performance Computing (HPC)...
Abstract—Big and complex applications need many resources and long computation time to execute seque...
Substantial time is spent on building, optimizing and maintaining large-scale software that is run o...
The ability to write programs that execute efficiently on modern parallel computers has not been fu...
The ability to write programs that execute efficiently on modern parallel computers has not been ful...
Abstract — There is widespread belief in the computer science community that MPI is a difficult and ...
In the high performance computing domain, the speed of execution of a program has typically been the...
We performed semistructured, open-ended interviews with 11 professional developers of parallel, scie...
In this thesis, we quantitatively study the effect of High Performance Computing (HPC) novice progra...
We evaluate the claim that a PRAM-like parallel programming model (XMTC) requires less effort than a...
In this work, we study productivity differences in an introductory programming course. Focusing on a...
In this thesis, we quantitatively study the effect of High Performance Computing (HPC) novice progra...
peer-reviewedIn recent years there has been a shift in microprocessor manufacture from building sing...
The thesis of this extended abstract is simple. High productivity comes from high level infrastructu...
One key to improving high performance computing (HPC) productivity is to find better ways to measure...
Abstract—Parallelizing serial software systems in order to run in a High Performance Computing (HPC)...
Abstract—Big and complex applications need many resources and long computation time to execute seque...
Substantial time is spent on building, optimizing and maintaining large-scale software that is run o...
The ability to write programs that execute efficiently on modern parallel computers has not been fu...
The ability to write programs that execute efficiently on modern parallel computers has not been ful...
Abstract — There is widespread belief in the computer science community that MPI is a difficult and ...
In the high performance computing domain, the speed of execution of a program has typically been the...
We performed semistructured, open-ended interviews with 11 professional developers of parallel, scie...
In this thesis, we quantitatively study the effect of High Performance Computing (HPC) novice progra...
We evaluate the claim that a PRAM-like parallel programming model (XMTC) requires less effort than a...
In this work, we study productivity differences in an introductory programming course. Focusing on a...
In this thesis, we quantitatively study the effect of High Performance Computing (HPC) novice progra...
peer-reviewedIn recent years there has been a shift in microprocessor manufacture from building sing...
The thesis of this extended abstract is simple. High productivity comes from high level infrastructu...
One key to improving high performance computing (HPC) productivity is to find better ways to measure...
Abstract—Parallelizing serial software systems in order to run in a High Performance Computing (HPC)...
Abstract—Big and complex applications need many resources and long computation time to execute seque...
Substantial time is spent on building, optimizing and maintaining large-scale software that is run o...