This paper describes basic programming technology to support irregular applications on scalable concurrent hardware and shows how the technology has been applied to a variety of large-scale industrial application problems. The technology is based on the concept of a concurrent graph library that provides an adaptive collection of light-weight threads that may relocate between computers dynamically. The graph is portable to a wide range of highperformance multicomputers, shared-memory multiprocessors, and networked workstations. For each machine it is optimized to take advantage of the best available underlying communication and synchronization mechanisms. The graph provides a framework for adaptive refinement of computations, automatic load...
The major problem addressed by this research is the development of one or more scheduling heuristics...
The convergence of highly parallel many-core graphics processors with conventional multi-core proces...
Task graphs are used for scheduling tasks on parallel processors when the tasks have dependencies. I...
The inevitable transition to parallel programming can be facilitated by appropriate tools, including...
Parallel computing hardware is ubiquitous, ranging from cell-phones with multiple cores to super-com...
The article describes various options for speeding up calculations on computer systems. These featur...
In modern data centers, massive concurrent graph processing jobs are being processed on large graphs...
Algorithms operating on a graph setting are known to be highly irregular and un- structured. This le...
The ever increasing use of distributed computing as a method of providing added computing power and ...
In this paper we study the problem of mapping a large class of irregular and loosely synchronous dat...
Future High Performance Computing (HPC) nodes will have many more processors than the contemporary a...
Graph partition quality affects the overall performance of parallel graph computation systems. The q...
Abstract — Many important applications are organized around long-lived, irregular sparse graphs (e.g...
A graph is a ubiquitous data structure that models entities and their interactions through the colle...
High-level abstractions for parallel programming simplify the development of efficient par-allel app...
The major problem addressed by this research is the development of one or more scheduling heuristics...
The convergence of highly parallel many-core graphics processors with conventional multi-core proces...
Task graphs are used for scheduling tasks on parallel processors when the tasks have dependencies. I...
The inevitable transition to parallel programming can be facilitated by appropriate tools, including...
Parallel computing hardware is ubiquitous, ranging from cell-phones with multiple cores to super-com...
The article describes various options for speeding up calculations on computer systems. These featur...
In modern data centers, massive concurrent graph processing jobs are being processed on large graphs...
Algorithms operating on a graph setting are known to be highly irregular and un- structured. This le...
The ever increasing use of distributed computing as a method of providing added computing power and ...
In this paper we study the problem of mapping a large class of irregular and loosely synchronous dat...
Future High Performance Computing (HPC) nodes will have many more processors than the contemporary a...
Graph partition quality affects the overall performance of parallel graph computation systems. The q...
Abstract — Many important applications are organized around long-lived, irregular sparse graphs (e.g...
A graph is a ubiquitous data structure that models entities and their interactions through the colle...
High-level abstractions for parallel programming simplify the development of efficient par-allel app...
The major problem addressed by this research is the development of one or more scheduling heuristics...
The convergence of highly parallel many-core graphics processors with conventional multi-core proces...
Task graphs are used for scheduling tasks on parallel processors when the tasks have dependencies. I...