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

Hao Luo 0007

dblp:14/3727-7 · DBLP profile ↗
← Back
11ranked-venue papers
3as first author
0since 2021 · last 2019
—ORCID · conflict

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

Systems, architecture and hardware · 6 · 2 first-authorSoftware engineering, systems software and programming languages · 5 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1

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
5 papers
Memory systems · 45% Performance modeling and evaluation · 23% Parallel and multicore computing · 19%

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

TopicWeightPapersLastEvidence papers
Memory systems
cache
0.522017
Thread Data Sharing in Cache: Theory and Measurement · PPoPP 2017
HOTL: a higher order theory of locality · ASPLOS 2013
Performance modeling and evaluation
workload characterization
0.522017
Thread Data Sharing in Cache: Theory and Measurement · PPoPP 2017
HOTL: a higher order theory of locality · ASPLOS 2013
Memory systems
cache management
0.312017
Cache Exclusivity and Sharing: Theory and Optimization · ACM Trans. Archit. Code Optim. 2017
Performance modeling and evaluation
cache performance modeling
0.312017
Cache Exclusivity and Sharing: Theory and Optimization · ACM Trans. Archit. Code Optim. 2017
Memory systems › cache management
cache sharing
0.312017
Cache Exclusivity and Sharing: Theory and Optimization · ACM Trans. Archit. Code Optim. 2017
Parallel and multicore computing › concurrent programming
concurrency bugs
0.312017
LD: Low-Overhead GPU Race Detection Without Access Monitoring · ACM Trans. Archit. Code Optim. 2017
Parallel and multicore computing › parallel computing › parallel program debugging
data race detection
0.312017
LD: Low-Overhead GPU Race Detection Without Access Monitoring · ACM Trans. Archit. Code Optim. 2017
Memory systems › memory hierarchy › cache hierarchy management
exclusive caching
0.312017
Cache Exclusivity and Sharing: Theory and Optimization · ACM Trans. Archit. Code Optim. 2017
GPUs and heterogeneous computing
GPU programming
0.312017
LD: Low-Overhead GPU Race Detection Without Access Monitoring · ACM Trans. Archit. Code Optim. 2017
Memory systems › cache › multiprocessor cache
shared cache
0.312017
Thread Data Sharing in Cache: Theory and Measurement · PPoPP 2017
GPUs and heterogeneous computing › GPU memory
GPU memory performance
0.212016
Data-centric combinatorial optimization of parallel code · PPoPP 2016
Performance modeling and evaluation › workload characterization
locality analysis
0.212013
HOTL: a higher order theory of locality · ASPLOS 2013
Memory systems › memory referencing behavior
reuse distance
0.212013
HOTL: a higher order theory of locality · ASPLOS 2013
Parallel and multicore computing › parallel computing › parallel optimization
parallel code optimization
0.112016
Data-centric combinatorial optimization of parallel code · PPoPP 2016

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

value-based checking · 0.3shared footprint metric · 0.3memory trace scanning · 0.3hardware counter measurement · 0.3compiler instrumentation · 0.3analytical performance modeling · 0.3profiling · 0.2combinatorial optimization · 0.2higher-order theory · 0.2
YearPublicationVenuePosition
2019 Timescale functions for parallel memory allocation
abstract
Memory allocation is increasingly important to parallel performance, yet it is challenging because a program has data of many sizes, and the demand differs from thread to thread. Modern allocators use highly tuned heuristics but do not provide uniformly good performance when the level of concurrency increases from a few threads to hundreds of threads.
Pengcheng Li 0001, Hao Luo 0007, Chen Ding 0001
ISMM2
2017 Thread Data Sharing in Cache: Theory and Measurement
abstract
On modern multi-core processors, independent workloads often interfere with each other by competing for shared cache space. However, for multi-threaded workloads, where a single copy of data can be accessed by multiple threads, the threads can cooperatively share cache. Because data sharing consolidates the collective working set of threads, the effective size of shared cache becomes larger than it would have been when data are not shared. This paper presents a new theory of data sharing. It includes (1) a new metric called the shared footprint to mathematically compute the amount of data shared by any group of threads in any size cache, and (2) a linear-time algorithm to measure shared footprint by scanning the memory trace of a multi-threaded program. The paper presents the practical implementation and evaluates the new theory using 14 PARSEC and SPEC OMP benchmarks, including an example use of shared footprint in program optimization.
Hao Luo 0007, Pengcheng Li 0001, Chen Ding 0001
PPoPP1
2017 LD: Low-Overhead GPU Race Detection Without Access Monitoring
abstract
Data race detection has become an important problem in GPU programming. Previous designs of CPU race-checking tools are mainly task parallel and incur high overhead on GPUs due to access instrumentation, especially when monitoring many thousands of threads routinely used by GPU programs. This article presents a novel data-parallel solution designed and optimized for the GPU architecture. It includes compiler support and a set of runtime techniques. It uses value-based checking, which detects the races reported in previous work, finds new races, and supports race-free deterministic GPU execution. More important, race checking is massively data parallel and does not introduce divergent branching or atomic synchronization. Its slowdown is less than 5 × for over half of the tests and 10 × on average, which is orders of magnitude more efficient than the cuda-memcheck tool by Nvidia and the methods that use fine-grained access instrumentation.
Pengcheng Li 0001, Dong Chen 0015, Jacob Brock, Hao Luo 0007, Eddy Z. Zhang, Chen Ding 0001
ACM Trans. Archit. Code Optim.5
2017 Cache Exclusivity and Sharing: Theory and Optimization
abstract
A problem on multicore systems is cache sharing, where the cache occupancy of a program depends on the cache usage of peer programs. Exclusive cache hierarchy as used on AMD processors is an effective solution to allow processor cores to have a large private cache while still benefitting from shared cache. The shared cache stores the “victims” (i.e., data evicted from private caches). The performance depends on how victims of co-run programs interact in shared cache. This article presents a new metric called the victim footprint (VFP). It is measured once per program in its solo execution and can then be combined to compute the performance of any exclusive cache hierarchy, replacing parallel testing with theoretical analysis. The work evaluates the VFP by using it to analyze cache sharing by parallel mixes of sequential programs, comparing the accuracy of the theory to hardware counter results, and measuring the benefit of exclusivity-aware analysis and optimization.
Chencheng Ye 0001, Chen Ding 0001, Hao Luo 0007, Jacob Brock, Dong Chen 0015, Hai Jin 0001
ACM Trans. Archit. Code Optim.3
2016 Compositional model of coherence and NUMA effects for optimizing thread and data placement
abstract
On today's multi-socket systems, the parallel performance is hampered by remote cache and memory access. There is much prior work on thread and data placement to curb remote access. However, the number of possible placements is large, and heuristic-based techniques only examines a fraction of the entire solution space. This paper presents a compositional model to analyze the effect of thread and data placement choices. The model includes an analysis for cache coherence and (remote) memory access. It has the property of being compositional, meaning the performances of all the placements can be composed from the results of one profiling pass. Based on this model, this paper further introduces a prototype tool called Tapas to optimize parallel programs for non-uniform memory access (NUMA) platforms.
Hao Luo 0007, Jacob Brock, Pengcheng Li 0001, Chen Ding 0001, Chencheng Ye 0001
ISPASS1
2016 Rethinking a heap hierarchy as a cache hierarchy: a higher-order theory of memory demand (HOTM)
abstract
Modern memory allocators divide the available memory between different threads and object size classes. They use many parameters that are related and mutually affecting. Existing solutions are based on heuristics which cannot serve all applications equally well. This paper presents a theory of memory demand. The theory enables the global optimization of heap parameters for an application. The paper evaluates the theory and the optimization using multi-threaded micro-benchmarks as well as real applications including Apache, Ghostscript interpreter, and a database benchmarking tool and shows that the global optimization theoretically outperforms three typical heuristics by 15% to 113%.
Pengcheng Li 0001, Hao Luo 0007, Chen Ding 0001
ISMM2
2016 Data-centric combinatorial optimization of parallel code
abstract
Memory performance is one essential factor for tapping into the full potential of the massive parallelism of GPU. It has motivated some recent efforts in GPU cache modeling. This paper presents a new data-centric way to model the performance of a system with heterogeneous memory resources. The new model is composable, meaning it can predict the performance difference due to placing data differently by profiling the execution just once.
Hao Luo 0007, Guoyang Chen, Pengcheng Li 0001, Chen Ding 0001, Xipeng Shen
PPoPP1
2014 Code Layout Optimization for Defensiveness and Politeness in Shared Cache
abstract
Code layout optimization seeks to reorganize the instructions of a program to better utilize the cache. On multicore, parallel executions improve the throughput but may significantly increase the cache contention, because the co-run programs share the cache and in the case of hyper-threading, the instruction cache. In this paper, we extend the reference affinity model for use in whole-program code layout optimization. We also implement the temporal relation graph (TRG) model used in prior work for comparison. For code reorganization, we have developed both function reordering and inter-procedural basic-block reordering. We implement the two models and the two transformations in the LLVM compiler. Experimental results on a set of benchmarks show frequently 20% to 50% reduction in instruction cache misses. By better utilizing the shared cache, the new techniques magnify the throughput improvement of hyper-threading by 8%.
Pengcheng Li 0001, Hao Luo 0007, Chen Ding 0001, Ziang Hu, Handong Ye
ICPP2
2014 Modeling heap data growth using average liveness
abstract
Most of today's programs make use of a sizable heap to store dynamic data. To characterize the heap dynamics, this paper presents a set of metrics to measure the average amount of data live and dead in a period of execution. They are collectively called average liveness. The paper defines these metrics of average liveness, gives linear-time algorithms for measurement, and discusses their use in finding the best heap size. The algorithms are implemented in a Java tracing system called Elephant Tracks and evaluated using the Dacapo benchmarks running on the Oracle HotSpot and IBM J9 Java virtual machines.
Pengcheng Li 0001, Chen Ding 0001, Hao Luo 0007
ISMM3
2014 Performance Metrics and Models for Shared Cache
Chen Ding 0001, Xiaoya Xiang, Bin Bao, Hao Luo 0007, Yingwei Luo, Xiaolin Wang 0001
J. Comput. Sci. Technol.4
2013 HOTL: a higher order theory of locality
abstract
The locality metrics are many, for example, miss ratio to test performance, data footprint to manage cache sharing, and reuse distance to analyze and optimize a program. It is unclear how different metrics are related, whether one subsumes another, and what combination may represent locality completely.
Xiaoya Xiang, Chen Ding 0001, Hao Luo 0007, Bin Bao
ASPLOS3