M.S. Akopyan’s research while affiliated with Institute for System Programming, Russian Academy of Sciences and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (3)


Using multithreaded processes in ParJava environment
  • Article
  • Full-text available

January 2015

·

23 Reads

Proceedings of the Institute for System Programming of RAS

M.S. Akopyan

Modern processors are based on multicore architectures. Such an approach improves the productivity of processors by decreasing the cost of each processor and increasing its performance. When using multicore processors in nodes of HPC cluster we could use following approaches utilizing node resources: (1) multiprocess program (nx1 - running n processes on a node using one thread in each process); or (2) multiprocess-multithreaded (MPMT) (1xn - running one process on a node and inside of a process n threads may work sharing program data of the process). When using multiple threads in a process inside each process privatization is usually performed to reduce critical sections. In this article we consider the second approach, which will bring better results for parallel application presented in this article because of lack of critical sections. The API and appropriate library has been developed and implemented for MPMT applications. The library allows developing parallel applications using MPI interface and inside of each process it is possible to run a few threads. The parallel MPMT application of FT (Fast Furier Transformation) on Java has been developed. The comparison of multiprocess version of FT to MPMT version of FT has been made. Tests on implemented application show 9,5-20% performance improvement. The profiling of developed application shows the bottleneck of MPMT FT is mostly in communication scheme between nodes. Improving the communication scheme will bring better results.

Download

Extension of ParJava model for HPC clusters with multicore nodes

January 2012

·

44 Reads

Proceedings of the Institute for System Programming of RAS

At the beginning of 2000 each node of high performance cluster with distributed memory contained processor with single core and each MPI process of parallel application used to utilize all resources of node. At this moment vendors propose microprocessors with multiple cores on chip and few processors on the single board. Using multiple threads in a single node with modern multicore processors allows to increase performance of parallel application due to usage of shared memory and lower overhead. An extension of model for parallel SPMD programs has been developed with ability to use Java threads. The usage of threads in program allows better utilization of the resources of multicore processor. Developed model allows estimate execution time of parallel program with explicit calls to MPI library, where parallel Java threads could be used in each process. However, there are a lot of problems arising when threads have been used in Java environment. This paper contains recommendations called for performance tuning of multiprocessed-multithreaded program concerning to JVM memory management, garbage collector configuration, management of local buffers etc. Java version of parallel application FT (Fast Furier Transformation) from NPB has been adapted for multiprocess-multithreaded environment. Tests on implemented application show 9-14% performance improvement. Model of multiprocess-multithreaded application has been developed. Performance prediction for multiprocess-multithreaded FT shows 3-7% prediction error.


Implementation of parallel programs interpreter in the development environment ParJava

February 2009

·

15 Reads

·

3 Citations

Programming and Computer Software

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.

Citations (1)


... Применяемые на практике методы распараллеливания кода в различных языках программирования предоставляют такой эффект, как уменьшение времени работы программы, но являются достаточно трудозатратными для программиста. В языке программирования C# к проекту может быть подключена библиотека Threading [1], в языке Java -библиотека Thread [2], в языке Python -библиотека Thread [3], используя которую, на программиста возлагаются задачи по синхронизации, уничтожению и созданию потоков [4]. В процессе создания программ также требуется решить проблемы тупиков, которые могут сложиться из-за неправильного распараллеливания вычислительных процессов. ...

Reference:

Improving the performance of fragments of computer code with high time costs based on parallel programming technologies
Implementation of parallel programs interpreter in the development environment ParJava
  • Citing Article
  • February 2009

Programming and Computer Software