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.

Hyoun Kyu Cho

dblp:11/11029 · DBLP profile ↗
← Back
5ranked-venue papers
2as first author
0since 2021 · last 2019
—ORCID · none

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

Systems, architecture and hardware · 5 · 2 first-authorSoftware engineering, systems software and programming languages · 4 · 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
3 papers
Memory systems · 36% Processor architecture and microarchitecture · 24% Cloud and datacenter computing · 18%
Software engineering, system software, and programming languages
2 papers
Compilers and program optimization · 100%

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

TopicWeightPapersLastEvidence papers
Processor architecture and microarchitecture › front-end
front-end stalls
0.412019
AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers · ISCA 2019
Memory systems › cache › CPU cache
instruction cache
0.412019
AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers · ISCA 2019
Memory systems › cache
instruction cache miss
0.412019
AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers · ISCA 2019
Cloud and datacenter computing › datacenter architecture
warehouse-scale computer
0.412019
AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers · ISCA 2019
Parallel and multicore computing
data parallelism
0.112012
SIMD defragmenter: efficient ILP realization on data-parallel architectures · ASPLOS 2012
Distributed systems
fault tolerance
0.112012
Composable Reliability for Asynchronous Systems · USENIX ATC 2012
Processor architecture and microarchitecture
instruction-level parallelism
0.112012
SIMD defragmenter: efficient ILP realization on data-parallel architectures · ASPLOS 2012
Parallel and multicore computing › data parallelism
SIMD vectorization
0.112012
SIMD defragmenter: efficient ILP realization on data-parallel architectures · ASPLOS 2012
Compilers and program optimization
code layout optimization
0.112019
AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers · ISCA 2019
Compilers and program optimization › code generation
SIMD code generation
0.012012
SIMD defragmenter: efficient ILP realization on data-parallel architectures · ASPLOS 2012
Compilers and program optimization
vectorization
0.012012
SIMD defragmenter: efficient ILP realization on data-parallel architectures · ASPLOS 2012
Distributed systems
asynchronous systems
0.012012
Composable Reliability for Asynchronous Systems · USENIX ATC 2012

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

hardware performance monitoring · 0.8control flow graph analysis · 0.8subgraph-level SIMDization · 0.3data packing/unpacking · 0.3
YearPublicationVenuePosition
2019 AsmDB: understanding and mitigating front-end stalls in warehouse-scale computers
abstract
The large instruction working sets of private and public cloud workloads lead to frequent instruction cache misses and costs in the millions of dollars. While prior work has identified the growing importance of this problem, to date, there has been little analysis of where the misses come from, and what the opportunities are to improve them. To address this challenge, this paper makes three contributions. First, we present the design and deployment of a new, always-on, fleet-wide monitoring system, AsmDB, that tracks front-end bottlenecks. AsmDB uses hardware support to collect bursty execution traces, fleet-wide temporal and spatial sampling, and sophisticated offline post-processing to construct full-program dynamic control-flow graphs. Second, based on a longitudinal analysis of AsmDB data from real-world online services, we present two detailed insights on the sources of front-end stalls: (1) cold code that is brought in along with hot code leads to significant cache fragmentation and a corresponding large number of instruction cache misses; (2) distant branches and calls that are not amenable to traditional cache locality or next-line prefetching strategies account for a large fraction of cache misses. Third, we prototype two optimizations that target these insights. For misses caused by fragmentation, we focus on memcmp, one of the hottest functions contributing to cache misses, and show how fine-grained layout optimizations lead to significant benefits. For misses at the targets of distant jumps, we propose new hardware support for software code prefetching and prototype a new feedback-directed compiler optimization that combines static program flow analysis with dynamic miss profiles to demonstrate significant benefits for several large warehouse-scale workloads. Improving upon prior work, our proposal avoids invasive hardware modifications by prefetching via software in an efficient and scalable way. Simulation results show that such an approach can eliminate up to 96% of instruction cache misses with negligible overheads.
Grant Ayers, Nayana P. Nagendra, David I. August, Hyoun Kyu Cho, Svilen Kanev, Christoforos E. Kozyrakis, Trivikram Krishnamurthy, Heiner Litz, Tipp Moseley, Parthasarathy Ranganathan
ISCA4
2013 Practical lock/unlock pairing for concurrent programs
abstract
In the multicore era, developers face increasing pressure to parallelize their programs. However, building correct and efficient concurrent programs is substantially more difficult than building sequential ones. To address the multicore challenge, numerous tools have been developed to assist multithreaded programmers, including static and dynamic bug detectors, automated bug fixers, and optimization tools. Many of these tools rely on or benefit from the precise identification of critical sections, i.e., sections where the thread of execution holds at least one lock. For languages where critical sections are not lexically scoped, e.g., C/C++, static analysis often fails to pair up lock and unlock calls correctly. In this paper, we propose a practical lock/unlock pairing mechanism that combines static analysis with dynamic instrumentation to identify critical sections in POSIX multithreaded C/C++ programs. Our method first applies a con-servative inter-procedural path-sensitive dataflow analysis to pair up all lock and unlock calls. When the static analysis fails, our method makes assumptions about the pairing using common heuristics. These assumptions are checked at runtime using lightweight instrumentation. Our experiments show that only one out of 891 lock/unlock pairs violates our assumptions at runtime and the instrumentation imposes negligible overhead of 3.34% at most, for large open-source server programs. Overall, our mechanism can pair up 98.2% of all locks including 7.1 % of them paired speculatively.
Hyoun Kyu Cho, Terence Kelly, Yin Wang 0001, Stéphane Lafortune, Hongwei Liao, Scott A. Mahlke
CGO1
2013 Instant profiling: Instrumentation sampling for profiling datacenter applications
abstract
Profile-guided optimization possesses huge potential to save costs for datacenters. Hardware performance monitoring units enable profiling with negligible overhead and they have been proven to be effective to help programmers find code regions to optimize by monitoring datacenter applications continuously on live traffic. However, these hardware features are inflexible and often buggy, limiting the types of data that can be gathered. Instrumentation-based profiling can complement or replace hardware functionality by providing more flexible and targeted information gathering. Unfortunately, the overhead of existing instrumentation mechanisms prevents their use in production runs. In order to be used in datacenters, we need a profiling mechanism to impose overheads of less than a few percent, in terms of both throughput and latency, while still generating meaningful profile data. This paper presents instant profiling, an instrumentation sampling technique using dynamic binary translation. Instead of instrumenting the entire execution, instant profiling periodically interleaves native execution and instrumented execution according to configurable profiling duration and frequency parameters. It further reduces the latency degradation of initial profiling phases by pre-populating a software code cache. We evaluate the performance and effectiveness of this new profiling technique on the SPEC CINT2006 benchmark suite and two datacenter application benchmarks. We show that it is well-suited for deployment to datacenters by incurring less than 6% slowdown and 3% computational overhead on average.
Hyoun Kyu Cho, Tipp Moseley, Richard E. Hank, Derek Bruening, Scott A. Mahlke
CGO1
2012 SIMD defragmenter: efficient ILP realization on data-parallel architectures
abstract
Single-instruction multiple-data (SIMD) accelerators provide an energy-efficient platform to scale the performance of mobile systems while still retaining post-programmability. The central challenge is translating the parallel resources of the SIMD hardware into real application performance. In scientific applications, automatic vectorization techniques have proven quite effective at extracting large levels of data-level parallelism (DLP). However, vectorization is often much less effective for media applications due to low trip count loops, complex control flow, and non-uniform execution behavior. As a result, SIMD lanes remain idle due to insufficient DLP. To attack this problem, this paper proposes a new vectorization pass called SIMD Defragmenter to uncover hidden DLP that lurks below the surface in the form of instruction-level parallelism (ILP). The difficulty is managing the data packing/unpacking overhead that can easily exceed the benefits gained through SIMD execution. The SIMD degragmenter overcomes this problem by identifying groups of compatible instructions (subgraphs) that can be executed in parallel across the SIMD lanes. By SIMDizing in bulk at the subgraph level, packing/unpacking overhead is minimized. On a 16-lane SIMD processor, experimental results show that SIMD defragmentation achieves a mean 1.6x speedup over traditional loop vectorization and a 31% gain over prior research approaches for converting ILP to DLP.
Yongjun Park 0001, Sangwon Seo, Hyunchul Park 0001, Hyoun Kyu Cho, Scott A. Mahlke
ASPLOS4
2012 Composable Reliability for Asynchronous Systems
Sunghwan Yoo, Chip Killian, Terence Kelly, Hyoun Kyu Cho, Steven Plite
USENIX ATC4