EDBT 2026 Demo / reviewers in the wild / expert
Chang-Seo Park
dblp:73/1044
· DBLP profile ↗
8ranked-venue papers
5as first author
0since 2021 · last 2013
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 4 · 4 first-authorSoftware engineering, systems software and programming languages · 4 · 1 first-authorTheory of computation · 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.
| Software engineering, system software, and programming languages
7 papers |
Concurrent programming · 66% Program analysis · 28% Software testing · 5% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Parallel and multicore computing · 100% |
Topics — the 12 heaviest of 12, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
concurrency bugs |
0.4 | 5 | 2012 | Concurrent breakpoints · PPoPP 2012 A randomized dynamic program analysis technique for detecting real deadlocks · PLDI 2009 Effective static deadlock detection · ICSE 2009 |
Program analysis
dynamic analysis |
0.4 | 4 | 2013 | Scalable data race detection for partitioned global address space programs · PPoPP 2013 Efficient data race detection for distributed memory parallel programs · SC 2011 A randomized dynamic program analysis technique for detecting real deadlocks · PLDI 2009 |
Concurrent programming › concurrency bug detection
data race detection |
0.3 | 2 | 2013 | Scalable data race detection for partitioned global address space programs · PPoPP 2013 Efficient data race detection for distributed memory parallel programs · SC 2011 |
Concurrent programming
deadlock detection |
0.2 | 2 | 2009 | A randomized dynamic program analysis technique for detecting real deadlocks · PLDI 2009 Effective static deadlock detection · ICSE 2009 |
Parallel and multicore computing › parallel programming models › distributed memory programming models
partitioned global address space |
0.2 | 1 | 2013 | Scalable data race detection for partitioned global address space programs · PPoPP 2013 |
Concurrent programming › concurrency bugs
concurrency bug reproduction |
0.1 | 1 | 2012 | Concurrent breakpoints · PPoPP 2012 |
Software testing
concurrency testing |
0.1 | 1 | 2009 | CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs · CAV 2009 |
Concurrent programming › deadlock detection
dynamic deadlock detection |
0.1 | 1 | 2009 | A randomized dynamic program analysis technique for detecting real deadlocks · PLDI 2009 |
Program analysis
static analysis |
0.1 | 1 | 2009 | Effective static deadlock detection · ICSE 2009 |
Concurrent programming › concurrency bug detection
atomicity violation detection |
0.1 | 1 | 2008 | Randomized active atomicity violation detection in concurrent programs · SIGSOFT FSE 2008 |
Parallel and multicore computing › parallel computing › parallel programming languages
unified parallel c |
0.0 | 1 | 2011 | Efficient data race detection for distributed memory parallel programs · SC 2011 |
Program analysis › concurrent program analysis
static analysis of concurrent programs |
0.0 | 1 | 2009 | Effective static deadlock detection · ICSE 2009 |
Methods — techniques the papers use, named apart from their topics
dynamic analysis · 0.3hierarchical function and instruction level sampling · 0.3aliasing and locality exploitation · 0.3thread schedule control · 0.2programmatic breakpoints · 0.1concurrent breakpoints · 0.1static analysis · 0.1random thread scheduling · 0.1control-dependence graph · 0.1active testing · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2013 | Scaling data race detection for partitioned global address space programsabstractContemporary and future programming languages for HPC promote hybrid parallelism and shared memory abstractions using a global address space. In this programming style, data races occur easily and are notoriously hard to find. Existing state-of-the-art data race detectors exhibit 10X-100X performance degradation and do not handle hybrid parallelism. In this paper we present the first complete implementation of data race detection at scale for UPC programs. Our implementation tracks local and global memory references in the program and it uses two techniques to reduce the overhead: 1) hierarchical function and instruction level sampling; and 2) exploiting the runtime persistence of aliasing and locality specific to Partitioned Global Address Space applications. The results indicate that both techniques are required in practice: well optimized instruction sampling introduces overheads as high as 6500% (65X slowdown), while each technique in separation is able to reduce it only to 1000% (10X slowdown). When applying the optimizations in conjunction our tool finds all previously known data races in our benchmark programs with at most 50% overhead when running on 2048 cores. Furthermore, while previous results illustrate the benefits of function level sampling, our experiences show that this technique does not work for scientific programs: instruction sampling or a hybrid approach is required. Chang-Seo Park, Koushik Sen, Costin Iancu |
ICS | 1 |
| 2013 | Scalable data race detection for partitioned global address space programsabstractContemporary and future programming languages for HPC promote hybrid parallelism and shared memory abstractions using a global address space. In this programming style, data races occur easily and are notoriously hard to find. Previous work on data race detection for shared memory programs reports 10X-100X slowdowns for non-scientific programs. Previous work on distributed memory programs instruments only communication operations. In this paper we present the first complete implementation of data race detection at scale for UPC programs. Our implementation tracks local and global memory references in the program and it uses two techniques to reduce the overhead: 1) hierarchical function and instruction level sampling; and 2) exploiting the runtime persistence of aliasing and locality specific to Partitioned Global Address Space applications. The results indicate that both techniques are required in practice: well optimized instruction sampling introduces overheads as high as 6500% (65X slowdown), while each technique in separation is able to reduce it to 1000% (10X slowdown). When applying the optimizations in conjunction our tool finds all previously known data races in our benchmark programs with at most 50% overhead. Furthermore, while previous results illustrate the benefits of function level sampling, our experiences show that this technique does not work for scientific programs: instruction sampling or a hybrid approach is required. Chang-Seo Park, Koushik Sen, Costin Iancu |
PPoPP | 1 |
| 2012 | Concurrent breakpointsabstractIn program debugging, reproducibility of bugs is a key requirement. Unfortunately, bugs in concurrent programs are notoriously difficult to reproduce because bugs due to concurrency happen under very specific thread schedules and the likelihood of taking such corner-case schedules during regular testing is very low. We propose concurrent breakpoints, a light-weight and programmatic way to make a concurrency bug reproducible. We describe a mechanism that helps to hit a concurrent breakpoint in a concurrent execution with high probability. We have implemented concurrent breakpoints as a light-weight library for Java and C/C++ programs. We have used the implementation to deterministically reproduce several known non-deterministic bugs in real-world concurrent Java and C/C++ programs with almost 100% probability. Chang-Seo Park, Koushik Sen |
PPoPP | 1 |
| 2011 | Efficient data race detection for distributed memory parallel programsabstractIn this paper we present a precise data race detection technique for distributed memory parallel programs. Our technique, which we call Active Testing, builds on our previous work on race detection for shared memory Java and C programs and it handles programs written using shared memory approaches as well as bulk communication. Active testing works in two phases: in the first phase, it performs an imprecise dynamic analysis of an execution of the program and finds potential data races that could happen if the program is executed with a different thread schedule. In the second phase, active testing re-executes the program by actively controlling the thread schedule so that the data races reported in the first phase can be confirmed. A key highlight of our technique is that it can scalably handle distributed programs with bulk communication and single- and splitphase barriers. Another key feature of our technique is that it is precise---a data race confirmed by active testing is an actual data race present in the program; however, being a testing approach, our technique can miss actual data races. We implement the framework for the UPC programming language and demonstrate scalability up to a thousand cores for programs with both fine-grained and bulk (MPI style) communication. The tool confirms previously known bugs and uncovers several unknown ones. Our extensions capture constructs proposed in several modern programming languages for High Performance Computing, most notably non-blocking barriers and collectives. Chang-Seo Park, Koushik Sen, Paul Hargrove, Costin Iancu |
SC | 1 |
| 2009 | CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs
Pallavi Joshi, Mayur Naik, Chang-Seo Park, Koushik Sen |
CAV | 3 |
| 2009 | Effective static deadlock detectionabstractWe present an effective static deadlock detection algorithm for Java. Our algorithm uses a novel combination of static analyses each of which approximates a different necessary condition for a deadlock. We have implemented the algorithm and report upon our experience applying it to a suite of multi-threaded Java programs. While neither sound nor complete, our approach is effective in practice, finding all known deadlocks as well as discovering previously unknown ones in our benchmarks with few false alarms. Mayur Naik, Chang-Seo Park, Koushik Sen, David Gay |
ICSE | 2 |
| 2009 | A randomized dynamic program analysis technique for detecting real deadlocksabstractWe present a novel dynamic analysis technique that finds real deadlocks in multi-threaded programs. Our technique runs in two stages. In the first stage, we use an imprecise dynamic analysis technique to find potential deadlocks in a multi-threaded program by observing an execution of the program. In the second stage, we control a random thread scheduler to create the potential deadlocks with high probability. Unlike other dynamic analysis techniques, our approach has the advantage that it does not give any false warnings. We have implemented the technique in a prototype tool for Java, and have experimented on a number of large multi-threaded Java programs. We report a number of previously known and unknown real deadlocks that were found in these benchmarks. Pallavi Joshi, Chang-Seo Park, Koushik Sen, Mayur Naik |
PLDI | 2 |
| 2008 | Randomized active atomicity violation detection in concurrent programsabstractAtomicity is an important specification that enables programmers to understand atomic blocks of code in a multi-threaded program as if they are sequential. This significantly simplifies the programmer's job to reason about correctness. Several modern multithreaded programming languages provide no built-in support to ensure atomicity; instead they rely on the fact that programmers would use locks properly in order to guarantee that atomic code blocks are indeed atomic. However, improper use of locks can sometimes fail to ensure atomicity. Therefore, we need tools that can check atomicity properties of lock-based code automatically. Chang-Seo Park, Koushik Sen |
SIGSOFT FSE | 1 |