Fortran 90 handbook: complete ANSI/ISO reference
Fortran 90 handbook: complete ANSI/ISO reference
Cilk: an efficient multithreaded runtime system
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
MPI-The Complete Reference, Volume 1: The MPI Core
MPI-The Complete Reference, Volume 1: The MPI Core
Towards Portable Message Passing in Java: Binding MPI
Proceedings of the 4th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Communication Optimizations for Fine-Grained UPC Applications
Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques
Estimation of dynamical characteristics of a parallel program on a model
Programming and Computing Software
The rise and fall of High Performance Fortran: an historical object lesson
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Productivity prediction of MPI programs based on models
Automation and Remote Control
Parallel Programmability and the Chapel Language
International Journal of High Performance Computing Applications
Translation schemes for the HP java parallel programming language
LCPC'01 Proceedings of the 14th international conference on Languages and compilers for parallel computing
Hi-index | 0.00 |
The implementation of the ParJava development environment is considered that enables one to develop parallel applications in the modern programming language Java within the industrial standard MPI. The internal representation of the SPMD program model is described, which is constructed so as to place as much of the interpretation work of a parallel Java program on JavaVM. Features of the model generation and its preparation to the interpretation are described. The model generator transforms the abstract syntax tree of each method of the program being simulated into a model of the control flow, forms a computation model that will be executed on JavaVM, and forms a module for evaluating the execution times of the basic blocks. The interpretation of the model executed on p nodes of a parallel computing system (cluster) is performed in p logical processes of which each is executed in an individual thread. The interpretation of a logical process assumes that all its methods beginning from the main method are interpreted. The interpretation of each method consists in executing the computation model of this method on JavaVM. The order of interpretation of the method's basic blocks is determined by the system interpreter of the method's model. The system makes it possible to reduce parts of the model and interpret the model by parts. Problems of the simulation and interpretation of communication functions are discussed. The communication functions are described using nine basic exchange operations. To evaluate the time needed to transfer data between processes, an empirical dependence between the amount of the transferred data and the transfer time is used, which is obtained using tests. A short description of the ParJava graphical interface is presented. Applications developed using the proposed implementation of the system are platform independent; and the development, tuning, and maintenance overheads for those applications are considerably reduced. This is a contribution to the development of high-productive parallel applications.