Development of algorithmic algebra tools to design parallel programs using heuristics

  • PDF / 96,002 Bytes
  • 7 Pages / 595.276 x 793.701 pts Page_size
  • 26 Downloads / 187 Views

DOWNLOAD

REPORT


DEVELOPMENT OF ALGORITHMIC ALGEBRA TOOLS TO DESIGN PARALLEL PROGRAMS USING HEURISTICS A. E. Doroshenko,a† N. V. Kotyuk,b S. S. Nikolayev,c G. E. Tseytlin,a‡ and E. A. Yatsenkoa††

UDC 681.3

Abstract. The paper proposes a new approach and a system to develop parallel algorithms based on the joint use of the algebraic-algorithmic methodology of specification and development of programs and non-algorithmic (heuristic) techniques for code generation. The algebraic part of the methodology provides the formalized process of parallel program design through high-level algebraic-algorithmic specifications and automating transformations up to program code in a standard programming language. The heuristic part of the system is the dynamic adjustment of program code to a target platform and its optimization using self-learning code generation and heuristic technologies. Keywords: algorithmic algebras, program design, program synthesis, algorithm optimization, heuristics, artificial intelligence. INTRODUCTION Applying the algebraic methodology in programming is one of the current trends in computer science [1, 2]. The present paper employs methods based on algoritmic algebra (AA), which is being developed within the framework of the Ukrainian algebraic-cybernetic school [3, 4]. AA is close to concepts of the algebraic algorithmics [2] and generative programming [5] and is intended to formalize knowledge about object domains with the use of algebraic means. A program development system (called integrated toolkit for program design and synthesis, TDS [6, 7]) has been implemented based on AA. The system combines three forms of knowledge representation: analytic (formula in algorithmic algebra), natural linguistic (text) and graphic (flowgraphs). The TDS is based on the method of dialogue design of syntactically correct algorithms, which is focused on eliminating syntactic errors during the design [3]. An apparatus of equivalent transformations [3, 4] making it possible to improve design objects according to chosen criteria (for example, memory, speed, etc.) has been developed for the AA. As a TDS component, a dialogue transformer of regular schemes based on relations and identities of algorithmic algebra has been developed. The paper [7] analyzes the TermWare rewriting framework as applied to the transformation of algorithmic schemes. The TDS provides a step-by-step program development with the use of transformations, beginning with a formal specification and up to a program code in a target programming language. However, there remains the problem of the efficiency of programs being developed, which cannot be solved completely because to generate a code for quickly developing hardware platforms is a challenge. Thus, a program development problem consists in combining the transformation capacity of the formal algebraic methodology with adaptive technologies of self-adapting programming systems. The present paper employs algebraic-algorithmic means of the TDS together with the MySHA programming system [8], which provides self-learn