研究業績リスト
その他
Enhancing and Exploiting a Language Mechanism for Legitimate Manipulation of Execution States
作成日時 01/04/2009–31/03/2014
Offer Organization: Japan Society for the Promotion of Science, System Name: Grants-in-Aid for Scientific Research, Category: Grant-in-Aid for Scientific Research (B), Fund Type: -, Overall Grant Amount: - (direct: 13800000, indirect: 4140000)
We can implement language systems with the functionality of dynamic maintenance of software execution by using a language mechanism (called L-closures) which enables legitimate manipulation of execution states. In this study, we applied the proposed mechanism to the efficient implementation of proper tail recursion. We also proposed and evaluated various schemes for exploiting available resources in parallel systems by applying the proposed mechanism to dynamic load balancing. Using a new implementation of the proposed mechanism, we reduced amortized invocation costs of L-closures. We also supported x86-64 in the compiler implementation, and evaluated the effect of register allocation for short functions.
その他
作成日時 2008–2010
Offer Organization: Japan Society for the Promotion of Science, System Name: Grants-in-Aid for Scientific Research, Category: Scientific research (C), general, Fund Type: -, Overall Grant Amount: - (direct: 3100000, indirect: 930000)
In this research, we proposed a method of semi-automatic client/server partitioning of Web applications. To achieve this, we also designed and implemented a programming language for that. In our language, a programmer annotates parts of a program that are able to be executed on either side. Partitioning these parts between the client and server is performed semi-automatically in advance of the execution of the program. Our system can adapt to changes in the load of a Web environment by dynamically choosing an appropriate partition pattern among several partition patterns that are prepared in advance of the execution.
その他
Software Development based on Continuous Computing Resources
作成日時 2001–2005
Offer Organization: Japan Society for the Promotion of Science, System Name: Grants-in-Aid for Scientific Research, Category: Grant-in-Aid for Scientific Research on Priority Areas, Fund Type: -, Overall Grant Amount: - (direct: 102800000, indirect: -)
In order to make it possible to construct complexity analysis models and software systems that can cope with both extent and locality of computer systems, we have been working to revisit, unify and develop existing computation concepts from various points of view, based on the notion of Continuous Computing Resources. The major outcomes of this project are the following.
1. Complexity Analysis based on Continuous Computing Resource: We proposed a computation model that can uniformly and concisely express various concepts of computation from the memory hierarchy of a single computer to network delay among computers. We showed that complexity analysis results based on this model reflect real computation more precisely than previous models. In order to make it easier to understand the behavior of sophisticated parallel algorithms, we designed a virtual machine of the model and implemented language systems including simulators and visualizers.
2. Concurrent Language Model LMNtal: We designed LMNTal (pronounced as "elemental"), a scalable language model for concurrent computation based on hierarchical graph reduction. On this model, we have established techniques for process structure analysis and implemented this model as realistic and useful programming languages. Since hierarchical graph reduction includes a variety of computation models such as multi-set rewriting models and self-organizing models, it is expected that our results will be useful as a bridge between existing computation models.
3. Language Implementation based on Locality: We showed that runtime efficiency of programming language systems can be remarkably improved by focusing on locality. A typical example is the locality improvement by the use of copying garbage collection based on "hierarchical clustering of data objects". This technique is proposed by further improving the existing technique where live objects are copied in depth-first order, with a small stack area and additionally with a queue that is used in case of stack overflow. This technique improves not only the locality in the virtual memory, but also the locality in the CPU cache, and thus allows high performance implementations on real computer systems.
その他
Study for Optimization of Continuations
作成日時 1997–1998
Offer Organization: Japan Society for the Promotion of Science, System Name: Grants-in-Aid for Scientific Research, Category: Grant-in-Aid for Scientific Research (C), Fund Type: -, Overall Grant Amount: - (direct: 2600000, indirect: -)
While first-class continuations as in the Scheme programming language are powerful, the cost of creating and calling continuations is very high. In order to avoid this problem, we have proposed light-weight continuations called indefinite one-time continuations (or IOCs for short). An IOC can be called at most once but can be called at any time.
If we are sure that a continuation is called at most once during the execution of a program, then by replacing the function "call/cc" which generates a continuation with "call/ioc" which generates an IOC, the performance of the program will be significantly increased. In general, however, it is difficult to determine whether a continuation is called at most once.
In this research, we proposed an algorithm to automatically detect those continuations that can be replaced by IOCs, by analyzing an entire program using a kind of abstract interpretation. Based on this algorithm, we developed a system which detects those "call/cc" calls that can be replaced by "call/ioc" calls. We then analyzed several practical Scheme programs on this system. This algorithm cannot detect all replaceable continuations since the algorithm uses only the information which is statically obtained from a program. However, our experiments showed that most replaceable continuations in practical Scheme programs can be detected by this algorithm.
その他
Study for Effective Use of Vector Processors Based on Data-Parallel Model
作成日時 1995–1996
Offer Organization: Japan Society for the Promotion of Science, System Name: Grants-in-Aid for Scientific Research, Category: Grant-in-Aid for Scientific Research (B), Fund Type: -, Overall Grant Amount: - (direct: 5000000, indirect: -)
We have made fundamentl research on data-parallel computation model and its application to vector processors, from various points of view. The following research topics are included :
1.Parallel processing system based on data-parallel model
We have developed a massively parallel computer system which can execute data-parallel programs efficiently. The hardware of the system includes a SIMD machine SM-1 with 1024 processors, and the software includes language processors for new languages, such as an extended C language and an extended Common Lisp.
2.Applications based on data-parallel model
For some advanced application programs, we have proposed new data-parallel algorithms which greatly increase execution performance. We implement these algorithms in our data-parallel languages, measured their performance on SM-1, and proved the effectiveness.
3.The programming language NCX based on data-parallel model
In order to make data-parallel programming widely available, we have designed a new extended C language, called NCX,which is independent of computer architectures. We have developed NCX compilers for various parallel machines with difference architectures. In order to reduce the cost of compiler development, we have developed a preprocessor that performs architecture-independent analysis of NCX programs. This preprocessor is used in all NCX compilers so far developed.
4.Code generation of a data-parallel language for vector processors
we have developed a new method to execute data-parallel programs efficiently on vector processors. The basic idea of this method is to handle a set of data objects in data-parallel programs as a single vector that can be processed efficiently on vector processors. We have developed an experimental NCX compiler based on this method. Using this compiler, we have executed some applications on the Micro VP and proved the effectiveness of the method.