Claremont Colleges Scholarship @ Claremont All HMC Faculty Publications and Research HMC Faculty Scholarship 8-1-1980 Hierarchical Analysis of a Distributed Evaluator Robert M. Keller Harvey Mudd College Gary Lindstrom University of Utah Recommended Citation Keller, R.M., and G. Lindstrom. "Hierarchical analysis of a distributed evaluator." Proceedings of the International Conference on Parallel Processing (Aug. 1980): 299-310. This Conference Proceeding is brought to you for free and open access by the HMC Faculty Scholarship at Scholarship @ Claremont. It has been accepted for inclusion in All HMC Faculty Publications and Research by an authorized administrator of Scholarship @ Claremont. For more information, please contact [email protected]. HIERARCHICAL ANALYSIS OF A DISTRIBUTED EVALUATOR Robert M. Keller Gary Lindstrom Department of Computer Science University of Utah Salt Lake City, Utah 84112 3. A graphical approach to semantics seems to ABSTRACT us to be quite enlightening in comparison to the one-dimensional representations largely We outline the analysis of a distributed used heretofore. evaluator for an applicative language FGL (Function Graph Language). Our goal is to show 4. We intend the present exposition as the that the least fixed point semantics of FGL are first step toward a more comprehensive proof faithfully implemented by the hardware evaluator which also involves a storage manager. envisioned in tne Applicative Multi-Processor System AMPS. Included in the analysis are a The extrinsic language, called FGL (for Function formalization of demand-driven computation, the' Graph Language) , inc 1udes features deemed i n t r oduc t i on of an intermediate graphic language relevant to highly concurrent distributed IGL to aid in our proofs, and discussion of evaluation. The hardware implementation we pragmatic issues involved in the AMPS machine consider includes a demand-driven data-flow language design. evaluator for effective suppo~ the data structuring primitives of our language. The INTRODUCTION implementation naturally provides for single evaluation of common subexpressions and paramete r s , Programming languages for distributed computing systems are receiving increased attention Locality considerations give rise to a two-level currently, as are languages based on function evaluation strategy for the machine language app l Lcat ron, Distributed systems are of interest (ML): a t the intra-processor level, a rather because of a desire to exploit potential rigid structure is imposed, in which each atomic concurrency ill pcog r auis , Applicative languages function is executed with bounded value fan-out tend to reveal pot.en t i a l concurrency by and communication delay for greatest efficiency. eliminating arbitrary sequencing within program At the inter-processor level it is infeasible to representations, and by circumscribing place such a bound, as one function may well have side-effects. In addition, applicative languages to send its result to others, the number and often allow programs to be written so that their locations of which are not determinable a priori. text closely resembles that of a correctness specification, thereby easing verification. Block storage allocation is used in ML for the 1OTTOw1ng reasons : Although the idea of us i ng applicative languages 1. It enforces local ity of communication among as a basis for conc u r r e n t programming has come nodes wnich are logically closely related. into vogue only recently, the reader should refer to the prophetic paper [1) for an anticipation of 2. It permits economical use of address bits by many of the relevant ideas currently being put requiring only relative addresses within a forth. Subsequent proposals, which share some bloc k , aspects of our own , include (2) through (7). 3. It avoids the need for code relocation and Sketched ne r e i n 1S an analysis (Le. an informal extensive dynamic binding. correctness proof) of an evaluator for an a pp Li c a t i ve language suitable for exploiting the 4. Tuples of data values are stored as blocks , features of a distributed computing system. This or pieces of blocks, permitting fast evaluator nas been proposed for use in the indexing. App Li c a c i ve etu l t i.e-Pro c e s s i ng System AMPS [8]. Suc n a proof would be of interest for s e ve r a l 5. Fewer i nteractions with the storage reasons : allocator are required. 1. The evaluator nas been implemented ([9]) , so 1t is desirable to certify its correctness. 6. Blocks may be transmitted and initialized in a "burst mode" of co mm un i c a t i o n , rather than 2. Al tno ugn parts of s un i l ar proofs have been in a word-by-word mode. sketcned, notably in [10) a nd [11], tnese proofs (lave been for serial evaluators, a nd Tne proof that the distributed ev aluator is a re for mode l s having fewer macnine-level correct witn respe ct to FGL's fixed-po int detai ls than the on e presented here . s e man t i c s is co mp lica ted by t he two-level 299 CH1569-3/80/0000-0299$OO.75 © 1980 IEEE block-oriented strategy. For ' t hi s reason. we insensitive to delay in and among phys ical nave found it convenient to introduce a language elements. IGL intermediate between the extrinsic language and that of the target machine. This language The objects supported are not restricted to allows the analysis to be naturally decomposed streams of simple components, such as characters into two levels (not corresponding to the levels or record s , but a I so permit c omponenta which are of evaluation) . but does not appear explicitly in functions , other streams, and generally arbitrary the implementation. data objects. FGL allows treatment of functional obj ec t s witn full lambda-calcul us general ity We express the notion of demand and value flow in [ 14]. IGL programs as a state-transition system (c f , [12)). The states are marked IGL graphs. with The cons operator of FGL permits an arbitrary number of arguments. thus providing an efficient t r ans r t i.c na expressed by a set of formal rules. and natural array capability. The usual car, cdr This system is the basis for the FGL evaluator. selectors are generalized to an indexing selector The notion of the correctness of such an select. For simplicity, however, we will evaluator with respect to FGL semantics is presented. We then discuss the proof of primarily use car and cdr here; car selects the correctness of the IGL evaluator with respect to first c ompone n t of a tuple and cdr selects the ML. last. Other aspects of our generalization are d1scussed in [15]. The following diag ram summarizes the levels of the hierarchy and their functions. In this presentation. the set of data objects of FGL will be Acronym Name Purpose FGL Function Graph Programming Objects ~ Atoms U Tuples U Graphs U {errod U {1 } Language where IGL Intermediate Internal program 1. Atoms ~ Integers U Characters U {NIL}. where Gr apn Language representation Integers 1S the set of i n teg er s and for FGL Characters is the set of characters of some alphabet. We a s s ume that NIL plays the role ML Machine Physical program of cne Boolean v alue false. Any atom other Language execution tnan NIL and error may play the role of the Boolean v a l ue true. the ana l ys i s may be outlined as follows: 1. IGL-->FGL mapping theorem: IGL defines the 2. Tuples : A tuple is a sequence of N Objects. c o r r e c t r esult for FGL. for N an arbitrary natural number. 2 . IGL partial correctness theorem: IGL can The t rmi t of a s equence ( i.e. " tree") o f prod uce tne correct result. nested tuples of objects, a s nesting occ ur s ad infinitum , is an obj ect. For example, 3. ML-- >IGL mapping theorem: ML defines the the s t r e am o f odd prime numbers could be c orrec t result for I GL. represented as 4. IGL finite delay : ML provides a finite 0, (5, 0, ru , (13, • •• »r» delay property for IGL, so that " can" above becomes "will". 3 . Graphs: We allow the e nve l o pi ng of a graph, as described in [16]. and its use a s a 5. Pr agmatic aspects : Certain invar i ants funct ion data object (i.e. a s a " closure"). de si r ed for implementation reasons hold for ML executions. 4 . e r ror: an e r r o r value whi ch propagates i tse I f through each func tion whiC h demand s i t as an a r g umen t . FUNCTION GRAPH LANGUAGE 5. 1 : the undefined object. i ,e , toe result of Our ex trins ic language, FGL ( Func t ion Gr aph a computa t i on whicn nas not yet (and might Language) is Lisp-based [ 13 ], ex t e nded to include ne ve r ) prod uc e a ny value . no n-st ric t atomi c a nd programmer-defined f unc t ions . Thi s pe rm i ts e a s e i n deal ing A f Ul l y o pe r a t i o nal s ys tem m1ght include s emant i c a lly a nd pragmatic all y with unbounded sid e-effect o pe ra t o r s, but we prefer lOtroducing d a t a structures, a s d i s cussed i n [6] and t ne m wi r n i n tne con t e xt o f an a pp l ica t i ve s ty l e , e lse Wher e .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages13 Page
-
File Size-