decoding program G , such that G(B)=A , where B=D(A) . The contrary Maternent is also true.
References
1. Ollongren, Definition of programming languages by interpreting automata. Mir, Mos-cow, 1977 (Russian translation).
2. A. Aho, J. Ullman, Theory of syntactic analysis, translation and compilation. Vol. 1, Mir, Moscow, 1978 (Russian translation)
3. N. Benidze, To the queflion of correctness of programs. In: "Internet Education Sci-ence" IES-2008. New Informational and Computer Technologies in Education and Science. Ukraine, Vinnytsa VNTU, October 7-11, 2008 ,vol. 2, Section H, pp. 545550.
4. N. Benidze, On the verification of computer programs. Proceedings of the Interna-tional Conference "Informational and Computational Technologies", Tbilisi, Georgia, May 2-6, 2010.
MODEL SYNTHESIS AND MODEL-ORIENTED PROGRAMMING: SIMULATION TECHNOLOGY FOCUSED ON DISTRIBUTED AND HIGH
PERFORMANCE COMPUTING
Brodsky Yu.I.
Federal Research Centre Computer Science and Control of the Russian Academy of Sciences, Leading Research Scholar
Moscow
ABSTRACT
A new approach proposed to the description, design and implementation for computer simulations of complex multi-component syflems, - the model synthesis and model-oriented programming. The central concept of this approach is the concept of the model-component. The models-components family is closed under uniting components into the complex, and the simulation computations organization is an invariant for any member of the family. This fact allows solving the synthesis problem for a simulation model of any complexity. A special declarative language LCCD (language of components and complexes descriptions) proposed for describing the models-components and building models-complexes from them. The model-oriented programming syflem proposed is focused on parallel and diflributed computing.
Keywords: simulation, complex syflems, model synthesis, diflributed computing, model-oriented programming, high performance computing.
Introduction
This work is devoted to problems of simulation modelling of rather wide class of complex syflems, which are characterized by the atomiflic and fractal arrangements of the representatives. Such underflanding of complex syflem is reflected, for example, in article of N.P. Buslenko in the Big Soviet Encyclopaedia [14]: «Complex syflem - a compound object which parts can be considered as the syflems naturally united in a whole in accordance with certain principles or defined set of relations» - i.e., components of complex syflem can be complex syflems themselves. Thus, it is considered that the arrangements of syflem «atoms», their behaviour, and also the rules of their interactions are well known. The problem of simulation modelling in this case is to reproduce the behaviour of the syflem as a whole, for the purpose of clarification of its features, opportunities; after that some control and/or optimizing tasks may be set, basing upon the simulation model.
This task is not trivial. Even the task of the description of all we knew about a complex syflem is rather difficult. It was supposed above about exigence of the knowledge of the syflem «atoms» arrangements and their interrelations. However the problem is that such a knowledge is usually badly flructured: we seldom know about a component of the syflem modelled so much exactly, as it is necessary and enough for the simulation model creation. If we know less - it would be good to underfland what else is necessary to learn, or from what features of the future model it is possible to refuse. If on the contrary, we know something over, concerning some components of the syflem, -it would be good to exclude such knowledge from the model description, as there may be thousands of such components, and their excess descriptions, mofl likely, will complicate further design of the simulation model.
A computer realization of a complex syflem simulation model is especially difficult. It would be desirable that the design
and realization of the model were carried out mofl automated, on the basis of the formal description of the complex syflem available. It is desirable to exclude from the model realization project the mofl labour-consuming imperative programming as much as possible.
At present the diflributed and parallel computing are important directions of modern informatics development. In this regard it would be desirable to receive the simulation models of complex syflems focused on the diflributed and highperformance computing syflems.
The review of solutions
The review of some of the exiting solutions in the field of the description, design and programming realization of complex multicomponent syflems simulation models was given in the work [9]. We will lifl them briefly in their origination order.
The GPSS syflem (General Purpose Simulation Syflem [20], 1961, J. Gordon, IBM) solves mofl of the tasks set in the introduction. This fact allows it to keep followers for more than half a century. However its object domain is significantly narrower, than declared in the introduction - only syflems which may be lodged into processes of mass service paradigm.
The idea flated in N. P. Buslenko's work [13], is an essence of the multicomponent syflem synthesis: to let to each of the components to prove itself as much as possible, considering all the inter-components communications. It caused emergence from the middle of the 70th ideas of agent programming and modelling (C. Hewitt [17], Y. Shoham [21]), and then, since the end of the 90th, ABMS (Agent-Based Modelling and Simulation) syflems. However a certain mark of an anthropomorphism lies on these agents - it is told about their behaviour in terms of «beliefs», «commitments», «capabilities», "choices", etc. There a queflion arises - what the universal agent and its behaviour has to be, to be sufficient for modelling of complex multicomponent syflems,
and at the same time the mofl close to necessary conditions for such modelling?
It is possible to tell about inflrumental syflem MISS (Multilingual Inflrumental Simulation Syflem, 1990, Computer Centre of Soviet Union Academy of Sciences [12]), that it was the firfl integrated syflem of the model-oriented programming - such where the fundamental unit of the program is the model, which besides characteriflics and methods, endowed with the completed behaviour - an ability to flandard responds for the flandard requefls. At the same time, this syflem does not have enough theoretical juflification - for example, many calculations here may be parallel, but remains not clear, whether is it possible to use this parallelism, or it may lead to the conflicts.
The UML language (Unified modelling language, middle of the 90th, G. Booch, J. Rumbaugh, I. Jacobson [1]; OMG, UML Partners) is intended firfl of all for design of complex program syflems, though it can be applied either to the description of complex syflems. Its main shortcomings - the redundancy and ponderousness, which significantly complicate end-to-end solutions (from the description to a program code). Also it leaves the entire project within an object-oriented imperative paradigm which is difficult and is not always adequate to problems of simulation modelling [4, 5]. A special section below will be devoted to the UML and its role in the object-oriented paradigm in comparison with the model-oriented one.
The HLA specification (High Level Architecture [18], 2nd half of the 90th, Defence Modelling & Simulation Office of the Miniflry of Defence of the USA) is intended for creation the software allowing to unite simulation models into diflributed syflem, the part of the models may be analogue - implemented in hardware.
AnyLogic inflrumental simulation syflem [2, 16], (2000, AnyLogic, former XJ Technologies) - apparently the mofl powerful solution among ones available now in the market of tools for simulation modelling. Besides the agent modelling considered in this work it also gives simulation tools for syflems dynamics and mass service processes (from here is the name AnyLogic). Remaining in an object-oriented paradigm, the syflem gives means of noticeable simplification of programming process, separation the behaviour logic of agents from their functionality. Nevertheless, there is a number of theoretical queflions, for example, to what limits is it possible to bring such a simplification and for what classes of simulation models.
The main conclusion of the review - any of the syflems from it does not solve completely all the tasks set in the introduction. Besides, all these syflems give more or less powerful tools for a solution of some of these tasks, but do not give any theoretical juflifications why these means are offered, and what means are necessary and sufficient for the creation of what models classes.
Hypothesis of closeness and its consequences
From N.P. Buslenko's works (for example, [13, 14]), we know that if the simulation model is realized on the computer (and if the syflem is rather complex, this is the only way the model can be realized), its trajectory will be from a piecewise linear class, it is simple because the number of calculations has to be finite.
The closeness hypothesis is the assumption that our knowledge is enough to conflruct a simulation model of the complex syflem, i.e., proceeding from its initial characteriflics values, to reproduce their dynamics on the time segment [0, T]. Thus, the problem of simulation model creation is always a problem of making the «Laplace demon» [19].
We call a model closed at a point te[0, T) , if there is a number At>0, t+Ate(0, T], which is called the segment of the model forecafl for the point , such that:
X (t)
1. On the basis of characteriflics of model ^ ' it is possible to define, whether there is a discontinuity point of the
trajectory AX (t) at a point , and if it is - to calculate the gap.
2. Further, on an interval
(t, t + At)
the model
trajectory leaving the point X(t) + AX(t) , is continuous function of time and may be unambiguously calculated basing on
X (t)
the time and initial values of the model characteriflics ^ ' .
Apparently, the closeness of the model at any point
t e [0, T) is a necessary condition for the model creation - if there are points from which even the small flep forward is impossible, it is quite unclear how to build a model.
In the works [5, 8] it is shown that this condition is not sufficient (a counter-example is so-called von Neumann's fly). In the same places, it is shown that the local closeness becomes a sufficient condition; if we power it with the requirement of the model trajectory's left continuity, (it means that any flate of the model, except the initial, is the result of its prehiflory). This sufficient condition is a certain analogue of the exigence theorem for simulation models. Very important queflions of uniqueness, flability and dependence on the initial values of characteriflics, apparently, have to become clear during simulation experiments with the model.
Functional (therefore, unambiguous) dependencies of the trajectory gap, its subsequent continuous evolution and the size of the forecafl segment, upon the characteriflics values in Parting point, are very important consequences of the closeness hypothesis (perhaps, even more important than the exigence theorem itself). Firfl, it is natural to realize functional dependences in a functional programming paradigm. The second, if it is possible to parallelize these calculations correctly, they have to be conflict-free - any conflict is always a violation of calculations unambiguity. The third, the need on the each modeling flep to calculate a possible gap, continuous evolution of a trajectory and the end of the forecafl segment, defines the universal agent's appearance, offered below.
Model synthesis
Model synthesis and the model-oriented programming as methods of the description, synthesis and program realization of simulation models of complex multicomponent syflems, were developed in the department of Simulation syflems of Computing Centre of Academy of Sciences of the USSR and further Russian Academy of Sciences, since the end of the 80th. Their main ideas were flated in works [4-12], and terms themselves were introduced for the firfl time in the work [8]. The concept of model-component - the universal modelling agent -is the base of model synthesis. The model-component is similar to the object of the object analysis but supplied with not only characteriflics and methods, capable to do something useful if they are caused, but a certain analogy of syflem services of an operating syflem, always functioning and always ready to give flandard answers to the flandard requefls.
Let us formalize, basing on the closeness hypothesis and its consequences, the family of simulation models of complex syflems, by the family of species of flructures [4, 8] in N. Bourbaki's sense [3]. Base sets of the family representatives are the sets of characteriflics of the model, methods (what the model is able to do) and events (on what the model has to be able to react). The family of species of flructures «model-component» possesses two important properties:
1. The organization of simulation calculations is same for all representatives of the family. Besides, the considerable part of these calculations can be executed in parallel. It means possibility of creation of the universal program focused on highperformance or diflributed computing capable to execute any simulation model, if that is the mathematical object supplied with the species of flructure from the family of "model-component".
2. The family of species of flructures «model component» is closed, under the operation of uniting models-components into the model-complex. The complex received by association of models-components belongs to the family of species of flructures «model-component», and, therefore, can be included in new complexes, and the organization of simulation calculations of any model-complex can be carried out by the same universal program.
The properties of the «model component» family of species of flructures allow offering the new model-oriented programming method for program realization of simulation models of complex syflems.
At this approach the program complex seems as a complex of models-components, whose behaviour is no need to arrange (for example, by calling any methods) - all components always behave as they can. Programming consifls in the description of the component's arrangement and behaviour (in fact - in the description of the corresponding species of flructure) and in the description of creation of complexes from the components.
What is a Model-Component
A formalization of a simulation model of a complex syflem, the concept of the "model-component" - the basic concept of the model synthesis - may be defined quite formally, as a family of species of flructure "model-component" [4] in the sense of N. Bourbaki's Structure Theory [3]. Here we give a less flrict, but more descriptive and explanatory definition.
The model-component has internal and external characteriflics - and in this aspect is similar to the object of the object analysis, which also has a set of characteriflics. In addition to the characteriflics, the object of the object analysis has methods - a set of skills. An object of object analysis has not its own behaviour (though the authors of [1] sometimes flate the opposite) - it is only the florage of skills, from which, along with the skills of the other objects, the software syflem behaviour may be formed. The model-component, in contrafl to object, is endowed with its own behaviour. In contrafl to the object, you cannot call from outside model's methods. However, like the computer operating syflem, the model-component is always ready to give a flandard respond to any flandard query from the internal and external environment (which is jufl a flandard combination of internal and external characteriflics values of the model, because of the closeness hypothesis). In operating syflems, several syflem services work all the time and parallel to each other, to enable flandard queries servicing. In the model-component, several processes can operate in parallel. Each of these processes consifls of alternating of methods-elements -elementary model's skills implemented as functions of model
characteriAics. The methods-elements switching is determined by the flate of the model's internal and external characteriflics, due to the closeness hypothesis. Next, we take a closer look at the rules of the elements switching.
Now we will carry out the classification of the methodselements of the model in relation to the model time:
1. Inflant or fafl elements. These are the elements, which occur inflantly in relation to the model time. Inflant elements -one of the ways to calculate obviously discrete characteriflics of the model.
2. Diflributed or slow elements. These elements have non-zero length in model time, that is, take a time not less than a characteriflic for this model, average time interval. In addition, for such elements for every reasonable interval of the model time, the result of the execution of the element during this time interval unambiguously corresponds to the value of the interval. The diflributed elements - are the mofl natural way of calculating of the continuous model characteriflics.
In terms of the closeness hypothesis, we can say that the fafl elements are focused on the calculation of the model trajectory gaps, while slow elements focused on the calculating of the trajectory continuous intervals [5].
Events control the switching of the elements in the process. Informally, events - are what you cannot miss when modelling the dynamics of the syflem - synchronization points for its various functionalities provided by the processes. The points, where the flage of the model (values of characteriflics received) requires corresponding respond from some processes of the model-component. Correlating the above with the contents of the closeness hypothesis section, we can add that the events predict the end of the next segment of the model forecafl.
Formally, the event is a function of the model internal and external characteriflics at the beginning of the simulation flep. From the point of view of simulation calculations organization, the event is a method, the input of which is a subset of the internal and external characteriflics, and the only output parameter - the predicted time before this event. If this forecafl time is zero, it means that the event has already occurred.
For each ordered pair of the methods-elements {A'B} , if there is possible an switching between them in a process,
a corresponding method-event
E
{ A, B}
is required, to predict
the time of this switching. The events of kind
E
{ A , A }
are also
possible, where the element is interrupted but not terminated, for example, if it doesn't need finishing, but calculated characteriflics of the model-component that are important for the synchronization with other processes. The switching should be unambiguous. The simultaneous occurrence of the events
E
E
{A,B} and {A,C} says only that the model developer missed out the consideration of this case in his design, which,
perhaps, should correspond to the switching {A D} .
So, let us sum up. The model-component, is characterized by:
1. A set of internal and external characteriflics.
2. A set of processes, each of them features the alternation of methods-elements, which implement different functionalities. Incoming parameters of elements are subsets of the internal and
external characterifics of the model, their return parameters change subsets of the internal characterifics of the model.
3. Methods-events control the switching of the elements in the processes or interrupt the execution of the elements to synchronize them. Incoming event parameters are subsets of the internal and external characterifics of the model. If there is possible a switching from one element of the process to another
- with such an ordered pair muf be associated only one event. The event that interrupts the execution of the element with its further continuation is also possible.
The model-component is a universal simulation agent,
- an elementary, but nevertheless, a full-fledged model of a complex syfem. Therefore, it can be run to perform simulation experiments, of course, if there are initial values of the internal characterifics and the way of observation of the external characterifics.
Model's Behaviour
Let us formulate now the rules of behaviour common to all models-components, which are really the rules of their simulation calculations.
Firf, a fandard fep of simulation is given. Secondly, it is believed that at the beginning of the simulation fep current methods-elements of all processes and all of the internal characterifics of the model are known (at the firf fep - there are the initial values of the internal characterifics and the initial methods-elements of processes). Third, observability of the external characterifics at any moment is assumed.
Further,
1. The events associated with the current elements of the processes are computed. The correlation of events with the current elements of the processes is determined by the rules of switching. The events can be computed in parallel, but to promote the computing process further, you should wait for completion of the computation of all the events. If there are events occurred, it is checked whether there are transitions to the faf elements. If there are any - the faf elements run (they become current). They can also be computed in parallel, but to advance the computing process further, you should wait for completion of all the calculations of the faf elements, and then return to the beginning of the item 1. If there are no transitions to faf elements - the transitions to the new slow elements are made, and then return to the beginning of the item 1.
2. If there is no occurrence of the events, from all the
forecafs of the events is selected the nearef At .
3. If the fandard fep of modelling At does not
exceed the predicted time to the nearef event At — At , -we compute the current slow elements with the fandard fep
At . Otherwise, we compute them with the fep to the nearef AT
predicted event . Slow elements can also be computed in parallel, with expectation of completion of the latter.
4. Return to the beginning of the item 1.
So a universal computer program may be written in accordance with the rules described above, which would be able to carry out simulation calculations for any member from the models-components family.
What is a Model-Complex
Models-components may be combined into the model-complex, and may be (optional) that some components explicitly
model the external characterifics of some other components. In order to describe the model-complex it is enough to specify:
1. Which models-components and in what number of exemplars are included into it.
2. Commutation of the models-components inside the model-complex if it occurs, i.e., which the internal characterifics of which models-component, are the external characterifics of which components of the model-complex.
The model-complex consifing of many models-components, outside can manifef as a single model-component. Let us introduce the following operation of combining the components into the complex:
1. The internal characterifics of the complex are the union of the internal characterifics of all its components.
2. The processes of the complex are the union of all the components processes.
3. The methods of the complex are the union of all the components methods.
4. The events of the complex are the union of all the components events.
5. The external characterifics of the complex are the union of the external characterifics of all its components, except all those characterifics that are explicitly modelled by any components of the complex.
When combining components into the complex, it should be appreciated that the unambiguity of the computational process may be lof. This might happen if, for some reason, several components calculates the same characterifics of the modelled phenomenon. In this case, we can include into the model-complex a new component that as the external characterifics receives all the set of mentioned characterifics and as the internal characteriAic somehow calculates the only value [4].
This operation turns the model-complex into the model-component. This fact allows us to build the model as a fractal contraction, the complexity of which (and accordingly the model detailed elaboration) is limited only by the desire of the developer.
The transformation of the model-complex into the model-component and is the central idea of the model synthesis, as a method of describing, designing and implementing simulation models of complex multicomponent syfems.
Model- and Object- Oriented Programming
Hiforically, the changings of programming paradigms was accompanied by the aggregation of the base infruments of the programmer's activity.
It all farted with the machine infraction, then, with the advent of high-level languages - such a tool became an operator, which implements some action, possibly with a few machine infractions.
The victory of fractured programming ideas replaced individual operators and variables by fandard contractions such as «loop», «branching», "subroutines-functions" and data fractures.
With the advent of object analysis, the object became the main unit of the design. It unites some kind of data fracture with a set of methods necessary for the data processing. In addition, through the inheritance mechanism, you can build a hierarchy of object classes, developing, implementing and embodying basic ideas of the root classes of this hierarchy. This programming paradigm is currently the dominant and its basic concepts, such as class, object, data typing, inheritance, encapsulation, polymorphism is implemented with some nuances in mof
modern imperative programming languages, such as C++, Java, C#, Delphi and others.
Inheritance relationship for the set of classes of object-oriented programming language is a partial order. Classes that have no anceflors, but have descendants are called to them root or base. Classes that do not have descendants are called leaf.
Designing of a large software syflem with the object-oriented paradigm is laying the basic concepts and ideas of this syflem into the base classes of objects and then building a hierarchy of classes, developing, specifying and embody these ideas in a variety of leaf classes, with the help of which the target software syflem will be built. Even if the object-oriented design has built the greatefl hierarchy of classes using inheritance, flill all the organization of the computational process lies on the developer of the syflem: for the syflem operation - the developer is to organize calling of appropriate methods in the desired sequence.
To describe complex syflems in the object paradigm, the unified modelling language UML was proposed in the late 90s [1]. The creators of UML have opted for a sharp increase in the number of initial concepts and ideas. For example, apart from the "vertical" inheritance relationship, that is often called in UML a generalization relationship (the generalization relationship is directed to an anceflor from the child), there are relationships of association, composition, aggregation and dependence. Now it is possible to describe the behaviour of syflems, even in several ways: interaction diagrams, flate diagrams and activity diagrams. In the UML there are many things possible to be done in a number of ways, which makes it a convenient tool for the professionals, but very difficult for the beginners. The authors of the language say: "UML is subject to the rule of 80/20, i.e., 80% of mofl problems can be solved using 20% of the UML" [1]. Apparently, any syflem can be described with the help of the UML, and even from several points of view. The queflion is what to do next with such descriptions - there is no unity in opinions. Some specialifls (for example, [15]) believe that the main value of UML is jufl in the application as a mean of recording and sharing formalized descriptions of the flages of the sketch and design of complex program syflems. However, there are a number of tools, which allows compiling the UML-descriptions into the billet classes of universal programming languages, and in this case we can speak about the mode of using UML as a programming language, though a hard problem of compilation quality arises. Moreover, here we remain within the object-oriented paradigm again - we obtain a hierarchy of classes and billet classes, but do not remove the need to write imperative programs to call in the correct order methods of these classes.
In this paper we will describe a different approach to the implementation of complex syflems models - a model-oriented one, which is based on the model synthesis, on the concept of the model-component, very close to that in mathematical modelling and especially in simulation. A model-component of the model synthesis is more complex and aggregate flructure, than the object of the object analysis. Its main difference from the object - the possession of its own behaviour, in the sense in which, for example, a computer with the operating syflem loaded, has behaviour - the ability to respond on a set of flandard external and internal requefls in predetermined manner, known in advance. It turns out that the way of the model's behaviour arrangement (organization of simulation computations) can also be flandard - the same for any model, no matter how large and complex it may be.
The proposed idea of model synthesis is minimaliflic in a set of basic concepts: it has the only basic concept - a model-component and an auxiliary concept - a model-complex, which after all can also be treated as a model-component, hence itself may be included in the next level model-complexes as their component, etc. Any model may be run according the same flandard rules, i.e., can be performed by once written and debugged program of models' execution. In addition, the program of models' execution is such that mofl of its calculations allow parallelization. The process of the complex syflem model programming breaks down firflly, into series of declarative descriptions of models-components and models-complexes combining models-components; and secondly, on the programming of certain functional dependencies, which are functions in the mathematical - not programming sense (i.e., unambiguous and have no flates and side effects), and therefore can be programmed in a functional paradigm. This leads to the fact that the software implementation of even the mofl complicated fractal arranged simulation model excludes the imperative programming - the mofl difficult at the flage of debugging. In addition, we can completely forget about the internal flructure of the once debugged model-component, using it in the future flructures as a ready functional block jufl needed only to switch inputs and outputs correctly - and everything will work. In all the models-complexes, where the model-component is included, it will behave exactly the way it used to behave - this will be provided automatically by the models' execution program. Everything happens about the same as when we put a chip into a microassembly and then placing this microassembly on a circuit board. If at the each level of the project the commutation is reasonable - the chip will function properly in a much more sophiflicated electronic device. The fee for this is a higher level of encapsulation. In contrafl to the object analysis it is impossible (and unnecessary) to call the methods of the model-component "manually" with some "foreign" parameters (even fit to the method's signature). They are always called automatically, and only with the subset of characteriflics of the model-component as parameters, in accordance with the described behaviour of the model.
For the descriptions of models-components and models-complexes, the LCCD declarative language (language of the description of complexes and components) is offered. In details it is described in the works [8, 11]. Descriptors of LCCD are compiled not in the machine code, but into the model database (that removes a queflion of the compilation quality - only a queflion of its correctness remains). A simulation syflem MISS [12] is possible to be considered as the firfl implementation of the model-oriented programming idea. Now the works on creation of the modern version of such a syflem focused on diflribute and high performance computations are carried out [8, 9], in the Computer Centre of Russian Academy of Sciences.
Conclusion
The offered model synthesis and model-oriented programming concepts allow to solve completely all the problems formulated in the introduction - to describe formally in the LCCD language the available knowledge of complex multicomponent syflem «atoms» and their communications among themselves; to conflruct the synthesis of the complex syflem model automatically according to these descriptions, by compilation from LCCD descriptors into a model database; further it is necessary to program methods-elements and events (being guided by a functional paradigm) and to fill initial values
of model characteriflics in the database. Then our model is ready for simulation experiments. The universal program for the simulation calculations support may be focused on diflributed or high performance computations.
The proposed concept of complex syflems simulation has been realized in series of simulation models implemented under the influence of the model-oriented programming paradigm. For example, some episodes of Reagan's SDI (Strategic Defence Initiative) functioning and the model of interaction of several countries were simulated. In addition, tools for complex syflems simulation were created: the simulation syflem MISS [12], and the software for the workflation of peer-to-peer syflem of diflributed simulation [9].
The concepts of model synthesis and model-oriented programming are applicable primarily for the description, design and software implementation of simulation models of complex multi-component syflems. However, it is hoped that a similar approach can be used for the development of complex software syflems, with the organization that fits the closeness hypothesis, including the software syflems focused on high-performance computing.
References
1. Booch G., Rumbaugh J., Jacobson I. UML. User Guide, 2-ed., Addison-Wesley, 2005, 475 p.
2. Borshchev A. The Big Book of Simulation Modeling: Multimethod Modeling with AnyLogic 6 — AnyLogic North America, 2013, 615 p.
3. Bourbaki N. Elements of Mathematics, Theory of Set. Springer, 2004, 414 p.
4. Brodsky Yu.I. Bourbaki's Structure Theory in the Problem of Complex Syflems Simulation Models Synthesis and Model-Oriented Programming //Computational Mathematics and Mathematical Physics Vol. 55 No. 1, 2015. P. 148-159.
5. Brodsky Yu.I. Model synthesis and model-oriented programming - the technology of design and implementation of simulation models of complex multicomponent syflems //In the World of Scientific Discoveries, Series B, 2014, Vol. 2, No 1, P. 12-31.
6. Brodsky Yu.I. Simulation Software Syflem Analysis and Modeling of Integrated World Syflems, 2009, V1, Oxford: EOLSS Publishers Co. Ltd., P. 287-298.
7. Brodsky Yu.I., Tokarev V.V. Fundamentals of simulation for complex syflems. Syflem Analysis and Modeling of Integrated World Syflems, 2009, V1, Oxford: EOLSS Publishers Co. Ltd., P. 235-250.
8. Brodsky Yu.I. Model'nyj sintez i model'no-orientirovannoe programmirovanie [Model synthesis and model-oriented programming] Moscow: CC RAS, 2013. 142 p.
9. Brodsky Yu.I. Raspredelennoe imitatsionnoe modelirovanie slozhnych siflem [Diflributed simulation of complex syflems] Moscow: CC RAS, 2010, 156 p.
10. Brodsky Yu.I., Mjagkov A.N. Deklarativnoe i imperativnoe programmirovanie v imitatsionnom modelirovanii slozhnych mnogokomponentnych siflem [Declarative and imperative programming in simulation of complex multicomponent syflems] Inzhenernyj zhurnal: nauka i innovatsii [Engineering journal: science and innovations], 2012, N2(2), P. 33.
11. Brodsky Yu.I., Pavlovsky Yu.N. Razrabotka inflrumental'noj siflemy raspredelennogo modelirovaniya [Developing an in&rumental syflem for diflributed simulation] Informatsionnye technologii i vychislitel'nye siflemy [Information Technologies and Computing Syflems], 2009, N4, P. 9-21.
12. Brodsky Yu.I., Lebedev V.Yu. In&rumental'naya siflema imitatsionnogo modelirovaniya MISS [Inflrumental Simulation Syflem MISS] Moscow: CC AS of the USSR, 1991, 180 p.
13. Buslenko N. P. Modelirovanie slozhnych siflem [Modeling of complex syflems] M.: Nauka, 1978, 400 p.
14. Buslenko N. P. Slozhnaja siflema [Complex syflem] // Article in the Big Soviet Encyclopedia, the 3-rd ed., M.: Soviet encyclopedia, 1969-1978.
15. Fowler M. UML Diflilled, 3-ed., Addison-Wesley, 2004, 192 p.
16. Grigoryev I. AnyLogic 7 in Three Days: A Quick Course in Simulation Modeling 2-nd ed., AnyLogic North America, 2015. 256 p.
17. Hewitt C. Viewing Control Structures as Patterns of Passing Messages //Journal of Artificial Intelligence. June 1977.
18. Kuhl F., Weatherly R., Dahmann J. Creating Computer Simulation Syflems: An Introduction to the High Level Architecture NY: Prentice Hall PTR, 1999. 212 p.
19. Laplace P.S. A Philosophical Essay on Probabilities Translated into English from the original French 6-th ed. by Truscott F.W. and Emory F.L., Dover Publications NY: 1951.
20. Schriber, T.J. Simulation using GPSS. New York, Wiley, 1974. 534 p.
21. Shoham Y. MULTIAGENT SYSTEMS: Algorithmic, Game-Theoretic, and Logical Foundations Cambridge: Cambridge University Press, 2010, 532 p.