Demo Data from EDBT 2026 / reviewers in the wild / expert
Tatsushi Inagaki
dblp:76/1495
· DBLP profile ↗
9ranked-venue papers
5as first author
1since 2021 · last 2022
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 6 · 3 first-authorSystems, architecture and hardware · 4 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author · 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.
| Software engineering, system software, and programming languages
3 papers |
Compilers and program optimization · 63% Runtime systems and virtual machines · 23% Program analysis · 15% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Memory systems · 100% |
Topics — the 10 heaviest of 11, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.1 | 2 | 2003 | Stride prefetching by dynamically inspecting objects · PLDI 2003 Effectiveness of cross-platform optimizations for a java just-in-time compiler · OOPSLA 2003 |
Compilers and program optimization › register allocation
live-range splitting |
0.1 | 1 | 2006 | Profile-based global live-range splitting · PLDI 2006 |
Compilers and program optimization › dynamic optimization
profile-guided optimization |
0.1 | 1 | 2006 | Profile-based global live-range splitting · PLDI 2006 |
Compilers and program optimization
register allocation |
0.1 | 1 | 2006 | Profile-based global live-range splitting · PLDI 2006 |
Program analysis
data flow analysis |
0.0 | 1 | 2003 | Effectiveness of cross-platform optimizations for a java just-in-time compiler · OOPSLA 2003 |
Compilers and program optimization › interprocedural optimization
inlining |
0.0 | 1 | 2003 | Effectiveness of cross-platform optimizations for a java just-in-time compiler · OOPSLA 2003 |
Memory systems
cache |
0.0 | 1 | 2003 | Stride prefetching by dynamically inspecting objects · PLDI 2003 |
Memory systems › cache
prefetching |
0.0 | 1 | 2003 | Stride prefetching by dynamically inspecting objects · PLDI 2003 |
Memory systems › cache › prefetching
stride prefetching |
0.0 | 1 | 2003 | Stride prefetching by dynamically inspecting objects · PLDI 2003 |
Program analysis › dynamic analysis
profiling |
0.0 | 1 | 2003 | Stride prefetching by dynamically inspecting objects · PLDI 2003 |
Methods — techniques the papers use, named apart from their topics
partial interpretation · 0.1object inspection · 0.1partial redundancy elimination · 0.0exception check elimination · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Detecting Layered Bottlenecks in MicroservicesabstractWe propose a method to detect both software and hardware bottlenecks in a web service consisting of microservices. A bottleneck is a resource that limits the maximum performance of the entire web service. Bottlenecks often include both software resources such as threads, locks, and channels, and hardware resources such as processors, memories, and disks. Bottlenecks form a layered structure since a single request can utilize multiple software resources and a hardware resource simultaneously. The microservice architecture makes the detection of layered bottlenecks challenging due to the lack of a uniform analysis perspective across languages, libraries, frameworks, and middle-ware.We detect layered bottlenecks in microservices by profiling numbers and status of working threads in each microservice and dependency among microservices via network connections. Our approach can be applied to various programming languages since it relies only on standard debugging tools. Nevertheless, our approach not only detects which microservice is a bottleneck but also enables us to understand why it becomes a bottleneck. This is enabled by a novel visualization method to show layered bottlenecks in microservices at a glance. We demonstrate that our approach successfully detects and visualizes layered bottlenecks in the state-of-the-art microservice benchmarks, DeathStarBench and Acme Air microservices. This enables us to optimize the microservices themselves to achieve a higher throughput per re-source utilization rate compared with simply scaling the number of replicas of microservices. Tatsushi Inagaki, Yohei Ueda, Moriyoshi Ohara, Sunyanan Choochotkaew, Marcelo Amaral, Scott Trent, Tatsuhiro Chiba, Qi Zhang 0009 |
CLOUD | 1 |
| 2019 | Profile-based Detection of Layered BottlenecksabstractDetection of software bottlenecks which hinder utilizing hardware resources is a classic but complex problem due to the layered structures of the software bottlenecks. However, model-based approaches require a performance model given, which is impractical to maintain under today's agile development environment, and profile-based approaches do not handle the layered structures of the software bottlenecks. Tatsushi Inagaki, Yohei Ueda, Takuya Nakaike, Moriyoshi Ohara |
ICPE | 1 |
| 2010 | Coloring-based coalescing for graph coloring register allocationabstractGraph coloring register allocation tries to minimize the total cost of spilled live ranges of variables. Live-range splitting and coalescing are often performed before the coloring to further reduce the total cost. Coalescing of split live ranges, called sub-ranges, can decrease the total cost by lowering the interference degrees of their common interference neighbors. However, it can also increase the total cost because the coalesced sub-ranges can become uncolorable. In this paper, we propose coloring-based coalescing, which first performs trial coloring and next coalesces all copyrelated sub-ranges that were assigned the same color. The coalesced graph is then colored again with the graph coloring register allocation. The rationale is that coalescing of differently colored sub-ranges could result in spilling because there are some interference neighbors that prevent them from being assigned the same color. Experiments on Java programs show that the combination of live-range splitting and coloring-based coalescing reduces the static spill cost by more than 6% on average, comparing to the baseline coloring without splitting. In contrast, well-known iterated and optimistic coalescing algorithms, when combined with splitting, increase the cost by more than 20%. Coloring-based coalescing improves the execution time by up to 15% and 3% on average, while the existing algorithms improve by up to 12% and 1% on average. Rei Odaira, Takuya Nakaike, Tatsushi Inagaki, Hideaki Komatsu, Toshio Nakatani |
CGO | 3 |
| 2006 | Profile-based global live-range splittingabstractLive-range splitting is a technique to split the live range of a given variable into multiple subranges, each of which can be assigned to a different register or spilled out to memory in order to improve results of coloring register allocation. Previous techniques, such as aggressive live-range splitting, tend to produce extra spill code in the frequently executed (called hot) regions of the code, since they don't distinguish hot regions from others. We propose a new live-range splitting algorithm, which can reduce the amount of spill code in hot regions by coalescing the live ranges based on profile information after splitting the live ranges at every join and fork point in the control-flow graph. Our experimental results have shown that our new algorithm improved the performance of SPECjvm98 by up to 33% over aggressive live-range splitting and 7% over the base coloring algorithm without any live-range splitting. Takuya Nakaike, Tatsushi Inagaki, Hideaki Komatsu, Toshio Nakatani |
PLDI | 2 |
| 2004 | Whole-Stack Analysis and Optimization of Commercial Workloads on Server Systems
C. Richard Attanasio, Jong-Deok Choi, Niteesh Dubey, Kattamuri Ekanadham, Manish Gupta 0002, Tatsushi Inagaki, Kazuaki Ishizaki, Joefon Jann, Robert D. Johnson, Toshio Nakatani, Pratap Pattnaik, Mauricio J. Serrano, Stephen E. Smith, Ian M. Steiner, Yefim Shuf |
NPC | 6 |
| 2003 | Integrated Prepass Scheduling for a Java Just-In-Time Compiler on the IA-64 ArchitectureabstractWe present a new integrated prepass scheduling (IPS) algorithm for a Java just-in-time (JIT) compiler which integrates register minimization into list scheduling. We use backtracking in the list scheduling when we have used up all the available registers. To reduce the overhead of backtracking, we incrementally maintain a set of candidate instructions for undoing scheduling. To maximize the ILP after undoing scheduling, we select an instruction chain with the smallest increase in the total execution time. We implemented our new algorithm in a production-level Java JIT compiler for the Intel Itanium processor. The experiment showed that, compared to the best known algorithm by Govindarajan et al., our IPS algorithm improved the performance by up to +1.8% while it reduced the compilation time for IPS by 58% on average. Tatsushi Inagaki, Hideaki Komatsu, Toshio Nakatani |
CGO | 1 |
| 2003 | Effectiveness of cross-platform optimizations for a java just-in-time compilerabstractThis paper describes the system overview of our Java Just-In-Time (JIT) compiler, which is the basis for the latest production version of IBM Java JIT compiler that supports a diversity of processor architectures including both 32-bit and 64-bit modes, CISC, RISC, and VLIW architectures. In particular, we focus on the design and evaluation of the cross-platform optimizations that are common across different architectures. We studied the effectiveness of each optimization by selectively disabling it in our JIT compiler on three different platforms: IA-32, IA-64, and PowerPC. Our detailed measurements allowed us to rank the optimizations in terms of the greatest performance improvements with the smallest compilation times. The identified set includes method inlining only for tiny methods, exception check eliminations using forward dataflow analysis and partial redundancy elimination, scalar replacement for instance and class fields using dataflow analysis, optimizations for type inclusion checks, and the elimination of merge points in the control flow graphs. These optimizations can achieve 90% of the peak performance for two industry-standard benchmark programs on these platforms with only 34% of the compilation time compared to the case for using all of the optimizations. Kazuaki Ishizaki, Mikio Takeuchi, Kiyokuni Kawachiya, Toshio Suganuma, Osamu Gohda, Tatsushi Inagaki, Akira Koseki, Kazunori Ogata, Motohiro Kawahito, Toshiaki Yasue, Takeshi Ogasawara, Tamiya Onodera, Hideaki Komatsu, Toshio Nakatani |
OOPSLA | 6 |
| 2003 | Stride prefetching by dynamically inspecting objectsabstractSoftware prefetching is a promising technique to hide cache miss latencies, but it remains challenging to effectively prefetch pointer-based data structures because obtaining the memory address to be prefetched requires pointer dereferences. The recently proposed stride prefetching overcomes this problem, but it only exploits inter-iteration stride patterns and relies on an off-line profiling method.We propose a new algorithm for stride prefetching which is intended for use in a dynamic compiler. We exploit both inter- and intra-iteration stride patterns, which we discover using an ultra-lightweight profiling technique, called object inspection. This is a kind of partial interpretation that only a dynamic compiler can perform. During the compilation of a method, the dynamic compiler gathers the profile information by partially interpreting the method using the actual values of parameters and causing no side effects.We evaluated an implementation of our prefetching algorithm in a production-level Java just-in time compiler. The results show that the algorithm achieved up to an 18.9% and 25.1% speedup in industry-standard benchmarks on the Pentium 4 and the Athlon MP, respectively, while it increased the compilation time by less than 3.0%. Tatsushi Inagaki, Tamiya Onodera, Hideaki Komatsu, Toshio Nakatani |
PLDI | 1 |
| 1998 | Supporting Software Distributed Shared Memory with an Optimizing CompilerabstractTo execute a shared memory program efficiently, we have to manage memory consistency with low overheads, and have to utilize communication bandwidth of the platform as much as possible. A software distributed shared memory (DSM) can solve these problems via proper support by an optimizing compiler. The optimizing compiler can detect shared write operations, using interprocedural points-to analysis. It also coalesces shared write commitments onto contiguous regions, and removes redundant write commitments, using interprocedural redundancy elimination. A page based target software DSM system can utilize communication bandwidth, owing to coalescing optimization. We have implemented the above optimizing compiler and a run time software DSM on AP1000+. We have obtained a high speed-up ratio with the SPLASH-2 benchmark suite. The result shows that using an optimizing compiler to assist a software DSM is a promising approach to obtain a good performance. It also shows that the appropriate protocol selection at a write commitment is an effective optimization. Tatsushi Inagaki, Junpei Niwa, Takashi Matsumoto 0002, Kei Hiraki |
ICPP | 1 |