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

Yong Hun Eom

dblp:55/9117 · DBLP profile ↗
← Back
6ranked-venue papers
3as first author
0since 2021 · last 2015
—ORCID · none

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

Software engineering, systems software and programming languages · 4 · 2 first-authorSystems, architecture and hardware · 3 · 1 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
3 papers
Parallel and multicore computing · 78% Cloud and datacenter computing · 22%
Software engineering, system software, and programming languages
3 papers
Compilers and program optimization · 45% Programming languages and type systems · 24% Program analysis · 24%
Databases, data mining, and information retrieval
1 paper
Information retrieval · 100%

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

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallelization strategies
incremental parallelization
0.212015
Few-to-Many: Incremental Parallelism for Reducing Tail Latency in Interactive Services · ASPLOS 2015
Compilers and program optimization
parallelizing compiler
0.112012
DOJ: dynamically parallelizing object-oriented programs · PPoPP 2012
Program analysis
static analysis
0.112012
Self-stabilizing Java · PLDI 2012
Programming languages and type systems
type systems
0.112012
Self-stabilizing Java · PLDI 2012
Parallel and multicore computing › parallel programming models
automatic parallelization
0.112012
DOJ: dynamically parallelizing object-oriented programs · PPoPP 2012
Parallel and multicore computing › speculative parallelization
dynamic parallelization
0.112012
DOJ: dynamically parallelizing object-oriented programs · PPoPP 2012
Parallel and multicore computing › deterministic execution
deterministic parallelism
0.112011
OoOJava: software out-of-order execution · PPoPP 2011
Parallel and multicore computing
parallel programming models
0.112011
OoOJava: software out-of-order execution · PPoPP 2011
Information retrieval
search engines
0.112015
Few-to-Many: Incremental Parallelism for Reducing Tail Latency in Interactive Services · ASPLOS 2015
Operating systems
fault tolerance
0.012012
Self-stabilizing Java · PLDI 2012

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

service demand profiling · 0.4interval table policy · 0.4static analysis · 0.4task annotation · 0.3dynamic dependence analysis · 0.3developer annotations · 0.2type system · 0.1code generation · 0.1
YearPublicationVenuePosition
2015 Few-to-Many: Incremental Parallelism for Reducing Tail Latency in Interactive Services
abstract
Interactive services, such as Web search, recommendations, games, and finance, must respond quickly to satisfy customers. Achieving this goal requires optimizing tail (e.g., 99th+ percentile) latency. Although every server is multicore, parallelizing individual requests to reduce tail latency is challenging because (1) service demand is unknown when requests arrive; (2) blindly parallelizing all requests quickly oversubscribes hardware resources; and (3) parallelizing the numerous short requests will not improve tail latency. This paper introduces Few-to-Many (FM) incremental parallelization, which dynamically increases parallelism to reduce tail latency. FM uses request service demand profiles and hardware parallelism in an offline phase to compute a policy, represented as an interval table, which specifies when and how much software parallelism to add. At runtime, FM adds parallelism as specified by the interval table indexed by dynamic system load and request execution time progress. The longer a request executes, the more parallelism FM adds. We evaluate FM in Lucene, an open-source enterprise search engine, and in Bing, a commercial Web search engine. FM improves the 99th percentile response time up to 32% in Lucene and up to 26% in Bing, compared to prior state-of-the-art parallelization. Compared to running requests sequentially in Bing, FM improves tail latency by a factor of two. These results illustrate that incremental parallelism is a powerful tool for reducing tail latency.
Md. Enamul Haque, Yong Hun Eom, Yuxiong He, Sameh Elnikety, Ricardo Bianchini, Kathryn S. McKinley
ASPLOS2
2013 Sinfer: Inferring information flow lattices for checking self-stabilization
abstract
Self-stabilizing programs are guaranteed to recover from state corruption caused by software bugs or other events and eventually reach the correct state. Many real-world applications including embedded controllers and multimedia applications can be designed to make key components self-stabilizing. Type systems and static analyses can automatically check whether a program is self stabilizing. The existing approach for checking self-stabilization requires developers to manually annotate code. We present an annotation inference algorithm that automatically derives an initial set of annotations and therefore lowers the effort to build self-stabilizing systems. Our experience with the algorithm indicates that it effectively inferred annotations for our benchmarks.
Yong Hun Eom, Brian Demsky
ISSRE1
2012 Self-stabilizing Java
abstract
Self-stabilizing programs automatically recover from state corruption caused by software bugs and other sources to reach the correct state. A number of applications are inherently self-stabilizing---such programs typically overwrite all non-constant data with new input data. We present a type system and static analyses that together check whether a program is self-stabilizing. We combine this with a code generation strategy that ensures that a program continues executing long enough to self-stabilize. Our experience using SJava indicates that (1) SJava annotations are easy to write once one understands a program and (2) SJava successfully checked that several benchmarks were self-stabilizing.
Yong Hun Eom, Brian Demsky
PLDI1
2012 DOJ: dynamically parallelizing object-oriented programs
abstract
We present Dynamic Out-of-Order Java (DOJ), a dynamic parallelization approach. In DOJ, a developer annotates code blocks as tasks to decouple these blocks from the parent execution thread. The DOJ compiler then analyzes the code to generate heap examiners that ensure the parallel execution preserves the behavior of the original sequential program. Heap examiners dynamically extract heap dependences between code blocks and determine when it is safe to execute a code block.
Yong Hun Eom, James Christopher Jenista, Brian Demsky
PPoPP1
2011 Using Disjoint Reachability for Parallelization
James Christopher Jenista, Yong Hun Eom, Brian Demsky
CC2
2011 OoOJava: software out-of-order execution
abstract
Developing parallel software using current tools can be challenging. Even experts find it difficult to reason about the use of locks and often accidentally introduce race conditions and deadlocks into parallel software. OoOJava is a compiler-assisted approach that leverages developer annotations along with static analysis to provide an easy-to-use deterministic parallel programming model. OoOJava extends Java with a task annotation that instructs the compiler to consider a code block for out-of-order execution. OoOJava executes tasks as soon as their data dependences are resolved and guarantees that the execution of an annotated program preserves the exact semantics of the original sequential program. We have implemented OoOJava and achieved an average speedup of 16.6x on our ten benchmarks.
James Christopher Jenista, Yong Hun Eom, Brian Demsky
PPoPP2