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

Xu Zhao 0004

dblp:37/3580-4 · DBLP profile ↗
← Back
9ranked-venue papers
4as first author
3since 2021 · last 2024
0000-0003-2906-8677ORCID · conflict

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

Software engineering, systems software and programming languages · 7 · 4 first-author · 1 since 2021Systems, architecture and hardware · 3 · 3 since 2021Databases, data management, data science and information retrieval · 1 · 1 since 2021

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
Storage systems · 49% Memory systems · 16% Performance modeling and evaluation · 15%
Software engineering, system software, and programming languages
4 papers
Runtime systems and virtual machines · 34% Compilers and program optimization · 34% Debugging and program repair · 13%

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

TopicWeightPapersLastEvidence papers
Storage systems › indexing
file indexing
1.122022
ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory · ACM Trans. Storage 2022
ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory · FAST 2022
Storage systems › file systems › file system design
persistent memory file system
1.122022
ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory · ACM Trans. Storage 2022
ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory · FAST 2022
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation
0.812024
PyTorch 2: Faster Machine Learning Through Dynamic Python Bytecode Transformation and Graph Compilation · ASPLOS (2) 2024
Memory systems › memory management › virtual memory
address translation
0.612022
ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory · FAST 2022
Storage systems
file systems
0.612022
ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory · ACM Trans. Storage 2022
Embedded and real-time systems › runtime monitoring
non-intrusive profiling
0.422016
Non-Intrusive Performance Profiling for Entire Software Stacks Based on the Flow Reconstruction Principle · OSDI 2016
lprof: A Non-intrusive Request Flow Profiler for Distributed Systems · OSDI 2014
Performance modeling and evaluation
performance diagnosis
0.422016
Non-Intrusive Performance Profiling for Entire Software Stacks Based on the Flow Reconstruction Principle · OSDI 2016
lprof: A Non-intrusive Request Flow Profiler for Distributed Systems · OSDI 2014
Performance modeling and evaluation
profiling
0.422016
Non-Intrusive Performance Profiling for Entire Software Stacks Based on the Flow Reconstruction Principle · OSDI 2016
lprof: A Non-intrusive Request Flow Profiler for Distributed Systems · OSDI 2014
Software maintenance and evolution
logging
0.312017
Log20: Fully Automated Optimal Placement of Log Printing Statements under Specified Overhead Threshold · SOSP 2017
Debugging and program repair › software debugging
post-mortem debugging
0.312017
Log20: Fully Automated Optimal Placement of Log Printing Statements under Specified Overhead Threshold · SOSP 2017
Machine learning › Deep learning architectures and training › deep learning systems
deep learning framework
0.212024
PyTorch 2: Faster Machine Learning Through Dynamic Python Bytecode Transformation and Graph Compilation · ASPLOS (2) 2024
Hardware reliability and fault tolerance
failure analysis
0.212014
Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems · OSDI 2014
Distributed systems
fault tolerance
0.212014
Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems · OSDI 2014
Memory systems
memory management
0.212022
ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory · ACM Trans. Storage 2022
Memory systems › memory management
memory management unit
0.212022
ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory · ACM Trans. Storage 2022
Software testing
software reliability
0.112014
Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems · OSDI 2014
Program analysis
static analysis
0.112014
Cybertron: pushing the limit on I/O reduction in data-parallel programs · OOPSLA 2014
Distributed systems › observability
distributed monitoring
0.112014
lprof: A Non-intrusive Request Flow Profiler for Distributed Systems · OSDI 2014

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

just-in-time compilation · 1.5graph compilation · 1.5runtime profiling · 0.4constraint-based encoding · 0.4tracing · 0.3information theory · 0.3flow reconstruction · 0.2
YearPublicationVenuePosition
2024 PyTorch 2: Faster Machine Learning Through Dynamic Python Bytecode Transformation and Graph Compilation
abstract
This paper introduces two extensions to the popular PyTorch machine learning framework, TorchDynamo and TorchInductor, which implement the torch.compile feature released in PyTorch 2. TorchDynamo is a Python-level just-in-time (JIT) compiler that enables graph compilation in PyTorch programs without sacrificing the flexibility of Python. It achieves this by dynamically modifying Python bytecode before execution and extracting sequences of PyTorch operations into an FX graph, which is then JIT compiled using one of many extensible backends. TorchInductor is the default compiler backend for TorchDynamo, which translates PyTorch programs into OpenAI's Triton for GPUs and C++ for CPUs. Results show that TorchDynamo is able to capture graphs more robustly than prior approaches while adding minimal overhead, and TorchInductor is able to provide a 2.27× inference and 1.41× training geometric mean speedup on an NVIDIA A100 GPU across 180+ real-world models, which outperforms six other compilers. These extensions provide a new way to apply optimizations through compilers in eager mode frameworks like PyTorch.
Jason Ansel, Edward Z. Yang, Horace He, Natalia Gimelshein, Animesh Jain, Michael Voznesensky, Bin Bao, Peter Bell 0008, David Berard, Evgeni Burovski, Geeta Chauhan, Anjali Chourdia, Will Constable, Alban Desmaison, Zach DeVito, Elias Ellison, Will Feng, Jiong Gong, Michael Gschwind, Brian Hirsh, Sherlock Huang, Kshiteej Kalambarkar, Laurent Kirsch, Michael Lazos, Mario Lezcano Casado, Yanbo Liang, Jason Liang, Yinghai Lu, C. K. Luk, Bert Maher, Yunjie Pan, Christian Puhrsch, Matthias Reso, Mark Saroufim, Marcos Yukio Siraichi, Helen Suk, Shunting Zhang, Michael Suo, Phil Tillet, Xu Zhao 0004, Eikan Wang, Keren Zhou 0001, Richard Zou, Ajit Mathews, Xiaoquan Wen, Gregory Chanan, Peng Wu 0001, Soumith Chintala
ASPLOS (2)40
2022 ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory
Ruibin Li, Xiang Ren 0003, Xu Zhao 0004, Siwei He, Michael Stumm, Ding Yuan 0004
FAST3
2022 ctFS: Replacing File Indexing with Hardware Memory Translation through Contiguous File Allocation for Persistent Memory
abstract
Persistent byte-addressable memory (PM) is poised to become prevalent in future computer systems. PMs are significantly faster than disk storage, and accesses to PMs are governed by the Memory Management Unit (MMU) just as accesses with volatile RAM. These unique characteristics shift the bottleneck from I/O to operations such as block address lookup—for example, in write workloads, up to 45% of the overhead in ext4-DAX is due to building and searching extent trees to translate file offsets to addresses on persistent memory. We propose a novel contiguous file system, ctFS, that eliminates most of the overhead associated with indexing structures such as extent trees in the file system. ctFS represents each file as a contiguous region of virtual memory, hence a lookup from the file offset to the address is simply an offset operation, which can be efficiently performed by the hardware MMU at a fraction of the cost of software-maintained indexes. Evaluating ctFS on real-world workloads such as LevelDB shows it outperforms ext4-DAX and SplitFS by 3.6× and 1.8×, respectively.
Ruibin Li, Xiang Ren 0003, Xu Zhao 0004, Siwei He, Michael Stumm, Ding Yuan 0004
ACM Trans. Storage3
2017 The Game of Twenty Questions: Do You Know Where to Log?
abstract
A production system's printed logs are often the only source of runtime information available for postmortem debugging, performance analysis and profiling, security auditing, and user behavior analytics. Therefore, the quality of this data is critically important. Recent work has attempted to enhance log quality by recording additional variable values, but logging statement placement, i.e., where to place a logging statement, which is the most challenging and fundamental problem for improving log quality, has not been adequately addressed so far. This position paper proposes we automate the placement of logging statements by measuring how much uncertainty, i.e., the expected number of possible execution code paths taken by the software, can be removed by adding a logging statement to a basic block. Guided by ideas from information theory, we describe a simple approach that automates logging statement placement. Preliminary results suggest that our algorithm can effectively cover, and further improve, the existing logging statement placements selected by developers. It can compute an optimal logging statement placement that disambiguates the entire function call path with only 0.218% of slowdown.
Xu Zhao 0004, Kirk Rodrigues, Yu Luo 0006, Michael Stumm, Ding Yuan 0004, Yuanyuan Zhou 0001
HotOS1
2017 Log20: Fully Automated Optimal Placement of Log Printing Statements under Specified Overhead Threshold
abstract
When systems fail in production environments, log data is often the only information available to programmers for postmortem debugging. Consequently, programmers' decision on where to place a log printing statement is of crucial importance, as it directly affects how effective and efficient postmortem debugging can be. This paper presents Log20, a tool that determines a near optimal placement of log printing statements under the constraint of adding less than a specified amount of performance overhead. Log20 does this in an automated way without any human involvement. Guided by information theory, the core of our algorithm measures how effective each log printing statement is in disambiguating code paths. To do so, it uses the frequencies of different execution paths that are collected from a production environment by a low-overhead tracing library. We evaluated Log20 on HDFS, HBase, Cassandra, and ZooKeeper, and observed that Log20 is substantially more efficient in code path disambiguation compared to the developers' manually placed log printing statements. Log20 can also output a curve showing the trade-off between the informativeness of the logs and the performance slowdown, so that a developer can choose the right balance.
Xu Zhao 0004, Kirk Rodrigues, Yu Luo 0006, Michael Stumm, Ding Yuan 0004, Yuanyuan Zhou 0001
SOSP1
2016 Non-Intrusive Performance Profiling for Entire Software Stacks Based on the Flow Reconstruction Principle
Xu Zhao 0004, Kirk Rodrigues, Yu Luo 0006, Ding Yuan 0004, Michael Stumm
OSDI1
2014 Cybertron: pushing the limit on I/O reduction in data-parallel programs
abstract
I/O reduction has been a major focus in optimizing data-parallel programs for big-data processing. While the current state-of-the-art techniques use static program analysis to reduce I/O, Cybertron proposes a new direction that incorporates runtime mechanisms to push the limit further on I/O reduction. In particular, Cybertron tracks how data is used in the computation accurately at runtime to filter unused data at finer granularity dynamically, beyond what current static-analysis based mechanisms are capable of, and to facilitate a new mechanism called constraint based encoding for more efficient encoding. Cybertron has been implemented and applied to production data-parallel programs; our extensive evaluations on real programs and real data have shown its effectiveness on I/O reduction over the existing mechanisms at reasonable CPU cost, and its improvement on end-to-end performance in various network environments.
Tian Xiao, Hucheng Zhou, Xu Zhao 0004, Chencheng Ye 0001, Xi Wang 0005, Wei Lin 0016, Lidong Zhou
OOPSLA5
2014 Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems
Ding Yuan 0004, Yu Luo 0006, Xin Zhuang, Guilherme Renna Rodrigues, Xu Zhao 0004, Yongle Zhang 0007, Pranay Jain, Michael Stumm
OSDI5
2014 lprof: A Non-intrusive Request Flow Profiler for Distributed Systems
Xu Zhao 0004, Yongle Zhang 0007, David Lion, Muhammad Faizan Ullah, Yu Luo 0006, Ding Yuan 0004, Michael Stumm
OSDI1