Youngjoon Jo

dblp:09/8199 · DBLP profile ↗
← Back
7ranked-venue papers
5as 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 · 4 · 3 first-authorSoftware engineering, systems software and programming languages · 3 · 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
4 papers
Parallel and multicore computing · 71% GPUs and heterogeneous computing · 22% Processor architecture and microarchitecture · 7%
Software engineering, system software, and programming languages
3 papers
Compilers and program optimization · 100%

Topics — the 10 heaviest of 11, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization › memory optimization
data locality optimization
0.322012
Automatically enhancing locality for tree traversals with traversal splicing · OOPSLA 2012
Enhancing locality for recursive traversals of recursive structures · OOPSLA 2011
Compilers and program optimization
program transformation
0.212015
Efficient execution of recursive programs on commodity vector hardware · PLDI 2015
Parallel and multicore computing › parallel programming models
task-based programming
0.212015
Efficient execution of recursive programs on commodity vector hardware · PLDI 2015
Parallel and multicore computing › graph processing
tree traversal
0.222013
General transformations for GPU execution of tree traversals · SC 2013
Automatically enhancing locality for tree traversals with traversal splicing · OOPSLA 2012
GPUs and heterogeneous computing
GPU computing
0.212013
General transformations for GPU execution of tree traversals · SC 2013
Parallel and multicore computing › parallel algorithms
irregular algorithms
0.212013
General transformations for GPU execution of tree traversals · SC 2013
Compilers and program optimization
loop transformation
0.112011
Enhancing locality for recursive traversals of recursive structures · OOPSLA 2011
Parallel and multicore computing › parallel computing › parallel applications
irregular applications
0.122012
Automatically enhancing locality for tree traversals with traversal splicing · OOPSLA 2012
Enhancing locality for recursive traversals of recursive structures · OOPSLA 2011
Processor architecture and microarchitecture › vector processor
vector processing unit
0.112015
Efficient execution of recursive programs on commodity vector hardware · PLDI 2015
GPUs and heterogeneous computing › GPU memory management
GPU memory hierarchy optimization
0.012013
General transformations for GPU execution of tree traversals · SC 2013

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

scheduling policy · 0.4code transformation · 0.4point sorting · 0.3point blocking · 0.3loop tiling · 0.2auto-tuning · 0.2general-purpose GPU transformation · 0.2
YearPublicationVenuePosition
2015 Efficient execution of recursive programs on commodity vector hardware
abstract
The pursuit of computational efficiency has led to the proliferation of throughput-oriented hardware, from GPUs to increasingly wide vector units on commodity processors and accelerators. This hardware is designed to efficiently execute data-parallel computations in a vectorized manner. However, many algorithms are more naturally expressed as divide-and-conquer, recursive, task-parallel computations. In the absence of data parallelism, it seems that such algorithms are not well suited to throughput-oriented architectures. This paper presents a set of novel code transformations that expose the data parallelism latent in recursive, task-parallel programs. These transformations facilitate straightforward vectorization of task-parallel programs on commodity hardware. We also present scheduling policies that maintain high utilization of vector resources while limiting space usage. Across several task-parallel benchmarks, we demonstrate both efficient vector resource utilization and substantial speedup on chips using Intel’s SSE4.2 vector units, as well as accelerators using Intel’s AVX512 units.
Bin Ren 0002, Youngjoon Jo, Sriram Krishnamoorthy, Kunal Agrawal 0001, Milind Kulkarni 0001
PLDI2
2013 Automatic vectorization of tree traversals
abstract
Repeated tree traversals are ubiquitous in many domains such as scientific simulation, data mining and graphics. Modern commodity processors support SIMD instructions, and using these instructions to process multiple traversals at once has the potential to provide substantial performance improvements. Unfortunately these algorithms often feature highly diverging traversals which inhibit efficient SIMD utilization, to the point that other, less profitable sources of vectorization must be exploited instead. Previous work has proposed traversal splicing, a locality transformation for tree traversals, which dynamically reorders traversals based on previous behavior, based on the insight that traversals which have behaved similarly so far are likely to behave similarly in the future. In this work, we cast this dynamic reordering as a scheduling for efficient SIMD execution, and show that it can dramatically improve the SIMD utilization of diverging traversals, close to ideal utilization. For five irregular tree traversal algorithms, our techniques are able to deliver speedups of 2.78 on average over baseline implementations. Furthermore our techniques can effectively SIMDize algorithms that prior, manual vectorization attempts could not.
Youngjoon Jo, Michael Goldfarb, Milind Kulkarni 0001
PACT1
2013 General transformations for GPU execution of tree traversals
abstract
With the advent of programmer-friendly GPU computing environments, there has been much interest in offloading workloads that can exploit the high degree of parallelism available on modern GPUs. Exploiting this parallelism and optimizing for the GPU memory hierarchy is well-understood for regular applications that operate on dense data structures such as arrays and matrices. However, there has been significantly less work in the area of irregular algorithms and even less so when pointer-based dynamic data structures are involved. Recently, irregular algorithms such as Barnes-Hut and kd-tree traversals have been implemented on GPUs, yielding significant performance gains over CPU implementations. However, the implementations often rely on exploiting application-specific semantics to get acceptable performance. We argue that there are general-purpose techniques for implementing irregular algorithms on GPUs that exploit similarities in algorithmic structure rather than application-specific knowledge. We demonstrate these techniques on several tree traversal algorithms, achieving speedups of up to 38x over 32--thread CPU versions.
Michael Goldfarb, Youngjoon Jo, Milind Kulkarni 0001
SC2
2012 Automatically enhancing locality for tree traversals with traversal splicing
abstract
Generally applicable techniques for improving temporal locality in irregular programs, which operate over pointer-based data structures such as trees and graphs, are scarce. Focusing on a subset of irregular programs, namely, tree traversal algorithms like Barnes-Hut and nearest neighbor, previous work has proposed point blocking, a technique analogous to loop tiling in regular programs, to improve locality. However point blocking is highly dependent on point sorting, a technique to reorder points so that consecutive points will have similar traversals. Performing this a priori sort requires an understanding of the semantics of the algorithm and hence highly application specific techniques. In this work, we propose traversal splicing, a new, general, automatic locality optimization for irregular tree traversal codes, that is less sensitive to point order, and hence can deliver substantially better performance, even in the absence of semantic information. For six benchmark algorithms, we show that traversal splicing can deliver single-thread speedups of up to 9.147 (geometric mean: 3.095) over baseline implementations, and up to 4.752 (geometric mean: 2.079) over point-blocked implementations. Further, we show that in many cases, automatically applying traversal splicing to a baseline implementation yields performance that is better than carefully hand-optimized implementations.
Youngjoon Jo, Milind Kulkarni 0001
OOPSLA1
2011 Enhancing locality for recursive traversals of recursive structures
abstract
While there has been decades of work on developing automatic, locality-enhancing transformations for regular programs that operate over dense matrices and arrays, there has been little investigation of such transformations for irregular programs, which operate over pointer-based data structures such as graphs, trees and lists. In this paper, we argue that, for a class of irregular applications we call traversal codes, there exists substantial data reuse and hence opportunity for locality exploitation. We develop a novel optimization called point blocking, inspired by the classic tiling loop transformation, and show that it can substantially enhance temporal locality in traversal codes. We then present a transformation and optimization framework called TreeTiler that automatically detects opportunities for applying point blocking and applies the transformation. TreeTiler uses autotuning techniques to determine appropriate parameters for the transformation. For a series of traversal algorithms drawn from real-world applications, we show that TreeTiler is able to deliver performance improvements of up to 245% over an optimized (but non-transformed) parallel baseline, and in several cases, significantly better scalability.
Youngjoon Jo, Milind Kulkarni 0001
OOPSLA1
2011 Brief announcement: locality-enhancing loop transformations for tree traversal algorithms
abstract
In this paper, we discuss transformations that can be applied to irregular programs that perform tree traversals, which can be seen as analogs of the popular regular transformations of loop tiling. We demonstrate the utility of these transformations on two tree traversal algorithms, the Barnes-Hut algorithm and raytracing, achieving speedups of up to 237% over the baseline implementation.
Youngjoon Jo, Milind Kulkarni 0001
SPAA1
2010 Brief announcement: locality-aware load balancing for speculatively-parallelized irregular applications
abstract
Load balancing is an important consideration when running data-parallel programs. While traditional techniques trade off the cost of load imbalance with the overhead of mitigating that imbalance, when speculatively parallelizing amorphous data-parallel applications, we must also consider the effects of load balancing decisions on locality and speculation accuracy. We present two data centric load balancing strategies which account for the intricacies of amorphous data-parallel execution. We implement these strategies as schedulers in the Galois system and demonstrate that they outperform traditional load balancing schedulers, as well as a data-centric, non-load-balancing scheduler.
Youngjoon Jo, Milind Kulkarni 0001
SPAA1