A multi-agent approach to improve execution efficiency of fragmented programs in Luna system

Бесплатный доступ

Development of efficient numerical parallel programs is an complex and laborious problem which impedes application of supercomputers to perform numerical simulations. Parallel programs construction languages and systems are of help by providing to a user a high-level language to describe a desired parallel program and generating the program automatically. The systems do not only reduce complexity of parallel programs development, but also provide static and/or dynamic adaptation of the program execution to particular hardware and execution conditions (e.g. workload balancing). This implies that a high-level parallel program specification may be transformed into a parallel program in diverse wavs, many of which may be optimal for particular simulation. Such diversity can either be resolved statically or dynamically, the former causing less run-time overhead, while the latter preserves the ability to dynamically tune parallel program execution. Finding a good trade-off between static and dynamic decision making is a challenging problem in system parallel programming, which also depends on the computational model on which the system is based. LuNA system [1] is a system for automatic construction of numerical parallel programs, which is being developed in ICMMG SB RAS. It is based on the theory of parallel programs synthesis based on the computational models [2] and follows the active knowledge concept [3]. Its input language LuNA comprises means to describe pieces of data and computations, called data and computational fragments correspondingly (DFs and CFs). DFs are immutable coarse-grained data objects, while CFs are side-effect free sequential procedure calls on particular DFs as input or output arguments. Such dataflow computational model allows the system to automatically execute CFs on a distributed memory machine either by generating a conventional distributed program which performs procedures invocation according to the information dependencies, or by dynamically interpreting the program on a multicomputer. The former approach lacks dynamic flexibility while the latter approach causes significant overhead. In order to achieve a trade-off between those two options a multi-agent approach is suggested. For that a multi-agent system is defined, where each agent implements a single CF in a distributed environment, which allows an agent to consume and produce DFs and to create new agents. Each agent is controlled by an imperative sequential program in a conventional language (C++ to be specific).

Еще

Fragmented programming, luna system, parallel programs construction automation, high performance computing, multi-agents approach, partial evaluation

Короткий адрес: https://sciup.org/143181007

IDR: 143181007   |   DOI: 10.24412/2073-0667-2023-3-55-67

Статья научная