МУЛЬТИАГЕНТНЫЙ ПОДХОД К ПОВЫШЕНИЮ ЭФФЕКТИВНОСТИ ИСПОЛНЕНИЯ ФРАГМЕНТИРОВАННЫХ ПРОГРАММ В СИСТЕМЕ LUNA

Λεπτομέρειες βιβλιογραφικής εγγραφής
Τίτλος: МУЛЬТИАГЕНТНЫЙ ПОДХОД К ПОВЫШЕНИЮ ЭФФЕКТИВНОСТИ ИСПОЛНЕНИЯ ФРАГМЕНТИРОВАННЫХ ПРОГРАММ В СИСТЕМЕ LUNA
Στοιχεία εκδότη: Проблемы информатики, 2023.
Έτος έκδοσης: 2023
Θεματικοί όροι: high performance computing, система LuNA, мультиагентный подход, parallel programs construction automation, фрагментированное программирование, partial evaluation, автоматизация конструирования параллельных программ, частичные вычисления, Fragmented programming, LuNA system, multi-agents approach, высокопроизводительные вычисления
Περιγραφή: 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 ways, 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 fl] 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). The environment system supports agents with basic operations, such as storing a DF, migrating a CF to another computing node, etc. Usage of the C++ language to formulate agent programs is beneficial in sense that it is compiled into a highly efficient machine code using conventional C++ compiler. Such approach allows to make decisions on how to execute LuNA programs both statically (by generating corresponding behavior into agents’ programs) and dynamically (by adding dynamic properties support modules into run-time environment and making agents’ behavior depend on that modules). For example, distribution of agents to computing nodes may either be static (in this case each agent will have a particular computing node to migrate to for execution) or dynamic (in this case each agent will request a dynamic balancing module to assign a node to migrate to). The proposed approach showed to be much more efficient than a naive distributed interpretation approach which is confirmed by works (4-5]. The fragmented structure of the program is preserved in run-time, which makes it possible to provide dynamic properties of LuNA-program execution. The efficiency achieved in practical cases appeared to be comparable with that of manual low-level programming, which makes LuNA system usable for automating construction of real numerical parallel programs at least in some application domains. The proposed approach takes advantage of well-developed tools for conventional sequential compilation to reduce the run-time overhead.
Применение систем параллельного программирования и систем автоматического конструирования параллельных программ предоставляет возможности к статической и/или динамической адаптации исполнения параллельной программы к особенностям вычислителя и хода вычислений, но при этом возникает проблема снижения накладных расходов, возникающих из-за работы исполнительной системы (динамических системных алгоритмов). Существенное снижение таких накладных расходов возможно за счет переноса как можно большего количества работы по конструированию и адаптации параллельной программы на этап трансляции, но при этом важно сохранять возможность динамической настройки исполнения параллельной программы в части, где настройка должна по существу выполняться динамически (например, для осуществления динамической балансировки нагрузки на вычислительные узлы). В работе предлагается технологичный подход к переносу существенного объема работ по конструированию и исполнению параллельных программ в системе LuNA, который сохраняет возможность обеспечения динамических свойств исполнения программы. Предложенный подход позволил существенно снизить накладные расходы на исполнение LuNA-программ по сравнению с традиционным подходом распределенной динамической интерпретации LuNA-программ.
Τύπος εγγράφου: Research
DOI: 10.24412/2073-0667-2023-3-55-67
Rights: CC BY
Αριθμός Καταχώρησης: edsair.doi...........0dd519a6c8feb3029bf01f3456ffa92f
Βάση Δεδομένων: OpenAIRE
Περιγραφή
DOI:10.24412/2073-0667-2023-3-55-67