Software Tools for Automation of Parallel Programming on the Basis of Algebra of Algorithms

  • PDF / 122,247 Bytes
  • 8 Pages / 594 x 792 pts Page_size
  • 60 Downloads / 168 Views

DOWNLOAD

REPORT


SOFTWARE–HARDWARE SYSTEMS SOFTWARE TOOLS FOR AUTOMATION OF PARALLEL PROGRAMMING ON THE BASIS OF ALGEBRA OF ALGORITHMS F. I. Andon,a† A. E. Doroshenko,a‡ A. G. Beketov,a†† V. A. Iovchev,a†‡ and E. A. Yatsenkoa‡‡

UDC 681.3

Abstract. The development of the algebra-algorithmic methodology and tools for automated design and generation of programs for graphics processing units is proposed. A particular feature of the proposed approach is the use of high-level specifications that are close to natural-language specifications and also the application of a method that ensures the syntactical correctness of algorithms and programs being designed. The approach was implemented in a toolkit destined for interactively designing algorithm schemes and generating programs. The use of this toolkit is illustrated by the development of a parallel program in the field of meteorology. Keywords: algebra of algorithms, automated program design and generation, graphics processing unit (GPU), parallel programming, algorithm scheme. INTRODUCTION As a result of the widespread use of multi-core processors in modern computer systems, a topical problem is the creation of special means for the development and reengineering of parallel software that would be used at all stages of the software life cycle. The theory, methodology, and software tools for the automated design of parallel programs on the basis of algebra of algorithmics [1] are developed at the Institute of Software Systems of the National Academy of Sciences of Ukraine for a long period. The mentioned algebra is a modern direction of computer science going back to fundamental works of academician V. M. Glushkov on the theory of systems of algorithmic algebras (SAAs). In this theory, the subject of inquiry consists of high-level models of algorithms represented in the form of schemes. In [1–9], formal means are proposed for developing efficient parallel programs for multi-core central processors, GPUs, and systems with distributed memory. These means are based on the use of SAAs [1, 2], ontologies [3], algebraic dynamic models and discrete dynamic systems [4, 5], the method of parametric controlled generation of algorithm schemes [6], and also the technique of term rewriting [7–9]. Taking into account the developed theory and methodology, an integrated toolkit for designing and synthesizing programs (IDS) [2, 6–8] and also the system TermWare for symbolic computations [9] are created. The IDS system is based on the representation of specifications of algorithms in SAAs and generates sequential and parallel programs in the programming languages Java and C++. The TermWare system based on the paradigm of rule rewriting supplements the capabilities of the IDS system and is used for the automation of formal transformations of algorithms with a view to optimizing their performance according to given criteria (memory, speed, equipment loading, etc.). A new IDS version is also developed, namely, an on-line interactive constructor of syntactically correct programs (OISD). a

Institute of Softw