Structure of f-closures of RiDE environment
Информатика, кибернетика и программирование
Bkhterev The distributed computtion support system we propose RiDE is built round the simple formlism of fclosure f is from future. Originlly we imgine fclosure consisting of five following fields. This field defines the moment in time fter which the system my ctivte the given fclosure.
Structure of f-closures of RiDE environment
The distributed computation support system we propose - RiDE - is built around the simple formalism of f-closure (f is from “future”). Originally we imagine f-closure consisting of five following fields.
S. The data block global names enumeration, which was intended to be given in some kind of disjunctive normal form: 1st set of names, or 2nd set, or .., or nth set. This field defines the moment in time, after which the system may activate the given f-closure. That moment comes, when all the data blocks named within one of the specified sets (we call such a set ready) are formed during computation. The f-closure activation itself is the invocation of the routine from the routine set associated with f-closure being activated (cf. C); the already formed data blocks named with some ready are taken as arguments for that invocation. Such a “disjunctive” alternativeness is needed for the description of f-closures serving as masters: many parallel computation scenarios assume the master should be runned on any job it tracks. We call the data blocks with names enumerated in S the premises for activation.
lS. The description of the correspondence between global names in S and local argument names. As aforementioned the global ones are used to reason about the f-closure activation possibility. And the propose of the locals in lS is to be references in the code of the routine invoked during that activation to the data blocks passed as its arguments.
R. The description of the data block global names, every of which will be formed in the result of successful execution of the routine invoked during f-closure activation. We will call such blocks activation results.
lR. The description of correspondence between global names in R and local result names. The last are used in the code of the routine invoked during f-closure activation to reference the activation results when forming them.
C. The description of routine set, one in which should be runned in the f-closure activation. It is assumed, that f-closure represents an operation from parallel algorithm; and every element of C points to its routine performing that operation on specific computing platform (OpenCL, i686-pc-linux, llvm-posix, .Net and so on).
In addition we assumed, that every f-closure formed in the process of RiDE application execution should be checked against the condition that all names enumerated in its R field are unique for the whole computation. This condition is needed to keep the data flow “graphness”.
But the ongoing theoretical analysis of the computation model based on such f-closures has show that it possesses some flaws.
1. We expected some level of the computation flows separation simplicity with manual data block names management, for instance, by attributing names in different flows with different prefixes. These expectations were not met. And the way of such separation is needed to provide the creation of subroutine libraries implementing parallel algorithms for the RiDE environment.
2. The description of f-closure premises for activation in the DNF proved to be as inconvenient when writing the code generating this description (especially for the masters running and tracking a large amounts of worker tasks) and ineffective for f-closure processing during RiDE application execution (especially for such masters - due to the size of S).
3. The f-closures S field structure given above do not allow to program the computation process reactions on externals requests. And the ability to program these reactions will be needed in the case of using RiDE for the development of high performance queuing systems such as highly loaded web servers.
4. The tests for uniqueness of names in the R field of every f-closure may introduce significant overhead in the RiDE application execution. Despite of the opportunity to mask this overhead with high degree of asynchrony in the execution of program for RiDE, its lowering to minimum level is desirable: after all, the correct program will generate only correct f-closures at its runtime.
In the current paper we consider in order to resolve these problems two models with modifications of original f-closure semantic: the first with manual names and scopes management; and the second with automatic names management and mechanics for references and lists. Both models are extended with special kind of named data blocks - pin blocks.
In new models these pin data blocks unlike the ones with unique names common for RiDE (which still hold the role of the main data transfer medium) may be grouped under single name; and may be fetched from such named group strictly one by one during activation of f-closure containing that group name in its premises for activation. The content may come in pin block groups from the sources external to the RiDE applications. This mechanism solves problems 3 and 2, making both processing and generation of master f-closures significantly lighter because of ability to use for S field structure the simple and frequently short list of names for of the DNF of that names.
To solve problems 1 and 4 scoping mechanism was suggested in first model. The scopes, obviously, allow to separate different computation flows and to reduce the complexity of the tests for the uniqueness of every name in R field, limiting amount of work in most cases with the scope containing f-closure being tested.
The automatic names management of second model was mainly aimed on solving the problem 4, but naturally it solves the problem 1 also. However, this model requires to introduce in the language of f-closures the additional tools allowing to control the automatic naming process. References and lists are these tools.
Several traditional parallel algorithms was expressed in languages of both models. That allowed to conclude that first model was less convenient to use than the second. This conclusion is main result of the paper. But along with it also the following outcomes potentially useful for practice and theory were obtained.
Firstly, second model is very close to some mixture of traditional lambda- and pi-calculus paradigms. What allows to use well researched execution methods of the programs written according to these paradigms when implementing runtime environment for second model.
Secondly, to specify the semantics of the second model we use nontraditional evaluation strategy which can be classified as call by future reference.
А также другие работы, которые могут Вас заинтересовать
|63142.||Чисті речовини та суміші||21.44 KB|
|Мета: Сформувати в учнів уявлення про чисті речовини і суміші навчити їх розрізняти закріпити уявлення про атомномолекулярну будову речовини ознайомити з простими і складними речовинами що зустрічаються в довкіллі...|
|63143.||Урок мужності і героїзму присвячений 70-річчю визволення Києва від німецько-фашистських загарбників||25.09 KB|
|Мета: формувати в учнів початкової школи почуття патріотизму, любові до свого народу, його історії та героїчного минулого на прикладі подвигу людей, які загинули під час окупації та визволення Києва від німецько-фашистських загарбників; виховувати повагу...|
|63145.||Тваринництво рідного краю||19.63 KB|
|Мета: формувати поняття про тваринництво як галузь сільського господарства; дати знання про галузі тваринництва; розкрити їх значення для людини; виховувати патріотичне ставлення до землі рідного краю любов до України пошану до людей та їхньої праці.|