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.

Jingyue Wu

dblp:60/10014 · DBLP profile ↗
← Back
8ranked-venue papers
4as first author
0since 2021 · last 2016
—ORCID · none

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

Software engineering, systems software and programming languages · 8 · 4 first-authorSystems, architecture and hardware · 2 · 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.

Software engineering, system software, and programming languages
6 papers
Program analysis · 50% Concurrent programming · 35% Program verification · 12%

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

TopicWeightPapersLastEvidence papers
Concurrent programming › concurrency bug detection
data race detection
0.322012
Sound and precise analysis of parallel programs through schedule specialization · PLDI 2012
Bypassing Races in Live Applications with Execution Filters · OSDI 2010
Concurrent programming › deterministic execution
deterministic multithreading
0.222011
Efficient deterministic multithreading through schedule relaxation · SOSP 2011
Stable Deterministic Multithreading through Schedule Memoization · OSDI 2010
Program analysis › static analysis › bug detection
dynamic bug detection
0.212013
Effective dynamic detection of alias analysis errors · ESEC/SIGSOFT FSE 2013
Program analysis
symbolic execution
0.212013
Verifying systems rules using rule-directed symbolic execution · ASPLOS 2013
Program analysis
dynamic analysis
0.112012
Sound and precise analysis of parallel programs through schedule specialization · PLDI 2012
Program analysis › static analysis
pointer analysis
0.112012
Sound and precise analysis of parallel programs through schedule specialization · PLDI 2012
Program analysis
static analysis
0.112012
Sound and precise analysis of parallel programs through schedule specialization · PLDI 2012
Concurrent programming › concurrency bugs
data races
0.112011
Efficient deterministic multithreading through schedule relaxation · SOSP 2011
Operating systems › resource management › process management › CPU scheduling
thread scheduling
0.122011
Efficient deterministic multithreading through schedule relaxation · SOSP 2011
Stable Deterministic Multithreading through Schedule Memoization · OSDI 2010
Program verification › system verification
systems code verification
0.012013
Verifying systems rules using rule-directed symbolic execution · ASPLOS 2013
Concurrent programming › concurrency models › multithreading
multithreaded programs
0.012012
Sound and precise analysis of parallel programs through schedule specialization · PLDI 2012

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

symbolic execution · 0.2static analysis · 0.2pointer address observation · 0.2dynamic analysis · 0.2schedule-aware def-use analysis · 0.1path slicing · 0.1synchronization operations · 0.1schedule relaxation · 0.1
YearPublicationVenuePosition
2016 gpucc: an open-source GPGPU compiler
abstract
Graphics Processing Units have emerged as powerful accelerators for massively parallel, numerically intensive workloads. The two dominant software models for these devices are NVIDIA’s CUDA and the cross-platform OpenCL standard. Until now, there has not been a fully open-source compiler targeting the CUDA environment, hampering general compiler and architecture research and making deployment difficult in datacenter or supercomputer environments. In this paper, we present gpucc, an LLVM-based, fully open-source, CUDA compatible compiler for high performance computing. It performs various general and CUDA-specific optimizations to generate high performance code. The Clang-based frontend supports modern language features such as those in C++11 and C++14. Compile time is 8% faster than NVIDIA’s toolchain (nvcc) and it reduces compile time by up to 2.4x for pathological compilations (>100 secs), which tend to dominate build times in parallel build environments. Compared to nvcc, gpucc’s runtime performance is on par for several open-source benchmarks, such as Rodinia (0.8% faster), SHOC (0.5% slower), or Tensor (3.7% faster). It outperforms nvcc on internal large-scale end-to-end benchmarks by up to 51.0%, with a geometric mean of 22.9%.
Jingyue Wu, Artem Belevich, Eli Bendersky, Mark Heffernan, Chris Leary, Jacques A. Pienaar, Bjarke Roune, Rob Springer, Xuetian Weng, Robert Hundt
CGO1
2013 Verifying systems rules using rule-directed symbolic execution
abstract
Systems code must obey many rules, such as "opened files must be closed." One approach to verifying rules is static analysis, but this technique cannot infer precise runtime effects of code, often emitting many false positives. An alternative is symbolic execution, a technique that verifies program paths over all inputs up to a bounded size. However, when applied to verify rules, existing symbolic execution systems often blindly explore many redundant program paths while missing relevant ones that may contain bugs.
Heming Cui, Jingyue Wu
ASPLOS3
2013 Effective dynamic detection of alias analysis errors
abstract
Alias analysis is perhaps one of the most crucial and widely used analyses, and has attracted tremendous research efforts over the years. Yet, advanced alias analyses are extremely difficult to get right, and the bugs in these analyses are one key reason that they have not been adopted to production compilers. This paper presents NeonGoby, a system for effectively detecting errors in alias analysis implementations, improving their correctness and hopefully widening their adoption. NeonGoby detects the worst type of bugs where the alias analysis claims that two pointers never alias, but they actually alias at runtime. NeonGoby works by dynamically observing pointer addresses during the execution of a test program and then checking these addresses against an alias analysis for errors. It is explicitly designed to (1) be agnostic to the alias analysis it checks for maximum applicability and ease of use and (2) detect alias analysis errors that manifest on real-world programs and workloads. It emits no false positives as long as test programs do not have undefined behavior per ANSI C specification or call external functions that interfere with our detection algorithm. It reduces performance overhead using a practical selection of techniques. Evaluation on three popular alias analyses and real-world programs Apache and MySQL shows that NeonGoby effectively finds 29 alias analysis bugs with zero false positives and reasonable overhead; the most serious four bugs have been patched by the developers. To enable alias analysis builders to start using NeonGoby today, we have released it open-source at https://github.com/columbia/neongoby, along with our error detection results and proposed patches.
Jingyue Wu, Yang Tang 0003
ESEC/SIGSOFT FSE1
2012 Sound and precise analysis of parallel programs through schedule specialization
abstract
Parallel programs are known to be difficult to analyze. A key reason is that they typically have an enormous number of execution interleavings, or schedules. Static analysis over all schedules requires over-approximations, resulting in poor precision; dynamic analysis rarely covers more than a tiny fraction of all schedules. We propose an approach called schedule specialization to analyze a parallel program over only a small set of schedules for precision, and then enforce these schedules at runtime for soundness of the static analysis results. We build a schedule specialization framework for C/C++ multithreaded programs that use Pthreads. Our framework avoids the need to modify every analysis to be schedule-aware by specializing a program into a simpler program based on a schedule, so that the resultant program can be analyzed with stock analyses for improved precision. Moreover, our framework provides a precise schedule-aware def-use analysis on memory locations, enabling us to build three highly precise analyses: an alias analyzer, a data-race detector, and a path slicer. Evaluation on 17 programs, including 2 real-world programs and 15 popular benchmarks, shows that analyses using our framework reduced may-aliases by 61.9%, false race reports by 69%, and path slices by 48.7%; and detected 7 unknown bugs in well-checked programs.
Jingyue Wu, Yang Tang 0003, Heming Cui
PLDI1
2011 Optimizing Data Partitioning for Data-Parallel Computing
Qifa Ke, Vijayan Prabhakaran, Yinglian Xie, Jingyue Wu
HotOS5
2011 Efficient deterministic multithreading through schedule relaxation
abstract
Deterministic multithreading (DMT) eliminates many pernicious software problems caused by nondeterminism. It works by constraining a program to repeat the same thread interleavings, or schedules, when given same input. Despite much recent research, it remains an open challenge to build both deterministic and efficient DMT systems for general programs on commodity hardware. To deterministically resolve a data race, a DMT system must enforce a deterministic schedule of shared memory accesses, or mem-schedule, which can incur prohibitive overhead. By using schedules consisting only of synchronization operations, or sync-schedule, this overhead can be avoided. However, a sync-schedule is deterministic only for race-free programs, but most programs have races.
Heming Cui, Jingyue Wu, John Gallagher, Huayang Guo
SOSP2
2010 Stable Deterministic Multithreading through Schedule Memoization
Heming Cui, Jingyue Wu, Chia-Che Tsai
OSDI2
2010 Bypassing Races in Live Applications with Execution Filters
Jingyue Wu, Heming Cui
OSDI1