Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Tomoharu Ugawa is active.

Publication


Featured researches published by Tomoharu Ugawa.


international symposium on memory management | 2014

Exploring garbage collection with haswell hardware transactional memory

Carl G. Ritson; Tomoharu Ugawa; Richard Jones

Intels latest processor microarchitecture, Haswell, adds support for a restricted form of transactional memory to the x86 programming model. We explore how this can be applied to three garbage collection scenarios in Jikes RVM: parallel copying, concurrent copying and bitmap marking. We demonstrate gains in concurrent copying speed over traditional synchronisation mechanisms of 48-101%. We also show how similar but portable performance gains can be achieved through software transactional memory techniques. We identify the architectural overhead of capturing sufficient work for transactional execution as a major stumbling block to the effective use of transactions in the other scenarios.


arXiv: Software Engineering | 2016

Reducing State Explosion for Software Model Checking with Relaxed Memory Consistency Models

Tatsuya Abe; Tomoharu Ugawa; Toshiyuki Maeda; Kousuke Matsumoto

Software model checking suffers from the so-called state explosion problem, and relaxed memory consistency models even worsen this situation. What is worse, parameterizing model checking by memory consistency models, that is, to make the model checker as flexible as we can supply definitions of memory consistency models as an input, intensifies state explosion. This paper explores specific reasons for state explosion in model checking with multiple memory consistency models, provides some optimizations intended to mitigate the problem, and applies them to McSPIN, a model checker for memory consistency models that we are developing. The effects of the optimizations and the usefulness of McSPIN are demonstrated experimentally by verifying copying protocols of concurrent copying garbage collection algorithms. To the best of our knowledge, this is the first model checking of the concurrent copying protocols under relaxed memory consistency models.


international symposium on memory management | 2014

Reference object processing in on-the-fly garbage collection

Tomoharu Ugawa; Richard Jones; Carl G. Ritson

Most proposals for on-the-fly garbage collection ignore the question of Javas weak and other reference types. However, we show that reference types are heavily used in DaCapo benchmarks. Of the few collectors that do address this issue, most block mutators, either globally or individually, while processing reference types. We introduce a new framework for processing reference types on-the-fly in Jikes RVM. Our framework supports both insertion and deletion write barriers. We have model checked our algorithm and incorporated it in our new implementation of the Sapphire on-the-fly collector. Using a deletion barrier, we process references while mutators are running in less than three times the time that previous approaches take while mutators are halted; our overall execution times are no worse, and often better.


international conference on parallel and distributed systems | 2011

SAW: Java Synchronization Selection from Lock or Software Transactional Memory

Yuji Yamada; Hideya Iwasaki; Tomoharu Ugawa

To rewrite a sequential program into a concurrent one, the programmer has to enforce atomic execution of a sequence of accesses to shared memory to avoid unexpected inconsistency. There are two means of enforcing this atomicity: one is the use of lock-based synchronization and the other is the use of software transactional memory (STM). However, it is difficult to predict which one is more suitable for an application than the other without trying both mechanisms because their performance heavily depends on the application. We have developed a system named \emph{SAW} that decouples the synchronization mechanism from the application logic of a Java program and enables the programmer to statically select a suitable synchronization mechanism from a lock or an STM. We introduce annotations to specify critical sections and shared objects. In accordance with the annotated source program and the programmers choice of a synchronization mechanism, SAW generates aspects representing the synchronization processing. By comparing the rewriting cost using SAW and that using individual synchronization mechanism directly, we show that SAW relieves the programmers burden. Through several benchmarks, we demonstrate that SAW is an effective way of switching synchronization mechanisms according to the characteristics of each application.


workshop on program analysis for software tools and engineering | 2013

A proper performance evaluation system that summarizes code placement effects

Masahiro Yasugi; Yuki Matsuda; Tomoharu Ugawa

The growing complexity of underlying systems such as memory hierarchies and speculation mechanisms are making it difficult to perform proper performance evaluations. This is a serious problem especially when we want to know the overheads of adding new functionality to existing languages (or systems/applications), or to know small changes in performance caused by small changes to programs. A problem is that equivalent executable programs, which only differ in their instruction addresses (code placement), often exhibit significantly different performance. This difference can be explained by the fact that code placement affects the underlying branch predictors and instruction cache subsystems. By taking into account such code placement effects, this paper proposes a proper evaluation scheme that cancels accidental factors in code placement by statistically summarizing the performance of a sufficient number of artificial programs that differ from the evaluation target program (almost) only in their code placement. We developed a system, called Code Shaker, that supports performance evaluations based on the proposed scheme.


international symposium on memory management | 2013

Adaptive scanning reduces sweep time for the Lisp2 mark-compact garbage collector

Kazuya Morikawa; Tomoharu Ugawa; Hideya Iwasaki

Mark-compact garbage collection helps long-running programs avoid fragmentation. The Lisp2 mark-compact collector is a classic but still widely-used compaction algorithm. It sequentially scans the entire heap to compact all live objects at one end of the heap while preserving their order of addresses. Since the heap is generally large, this scanning takes a long time. Although some collectors adopt a separate bitmap into which mark bits of objects are stored to reduce the scanning time, we observed that scanning the bitmap can take longer than scanning the heap if objects are densely located. We propose a new scanning method from this observation, which adaptively alternates methods of scanning depending on heap usage; it scans those parts of the heap where live objects are densely located whereas it scans the bitmap for the remaining parts. We implemented this scanning method in the Lisp2 collector of Jikes RVM. The experimental results revealed that the adaptive scanner scanned faster than the method that only scanned the heap and the method that only scanned the bitmap.


verified software theories tools experiments | 2017

Reordering Control Approaches to State Explosion in Model Checking with Memory Consistency Models

Tatsuya Abe; Tomoharu Ugawa; Toshiyuki Maeda

The relaxedness of memory consistency models, which allows the reordering of instructions and their effects, intensifies the state explosion problem of software model checking. In this paper, we propose three approaches that can reduce the number of states to be visited in software model checking with memory consistency models. The proposed methods control the reordering of instructions. The first approach controls the number of reordered instructions. The second approach specifies the instructions that are reordered in advance, and prevents the other instructions from being reordered. The third approach specifies the instructions that are reordered, and preferentially explores execution traces with the reorderings. We applied these approaches to the McSPIN model checker that we have been developing, and reported the effectiveness of the approaches by examining various concurrent programs.


conference on object oriented programming systems languages and applications | 2017

Model checking copy phases of concurrent copying garbage collection with various memory models

Tomoharu Ugawa; Tatsuya Abe; Toshiyuki Maeda

Modern concurrent copying garbage collection (GC), in particular, real-time GC, uses fine-grained synchronizations with a mutator, which is the application program that mutates memory, when it moves objects in its copy phase. It resolves a data race using a concurrent copying protocol, which is implemented as interactions between the collector threads and the read and write barriers that the mutator threads execute. The behavioral effects of the concurrent copying protocol rely on the memory model of the CPUs and the programming languages in which the GC is implemented. It is difficult, however, to formally investigate the behavioral properties of concurrent copying protocols against various memory models. To address this problem, we studied the feasibility of the bounded model checking of concurrent copying protocols with memory models. We investigated a correctness-related behavioral property of copying protocols of various concurrent copying GC algorithms, including real-time GC Stopless, Clover, Chicken, Staccato, and Schism against six memory models, total store ordering (TSO), partial store ordering (PSO), relaxed memory ordering (RMO), and their variants, in addition to sequential consistency (SC) using bounded model checking. For each combination of a protocol and memory model, we conducted model checking with a model of a mutator. In this wide range of case studies, we found faults in two GC algorithms, one of which is relevant to the memory model. We fixed these faults with the great help of counterexamples. We also modified some protocols so that they work under some memory models weaker than those for which the original protocols were designed, and checked them using model checking. We believe that bounded model checking is a feasible approach to investigate behavioral properties of concurrent copying protocols under weak memory models.


international symposium on memory management | 2010

Improved replication-based incremental garbage collection for embedded systems

Tomoharu Ugawa; Hideya Iwasaki; Taiichi Yuasa

We have developed an incremental compacting garbage collector for embedded Java systems. The collector divides the heap into equal sized pages and uses the segregated free lists for fast allocation. Collectors that have such a heap layout have a problem of fragmentation in allocating objects larger than the page size. We solve this problem by using the replication-based incremental compaction. The compactor evacuates all objects in one area, the evacuation area, of the heap, thereby creating a large chunk of free space. We developed an algorithm for choosing the evacuation area that effectively cures fragmentation. The compactor does not use any read-barriers. Instead, it uses a technique similar to the replication-based incremental copying collection. This needs forwarding pointers for all evacuated objects. Rather than introducing an extra field for each object, we use a hash table to store forwarding pointers. Evaluation of this garbage collector implemented in Suns J2ME Java Virtual Machine showed that all the benchmarks used were able to run without memory starvation using the heap sizes of only 151%-286% of the maximum amount of live data plus 8 KB of the hash table. Experiments on a desktop computer, though it is not a platform for embedded systems, showed that the maximum pause time was shorter than 200 μs, which was comparable to that of our implementation of the snapshot-at-the-beginning collector without compaction. On an ARM processor, the runtime overhead was 1%-16% with 8.0% on average compared to the mark-sweep collector.


international symposium on object/component/service-oriented real-time distributed computing | 2009

Project Report: Toward the Realization of Highly Reliable Embedded Systems

Takuya Katayama; Tomoji Kishi; Shintaro Hosoai; Tatsuo Nakajima; Taiichi Yuasa; Midori Sugaya; Tomoharu Ugawa

Our society depend on embedded and ubiquitous computingand the reliability of embedded software becomesmore and more important. We have conducted a five yearsproject with industries to develop software for realizinghighly reliable embedded systems. We have tackled reliabilityissues from the following aspects. 1)Design environment:we have developed a UML design verification tool thatapply model checking techniques to improve the designquality of application software. 2)Operating environment:we have developed operating system supports that realizemultiple execution of real-time operating systems andalso developed operating systems with enhanced resourcemanagement. Both technologies contribute the realizationof robust run-time environment. 3) Real-time environment:we have developed real-time garbage collection techniquesfor Jave. They prevent the suspension of applications thatviolates the correct behavior of real-time applications. Also,they reduce the effort of application programmers to avoidgarbage-collection during important execution timing. Wehave obtained fruitful results from these three researchthemes, and some of them are actually used in industries.Furthermore, we have integrated the results to make synergeticeffect of them. In order to demonstrate the effectiveness,we have conduct an experiment. In this paper, we introducethe project and its results.

Collaboration


Dive into the Tomoharu Ugawa's collaboration.

Top Co-Authors

Avatar

Hideya Iwasaki

University of Electro-Communications

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Tatsuya Abe

Chiba Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Toshiyuki Maeda

Chiba Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Kazuya Morikawa

University of Electro-Communications

View shared research outputs
Researchain Logo
Decentralizing Knowledge