Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Jim Sukha

dblp:46/6480 · DBLP profile ↗
← Back
13ranked-venue papers
2as first author
0since 2021 · last 2015
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 13 · 2 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
6 papers
Parallel and multicore computing · 96% Performance modeling and evaluation · 4%
Software engineering, system software, and programming languages
5 papers
Concurrent programming · 100%

Topics — the 12 heaviest of 15, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallel scheduling
runtime scheduling
0.212014
Provably good scheduling for parallel programs that use data structures through implicit batching · PPoPP 2014
Parallel and multicore computing › transactional memory
open-nested transactions
0.222009
Safe open-nested transactions through ownership · PPoPP 2009
Safer open-nested transactions through ownership · PPoPP 2008
Parallel and multicore computing
transactional memory
0.222009
Safe open-nested transactions through ownership · PPoPP 2009
Safer open-nested transactions through ownership · PPoPP 2008
Parallel and multicore computing
parallel programming runtimes
0.112012
Deterministic parallel random-number generation for dynamic-multithreading platforms · PPoPP 2012
Concurrent programming
transactional memory
0.132009
Nested parallelism in transactional memory · PPoPP 2008
Safe open-nested transactions through ownership · PPoPP 2009
Safer open-nested transactions through ownership · PPoPP 2008
Concurrent programming › concurrency control
conflict detection
0.122009
Nested parallelism in transactional memory · PPoPP 2008
Safe open-nested transactions through ownership · PPoPP 2009
Parallel and multicore computing › parallel programming models › task parallelism
fork-join parallelism
0.112010
Helper locks for fork-join parallel programming · PPoPP 2010
Parallel and multicore computing
parallel programming models
0.112010
Helper locks for fork-join parallel programming · PPoPP 2010
Concurrent programming › transactional memory
nested transactions
0.122008
Nested parallelism in transactional memory · PPoPP 2008
Safer open-nested transactions through ownership · PPoPP 2008
Concurrent programming › synchronization
locking
0.012010
Helper locks for fork-join parallel programming · PPoPP 2010
Concurrent programming
synchronization
0.012010
Helper locks for fork-join parallel programming · PPoPP 2010
Parallel and multicore computing › parallelization strategies
nested parallelism
0.012008
Nested parallelism in transactional memory · PPoPP 2008

Methods — techniques the papers use, named apart from their topics

pedigree mechanism · 0.3implicit batching · 0.2software transactional memory · 0.2work-stealing · 0.1work stealing · 0.1
YearPublicationVenuePosition
2015 Brief Announcement: A Compiler-Runtime Application Binary Interface for Pipe-While Loops
abstract
Pipe-while loops have been proposed as a language construct for expressing pipeline parallelism in task-parallel languages. However, this loop construct has only been prototyped in research systems that lack compiler support. We demonstrate how to extend Intel® Cilk™ Plus, a production-quality task-parallel language, to implement pipe-while loops. We propose an extension to the compiler-runtime application binary interface (ABI) of Cilk Plus to support pipe-while loops. This extension maintains compatibility with existing language constructs and existing Cilk Plus binaries. We validate this ABI by prototyping the required runtime modifications and simulating the required front-end compiler transformations using preprocessor macros and C++ lambda functions.
Jim Sukha
SPAA1
2014 Provably good scheduling for parallel programs that use data structures through implicit batching
abstract
This poster proposes an efficient runtime scheduler that provides provable performance guarantees to parallel programs that use data structures through the use of implicit batching.
Kunal Agrawal 0001, Jeremy T. Fineman, Brendan Sheridan, Jim Sukha, Robert Utterback
PPoPP4
2014 Provably good scheduling for parallel programs that use data structures through implicit batching
abstract
Although concurrent data structures are commonly used in practice on shared-memory machines, even the most efficient concurrent structures often lack performance theorems guaranteeing linear speedup for the enclosing parallel program. Moreover, efficient concurrent data structures are difficult to design. In contrast, parallel batched data structures do provide provable performance guarantees, since processing a batch in parallel is easier than dealing with the arbitrary asynchrony of concurrent accesses. They can limit programmability, however, since restructuring a parallel program to use batched data structure instead of concurrent data structure can often be difficult or even infeasible.
Kunal Agrawal 0001, Jeremy T. Fineman, Kefu Lu, Brendan Sheridan, Jim Sukha, Robert Utterback
SPAA5
2013 On-the-fly pipeline parallelism
abstract
Pipeline parallelism organizes a parallel program as a linear sequence of s stages. Each stage processes elements of a data stream, passing each processed data element to the next stage, and then taking on a new element before the subsequent stages have necessarily completed their processing. Pipeline parallelism is used especially in streaming applications that perform video, audio, and digital signal processing. Three out of 13 benchmarks in PARSEC, a popular software benchmark suite designed for shared-memory multiprocessors, can be expressed as pipeline parallelism.
I-Ting Angelina Lee, Charles E. Leiserson, Tao B. Schardl, Jim Sukha, Zhunping Zhang
SPAA4
2012 Deterministic parallel random-number generation for dynamic-multithreading platforms
abstract
Existing concurrency platforms for dynamic multithreading do not provide repeatable parallel random-number generators. This paper proposes that a mechanism called pedigrees be built into the runtime system to enable efficient deterministic parallel random-number generation. Experiments with the open-source MIT Cilk runtime system show that the overhead for maintaining pedigrees is negligible. Specifically, on a suite of 10 benchmarks, the relative overhead of Cilk with pedigrees to the original Cilk has a geometric mean of less than 1%.
Charles E. Leiserson, Tao B. Schardl, Jim Sukha
PPoPP3
2010 Executing task graphs using work-stealing
abstract
NABBIT is a work-stealing library for execution of task graphs with arbitrary dependencies which is implemented as a library for the multithreaded programming language Cilk++. We prove that Nabbit executes static task graphs in parallel in time which is asymptotically optimal for graphs whose nodes have constant in-degree and out-degree. To evaluate the performance of Nabbit, we implemented a dynamic program representing the Smith-Waterman algorithm, an irregular dynamic program on a two-dimensional grid. Our experiments indicate that when task-graph nodes are mapped to reasonably sized blocks, Nabbit exhibits low overhead and scales as well as or better than other scheduling strategies. The Nabbit implementation that solves the dynamic program using a task graph even manages in some cases to outperform a divide-and-conquer implementation for directly solving the same dynamic program. Finally, we extend both the Nabbit implementation and the completion-time bounds to handle dynamic task graphs, that is, graphs whose nodes and edges are created on the fly at runtime.
Kunal Agrawal 0001, Charles E. Leiserson, Jim Sukha
IPDPS3
2010 Helper locks for fork-join parallel programming
abstract
Helper locks allow programs with large parallel critical sections, called parallel regions, to execute more efficiently by enlisting processors that might otherwise be waiting on the helper lock to aid in the execution of the parallel region. Suppose that a processor p is executing a parallel region A after having acquired the lock L protecting A. If another processor p′ tries to acquire L, then instead of blocking and waiting for p to complete A, processor p′ joins p to help it complete A. Additional processors not blocked on L may also help to execute A.
Kunal Agrawal 0001, Charles E. Leiserson, Jim Sukha
PPoPP3
2010 Brief announcement: serial-parallel reciprocity in dynamic multithreaded languages
abstract
In dynamically multithreaded platforms that employ work stealing, there appears to be a fundamental tradeoff between providing provably good time and space bounds and supporting SP-reciprocity, the property of allowing arbitrary calling between parallel and serial code, including legacy serial binaries. Many known dynamically multithreaded platforms either fail to support SP-reciprocity or sacrifice on the provable time and space bounds that an efficient work-stealing scheduler could otherwise guarantee.
Kunal Agrawal 0001, I-Ting Angelina Lee, Jim Sukha
SPAA3
2009 Safe open-nested transactions through ownership
abstract
Researchers in transactional memory (TM) have proposed open nesting as a methodology for increasing the concurrency of transactional programs. The idea is to ignore ``low-level'' memory operations of an open-nested transaction when detecting conflicts for its parent transaction, and instead perform abstract concurrency control for the ``high-level'' operation that the nested transaction represents. To support this methodology, TM systems use an open-nested commit mechanism that commits all changes performed by an open-nested transaction directly to memory, thereby avoiding low-level conflicts. Unfortunately, because the TM runtime is unaware of the different levels of memory, unconstrained use of open-nested commits can lead to anomalous program behavior.
Kunal Agrawal 0001, I-Ting Angelina Lee, Jim Sukha
PPoPP3
2009 Brief announcement: a lower bound for depth-restricted work stealing
abstract
Work stealing is a common technique used in the runtime schedulers of parallel languages such as Cilk and parallel libraries such as Intel Threading Building Blocks (TBB). Depth-restricted work stealing is a restriction of Cilk-like work stealing in which a processor blocked on a task at depth d can only steal tasks from other processors at depth greater than d. To support programs coded in a blocking style, i.e., code without explicit continuations, TBB imposes a depth restriction on work stealing to limit the stack space used by a computation.We present a lower bound on the completion time of a computation executed using a depth-restricted work-stealing scheduler. In particular, we construct a computation which on P processors runs a factor of Ω(P) slower with depth-restricted work stealing as compared to unrestricted work stealing. On this pessimal computation, depth-restricted work stealing asymptotically serializes execution while unrestricted work stealing achieves linear speedup.
Jim Sukha
SPAA1
2008 Nested parallelism in transactional memory
abstract
This paper investigates adding transactions with nested parallelism and nested transactions to a dynamically multithreaded parallel programming language that generates only series-parallel programs. We describe XConflict, a data structure that facilitates conflict detection for a software transactional memory system which supports transactions with nested parallelism and unbounded nesting depth. For languages that use a Cilk-like work-stealing scheduler, XConflict answers concurrent conflict queries in O(1) time and can be maintained efficiently. In particular, for a program with T1 work and a span (or critical-path length) of T∞, the running time on p processors of the program augmented with XConflict is only O(T1/p + pT∞).
Kunal Agrawal 0001, Jeremy T. Fineman, Jim Sukha
PPoPP3
2008 Safer open-nested transactions through ownership
abstract
No abstract available.
Kunal Agrawal 0001, I-Ting Angelina Lee, Jim Sukha
PPoPP3
2008 Safe open-nested transactions through ownership
abstract
Researchers in transactional memory (TM) have proposed open-nested transactions for increasing concurrency. The idea is to ignore "low-level" memory operations of the open-nested transaction when detecting conflicts for its parent transaction, and instead perform abstract concurrency control for the "high-level" operation that nested transaction represents. Unfortunately, because the TM runtime is unaware of the different levels of memory, an unconstrained use of open-nested commits can lead to anomalous program behavior.
Kunal Agrawal 0001, I-Ting Angelina Lee, Jim Sukha
SPAA3