Design of it : an Aldor library to express parallel programs Extended Abstract Niklaus Mannhart Institute for Scientic Computing ETH-Zentrum CH-8092 Z

Size: px
Start display at page:

Download "Design of it : an Aldor library to express parallel programs Extended Abstract Niklaus Mannhart Institute for Scientic Computing ETH-Zentrum CH-8092 Z"

Transcription

1 Design of it : an Aldor library to express parallel programs Extended Abstract Niklaus Mannhart Institute for Scientic Computing ETH-Zentrum CH-8092 Zurich, Switzerland mannhart@inf.ethz.ch url: October 31, 1997 Abstract We describe the implementation of asynchronous function calls and remote partial evaluated function calls in it. Both constructs are high level constructs that hide low level programming details. In the talk we present examples and show results. 1 Introduction it (pi-it) is an Aldor [10] library for parallel computation, currently under development at ETH Zurich. It is designed to be architecture independent (heterogeneous) and runs on network of workstations, where a workstation can be a single processor or a multiprocessor machine (shared or distributed memory). The library is portable across dierent Unix platforms and can be easily compiled on all systems that Aldor supports. The goals of it are To be independent from the architecture (portability). Parallel program using it can be eciently executed. High level in order to hide low level programming details (especially synchronization of parallel programs). The design of it is close 1 to the design of PAC++ [7], Paclib [5], Sugarbush [4] or Parsac/DTS [3]. Dierences are the language (Aldor is high level language well dened for computer algebra and more ecient) and the parallel programming model. The current parallel programming model is based on a data parallel paradigm using Aldor's generator for parallel iterator (map) and reduction. 1 Overview of actual systems is found in [9]. 1

2 In this paper we concentrate on the design of it, its current status and the future work. The next section gives an overview of the implementation of the parallel programming model of it. The third section focuses on the specications for the implementation of full features needed by the data parallel programming model of it (remote call to partial evaluated function). 2 Parallel iterator with it The Aldor language denes the concept of generator. Each collection of data (list, array) in the Aldor library has its own generator to iterate on each element of the data structure. For example, a list data structure looks like L: List(R) := createfromacomputation(); -- result from a computation G: Generator(R) := generator(l); -- get the generator of item of L for item in G repeat { -- iteration using the generator -- do something } it extends this data structure by using generators to split collections of data and apply parallel map and reduction. The following example shows the implementation of a parallel map of function f and the reconstruction of a vector. V: Vector(R) := createfromcomputation(); G: Generator SubVector(R) := split(v,k); -- split V in k blocks Vnew:= merge(pmap( f, G )); Note that a merge function accepts a generator of the sub vector in input and returns a vector. The semantic of a pair of split/merge functions depend on their implementation. Several map functions are implemented. They dene semantics on the sequence of generated elements. For example, in order to have a to generate the sequence of results with the same order as of the inputs. it is able to handle speculative parallelism (innite generator) by using generators. In such a case a control structure (pmapctrl) which controls the generated parallel tasks of computation is returned. The implementation of parallel map is based on remote function calls and synchronization described in the next section. 3 Remote function call Remote procedure calls (rpc) [1] isawell known method for transferring control form one part of a process to another. After the call, the return value is sent back to the caller. From the point of view of the user, a remote procedure call looks like a local procedure call. Unfortunately the caller is blocked until the remote procedure call returns. To get rid of this limitation we can use the fork/join paradigm in the sense of the PRAM [6] model. In order to distinguish (blocked) remote procedure calls form a fork/join method we call the latter asynchronous function calls. 2

3 3.1 it features When a remote function is called, it stores the function with the arguments in an internal list and returns a join variable. Hence the ow of control continues to run. The internal data structure is a job which consist of a function plus arguments plus a location for the result. Jobs are executed by the scheduler which takes the submitted job and decides which processor has to do the work. The scheduler packs the arguments and sends the job to the scheduler of another processor. There the scheduler reconstructs the job and puts it in its job queue. The scheduler handles the communication of arguments and the result of execution to the specied location. When the ow of control needs to be synchronized with the end of the computation, it calls the synchronization routine on the forked call. The ow is blocked only if the result of the computation is not already written. The Aldor code for a remote function call looks as follows: jv: JoinVariable; -- jv: join variable result: R; -- location where to write result jv := fork(f, a, result, jv); -- implicit mapping more code join(jv); -- synchronisation -- here the result is written A join variable object can be associated with several forked sub computation (it is close to a counter of forked computation). Note that this example accepts a simple writing. fr := f(a); -- return a futur of type Futur(R)... result:= fr::r -- coercion to a value R The concept described above has the following advantages: 1. The user doesn't have to care on which machine the remote function is executed. 2. On dierent machines dierent schedulers can be implemented without aecting any user's code. This is important because on SMP machines a dierent scheduler has to be implemented than on single processor machines. Of course, the user can explicitly force a function to be executed on a specic machine. In the current implementation, arguments are passed by values and the called function is expected to be side eect free. Schedulers are list based and implemented in a greedy, centralized and work stealing [2] version. 3.2 Partial Evaluated Functions In Aldor types and functions are rst class, that is, both types and functions may be manipulated and constructed in the same way as any other value, ie. functions return new functions or new types. Example: Given the application f(a: Integer)(b: Integer):Integer. The statement g := f(5) assigns the partial evaluated function f to g. To get the nal result g has to be applied with an integer argument. Of course we would like it to support remote partial evaluated functions, e.g. g should be executed on a dierent machine. Because partial evaluated functions are created at runtime (dynamically), the asynchronous function call described in the previous section doesn't work for partial evaluated functions (pef). In order to send pef over the net, closures have to be sent. A closure represents a function and the bindings of the function's free 3

4 variables [8]. In other words a closure consists of compiled code of a function plus its environment (set of name-value pairs). Unfortunately, the current version of Aldor does not give access to the internal closure structure and thus another solution has to be found. it solves the problem as follows: When f(i) is applied, the function will not partial evaluate. Instead, the arguments are stored in the internal structure and a handle is returned. When g(j) is applied, then the function is distributed like an asynchronous function call. On the other machine, the function is rst partially evaluated and then called with the argument j. The result is sent back like in the asynchronous function call. Additionally any evaluation is cached on the processor. If g(j) is applied on a processor where g has not been evaluated already, then we evaluate g := f(i) before g(i). Hence f(i) can be evaluated on many dierent processors and can induce side-eects. 4 Conclusion and future work We have presented a solution for remote function invocation and remote partial evaluated function calls that it supports. First examples have shown good results and we are working on more complex examples to see how it behaves in such cases. We also plan to make compiler or runtime changes in Aldor in order to send closures over the net. The limitation of partial evaluated functions described in the previous would then disappear. We also plan to implement distributed virtual shared memory based on variables. This would save communication time because huge data structures do not have tobesent over the net. 5 Acknowledgment I am grateful to Thierry Gautier for his careful comments on this extended abstract and for the fruitful collaboration during the implementation period of it described in this paper. Iwould like to thank Preda Mihailescu for reading earlier drafts of this paper. References [1] A. D. Birrell and B. J. Nelson. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, 2(1):39{59, Feb [2] R. Blumofe, C. Joerg, B. Kuszmaul, C. Leiserson, K. Randall, and Y. Zhou. Cilk: An Ecient Multithreaded Runtime System. In 5th ACM SIG- PLAN Symposium on Principles and Practice of Parallel Programming (PPOPP'95), Santa Barbara, California, pages 207{216, Jul [3] Tilmann Bubeck, Martin Hiller, Wolfgang Kuchlin, and Wolfgang Rosenstiel. Distributed Symbolic Computation with DTS. In Afonso Ferreira and Jose Rolim, editors, Proceedings of Parallel Algorithms for Irregularly Structured Problems, LNCS 980. Springer, Sep

5 [4] Burce Char. Progress report on a system for general-purpose parallel symbolic algebraic computation. In International Symposium on Symbolic and Algebraic Computation, ISSAC, [5] Hoon Hong et al. PACLIB User Manual. Research Institute for Symbolic Computation (RISC-Linz), Oct [6] S. Fortune and J. Wyllie. Parallelism in Random Access Machines. In Symposium on Theory of Computing, pages 114{118. ACM, [7] Th. Gautier and J. L. Roch. PAC++ system and parallel algebraic numbers computation. In Hoon Hoong, editor, Parallel Symbolic Computation, volume 5 of Lecture Notes Series on Computing, pages 145{153. World Scientic Publishing Co. Pte. Ldt., Sep [8] S.L. Peyton and D. R. Jones. Implementing Functional Languages. Prentice Hall, Englewood Clis, [9] J. L. Roch and G. Villard. Parallel computer algebra. Jul ISSAC'97 tutorial. [10] Stephen M. Watt, Peter Broadbery, Samuel S. Dooley, Pietro Iglio, Scott C. Morrison, Jonathan M. Steinbach, and Robert S. Sutor. A First Report on the A # Compiler. In International Symposium on Symbolic and Algebraic Computation, ISSAC, pages 25{31. ACM,

another, e.g. (n: Integer, m: IntegerMod(n)). Dependent mappings are functions where the type of the result depends on the value of an argument, e.g.

another, e.g. (n: Integer, m: IntegerMod(n)). Dependent mappings are functions where the type of the result depends on the value of an argument, e.g. 4.1.3 Aldor 265 Aldor is a programming language originally intended to develop compiled libraries for computer algebra. The design of the language was influenced by several factors: It had to be expressive

More information

In: A. Ferreira and J. Rolim, eds.: Parallel Algorithms for Irregularly Structured Problems,

In: A. Ferreira and J. Rolim, eds.: Parallel Algorithms for Irregularly Structured Problems, In: A. Ferreira and J. Rolim, eds.: Parallel Algorithms for Irregularly Structured Problems, 2nd Intl. Workshop IRREGULAR'95, volume 980 of LNCS, pages 231{248, Lyon, France, Sept. 1995. Springer-Verlag.

More information

Maple on the Intel Paragon. Laurent Bernardin. Institut fur Wissenschaftliches Rechnen. ETH Zurich, Switzerland.

Maple on the Intel Paragon. Laurent Bernardin. Institut fur Wissenschaftliches Rechnen. ETH Zurich, Switzerland. Maple on the Intel Paragon Laurent Bernardin Institut fur Wissenschaftliches Rechnen ETH Zurich, Switzerland bernardin@inf.ethz.ch October 15, 1996 Abstract We ported the computer algebra system Maple

More information

Ecient Compilation of Concurrent Call/Return. Communication in Actor-Based Programming Languages

Ecient Compilation of Concurrent Call/Return. Communication in Actor-Based Programming Languages Ecient Compilation of Concurrent Call/Return Communication in Actor-Based Programming Languages W. Kim and G. A. Agha Open Systems Laboratory University of Illinois at Urbana-Champaign Urbana, IL 61801,

More information

Multithreaded Parallelism and Performance Measures

Multithreaded Parallelism and Performance Measures Multithreaded Parallelism and Performance Measures Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 3101 (Moreno Maza) Multithreaded Parallelism and Performance Measures CS 3101

More information

Provably Efficient Non-Preemptive Task Scheduling with Cilk

Provably Efficient Non-Preemptive Task Scheduling with Cilk Provably Efficient Non-Preemptive Task Scheduling with Cilk V. -Y. Vee and W.-J. Hsu School of Applied Science, Nanyang Technological University Nanyang Avenue, Singapore 639798. Abstract We consider the

More information

Multiprocessed Parallelism Support in ALDOR on SMPs and Multicores

Multiprocessed Parallelism Support in ALDOR on SMPs and Multicores Multiprocessed Parallelism Support in ALDOR on SMPs and Multicores Marc Moreno Maza Ben Stephenson Stephen M. Watt Yuzhen Xie Ontario Research Cenre for Computer Algebra The University of Western Ontario

More information

to automatically generate parallel code for many applications that periodically update shared data structures using commuting operations and/or manipu

to automatically generate parallel code for many applications that periodically update shared data structures using commuting operations and/or manipu Semantic Foundations of Commutativity Analysis Martin C. Rinard y and Pedro C. Diniz z Department of Computer Science University of California, Santa Barbara Santa Barbara, CA 93106 fmartin,pedrog@cs.ucsb.edu

More information

Maple on a massively parallel, distributed memory machine. Laurent Bernardin. Institut fur Wissenschaftliches Rechnen. ETH Zurich, Switzerland

Maple on a massively parallel, distributed memory machine. Laurent Bernardin. Institut fur Wissenschaftliches Rechnen. ETH Zurich, Switzerland Maple on a massively parallel, distributed memory machine Laurent Bernardin Institut fur Wissenschaftliches Rechnen ETH Zurich, Switzerland bernardin@inf.ethz.ch Abstract We ported the computer algebra

More information

Cost Model: Work, Span and Parallelism

Cost Model: Work, Span and Parallelism CSE 539 01/15/2015 Cost Model: Work, Span and Parallelism Lecture 2 Scribe: Angelina Lee Outline of this lecture: 1. Overview of Cilk 2. The dag computation model 3. Performance measures 4. A simple greedy

More information

The Design of an API for Strict Multithreading in C++

The Design of an API for Strict Multithreading in C++ The Design of an API for Strict Multithreading in C++ Wolfgang Blochinger and Wolfgang Küchlin Wilhelm-Schickard-Institut für Informatik Universität Tübingen, Sand 14, D-72076 Tübingen, Germany {blochinger,kuechlin}@informatik.uni-tuebingen.de

More information

Enhancing Integrated Layer Processing using Common Case. Anticipation and Data Dependence Analysis. Extended Abstract

Enhancing Integrated Layer Processing using Common Case. Anticipation and Data Dependence Analysis. Extended Abstract Enhancing Integrated Layer Processing using Common Case Anticipation and Data Dependence Analysis Extended Abstract Philippe Oechslin Computer Networking Lab Swiss Federal Institute of Technology DI-LTI

More information

Chalmers University of Technology. Without adding any primitives to the language, we dene a concurrency monad transformer

Chalmers University of Technology. Without adding any primitives to the language, we dene a concurrency monad transformer J. Functional Programming 1 (1): 1{000, January 1993 c 1993 Cambridge University Press 1 F U N C T I O N A L P E A R L S A Poor Man's Concurrency Monad Koen Claessen Chalmers University of Technology email:

More information

MTAPI: Parallel Programming for Embedded Multicore Systems

MTAPI: Parallel Programming for Embedded Multicore Systems MTAPI: Parallel Programming for Embedded Multicore Systems Urs Gleim Siemens AG, Corporate Technology http://www.ct.siemens.com/ urs.gleim@siemens.com Markus Levy The Multicore Association http://www.multicore-association.org/

More information

Plan. 1 Parallelism Complexity Measures. 2 cilk for Loops. 3 Scheduling Theory and Implementation. 4 Measuring Parallelism in Practice

Plan. 1 Parallelism Complexity Measures. 2 cilk for Loops. 3 Scheduling Theory and Implementation. 4 Measuring Parallelism in Practice lan Multithreaded arallelism and erformance Measures Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 3101 1 2 cilk for Loops 3 4 Measuring arallelism in ractice 5 Announcements

More information

Synchronization Expressions: Characterization Results and. Implementation. Kai Salomaa y Sheng Yu y. Abstract

Synchronization Expressions: Characterization Results and. Implementation. Kai Salomaa y Sheng Yu y. Abstract Synchronization Expressions: Characterization Results and Implementation Kai Salomaa y Sheng Yu y Abstract Synchronization expressions are dened as restricted regular expressions that specify synchronization

More information

Department of Computing Science Granularity in Large-Scale Parallel Functional Programming Hans Wolfgang Loidl A thesis submitted for a Doctor of Philosophy Degree in Computing Science at the University

More information

EE/CSCI 451: Parallel and Distributed Computation

EE/CSCI 451: Parallel and Distributed Computation EE/CSCI 451: Parallel and Distributed Computation Lecture #7 2/5/2017 Xuehai Qian Xuehai.qian@usc.edu http://alchem.usc.edu/portal/xuehaiq.html University of Southern California 1 Outline From last class

More information

Computation Migration: A Survey

Computation Migration: A Survey Computation Migration: A Survey Sushnanth Rai Department of Computer Science University of Texas, Arlington Rai@cse.uta.edu Abstract We introduce the concept of computation migration and its advantages

More information

1 Optimizing parallel iterative graph computation

1 Optimizing parallel iterative graph computation May 15, 2012 1 Optimizing parallel iterative graph computation I propose to develop a deterministic parallel framework for performing iterative computation on a graph which schedules work on vertices based

More information

Global Scheduler. Global Issue. Global Retire

Global Scheduler. Global Issue. Global Retire The Delft-Java Engine: An Introduction C. John Glossner 1;2 and Stamatis Vassiliadis 2 1 Lucent / Bell Labs, Allentown, Pa. 2 Delft University oftechnology, Department of Electrical Engineering Delft,

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

CHAPTER 4 AN INTEGRATED APPROACH OF PERFORMANCE PREDICTION ON NETWORKS OF WORKSTATIONS. Xiaodong Zhang and Yongsheng Song

CHAPTER 4 AN INTEGRATED APPROACH OF PERFORMANCE PREDICTION ON NETWORKS OF WORKSTATIONS. Xiaodong Zhang and Yongsheng Song CHAPTER 4 AN INTEGRATED APPROACH OF PERFORMANCE PREDICTION ON NETWORKS OF WORKSTATIONS Xiaodong Zhang and Yongsheng Song 1. INTRODUCTION Networks of Workstations (NOW) have become important distributed

More information

An Introduction to OpenMP

An Introduction to OpenMP Dipartimento di Ingegneria Industriale e dell'informazione University of Pavia December 4, 2017 Recap Parallel machines are everywhere Many architectures, many programming model. Among them: multithreading.

More information

Parametric Polymorphism Optimization for Deeply Nested Types in Computer Algebra

Parametric Polymorphism Optimization for Deeply Nested Types in Computer Algebra Parametric Polymorphism Optimization for Deeply Nested Types in Computer Algebra Laurentiu Dragan Stephen M. Watt Ontario Research Center Computer Algebra University of Western Ontario Department of Computer

More information

Experimental Comparison of call string and. functional Approaches to Interprocedural. Analysis? Florian Martin

Experimental Comparison of call string and. functional Approaches to Interprocedural. Analysis? Florian Martin Experimental Comparison of call string and functional Approaches to Interedural Analysis? Florian Martin Universitat des Saarlandes, P.O. Box 151150, 66041 Saarbrucken, martin@cs.uni-sb.de Abstract. The

More information

Detecting and Using Critical Paths at Runtime in Message Driven Parallel Programs

Detecting and Using Critical Paths at Runtime in Message Driven Parallel Programs Detecting and Using Critical Paths at Runtime in Message Driven Parallel Programs Isaac Dooley, Laxmikant V. Kale Department of Computer Science University of Illinois idooley2@illinois.edu kale@illinois.edu

More information

Let us dene the basic notation and list some results. We will consider that stack eects (type signatures) form a polycyclic monoid (introduced in [NiP

Let us dene the basic notation and list some results. We will consider that stack eects (type signatures) form a polycyclic monoid (introduced in [NiP Validation of Stack Eects in Java Bytecode Jaanus Poial Institute of Computer Science University of Tartu, Estonia e-mail: jaanus@cs.ut.ee February 21, 1997 Abstract The Java language is widely used in

More information

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995 ICC++ Language Denition Andrew A. Chien and Uday S. Reddy 1 May 25, 1995 Preface ICC++ is a new dialect of C++ designed to support the writing of both sequential and parallel programs. Because of the signicant

More information

residual residual program final result

residual residual program final result C-Mix: Making Easily Maintainable C-Programs run FAST The C-Mix Group, DIKU, University of Copenhagen Abstract C-Mix is a tool based on state-of-the-art technology that solves the dilemma of whether to

More information

Khoral Research, Inc. Khoros is a powerful, integrated system which allows users to perform a variety

Khoral Research, Inc. Khoros is a powerful, integrated system which allows users to perform a variety Data Parallel Programming with the Khoros Data Services Library Steve Kubica, Thomas Robey, Chris Moorman Khoral Research, Inc. 6200 Indian School Rd. NE Suite 200 Albuquerque, NM 87110 USA E-mail: info@khoral.com

More information

Client Server Client. Chassis. Chassis. Problem. Work. Work. Work Engine. Work Advocate. Work. Work Engine. Work EngineGUI. Manager. Advocate.

Client Server Client. Chassis. Chassis. Problem. Work. Work. Work Engine. Work Advocate. Work. Work Engine. Work EngineGUI. Manager. Advocate. Towards Bayanihan: Building an Extensible Framework for Volunteer Computing Using Java Luis F. G. Sarmenta, 1 Satoshi Hirano, 2 and Stephen A. Ward 1 1 MIT Laboratory for Computer Science Cambridge, MA

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

CMSC 714 Lecture 4 OpenMP and UPC. Chau-Wen Tseng (from A. Sussman)

CMSC 714 Lecture 4 OpenMP and UPC. Chau-Wen Tseng (from A. Sussman) CMSC 714 Lecture 4 OpenMP and UPC Chau-Wen Tseng (from A. Sussman) Programming Model Overview Message passing (MPI, PVM) Separate address spaces Explicit messages to access shared data Send / receive (MPI

More information

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, 28-3 April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC 1131-3 Martin hman Stefan Johansson Karl-Erik rzen Department of Automatic

More information

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

Technische Universitat Munchen. Institut fur Informatik. D Munchen. Developing Applications for Multicomputer Systems on Workstation Clusters Georg Stellner, Arndt Bode, Stefan Lamberts and Thomas Ludwig? Technische Universitat Munchen Institut fur Informatik Lehrstuhl

More information

Adaptively Parallel Processor Allocation for Cilk Jobs

Adaptively Parallel Processor Allocation for Cilk Jobs 6.895 Theory of Parallel Systems Kunal Agrawal, Siddhartha Sen Final Report Adaptively Parallel Processor Allocation for Cilk Jobs Abstract An adaptively parallel job is one in which the number of processors

More information

Process! Process Creation / Termination! Process Transitions in" the Two-State Process Model! A Two-State Process Model!

Process! Process Creation / Termination! Process Transitions in the Two-State Process Model! A Two-State Process Model! Process! Process Creation / Termination!!! A process (sometimes called a task, or a job) is a program in execution"!! Process is not the same as program "!! We distinguish between a passive program stored

More information

A STUDY IN THE INTEGRATION OF COMPUTER ALGEBRA SYSTEMS: MEMORY MANAGEMENT IN A MAPLE ALDOR ENVIRONMENT

A STUDY IN THE INTEGRATION OF COMPUTER ALGEBRA SYSTEMS: MEMORY MANAGEMENT IN A MAPLE ALDOR ENVIRONMENT A STUDY IN THE INTEGRATION OF COMPUTER ALGEBRA SYSTEMS: MEMORY MANAGEMENT IN A MAPLE ALDOR ENVIRONMENT STEPHEN M. WATT ONTARIO RESEARCH CENTER FOR COMPUTER ALGEBRA UNIVERSITY OF WESTERN ONTARIO LONDON

More information

les are not generally available by NFS or AFS, with a mechanism called \remote system calls". These are discussed in section 4.1. Our general method f

les are not generally available by NFS or AFS, with a mechanism called \remote system calls. These are discussed in section 4.1. Our general method f Checkpoint and Migration of UNIX Processes in the Condor Distributed Processing System Michael Litzkow, Todd Tannenbaum, Jim Basney, and Miron Livny Computer Sciences Department University of Wisconsin-Madison

More information

features of Python 1.5, including the features earlier described in [2]. Section 2.6 summarizes what is new in Python The class and the class

features of Python 1.5, including the features earlier described in [2]. Section 2.6 summarizes what is new in Python The class and the class A note on reection in Python 1.5 Anders Andersen y AAndersen@ACM.Org March 13, 1998 Abstract This is a note on reection in Python 1.5. Both this and earlier versions of Python has an open implementation

More information

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations.

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations. A Framework for Embedded Real-time System Design? Jin-Young Choi 1, Hee-Hwan Kwak 2, and Insup Lee 2 1 Department of Computer Science and Engineering, Korea Univerity choi@formal.korea.ac.kr 2 Department

More information

Chapter 1. Reprinted from "Proc. 6th SIAM Conference on Parallel. Processing for Scientic Computing",Norfolk, Virginia (USA), March 1993.

Chapter 1. Reprinted from Proc. 6th SIAM Conference on Parallel. Processing for Scientic Computing,Norfolk, Virginia (USA), March 1993. Chapter 1 Parallel Sparse Matrix Vector Multiplication using a Shared Virtual Memory Environment Francois Bodin y Jocelyne Erhel y Thierry Priol y Reprinted from "Proc. 6th SIAM Conference on Parallel

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

More information

C++ Memory Model. Martin Kempf December 26, Abstract. 1. Introduction What is a Memory Model

C++ Memory Model. Martin Kempf December 26, Abstract. 1. Introduction What is a Memory Model C++ Memory Model (mkempf@hsr.ch) December 26, 2012 Abstract Multi-threaded programming is increasingly important. We need parallel programs to take advantage of multi-core processors and those are likely

More information

Ecient Implementation of Sorting Algorithms on Asynchronous Distributed-Memory Machines

Ecient Implementation of Sorting Algorithms on Asynchronous Distributed-Memory Machines Ecient Implementation of Sorting Algorithms on Asynchronous Distributed-Memory Machines B. B. Zhou, R. P. Brent and A. Tridgell Computer Sciences Laboratory The Australian National University Canberra,

More information

Chapter 4 Threads, SMP, and

Chapter 4 Threads, SMP, and Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 4 Threads, SMP, and Microkernels Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Roadmap Threads: Resource ownership

More information

Multi-core Computing Lecture 1

Multi-core Computing Lecture 1 Hi-Spade Multi-core Computing Lecture 1 MADALGO Summer School 2012 Algorithms for Modern Parallel and Distributed Models Phillip B. Gibbons Intel Labs Pittsburgh August 20, 2012 Lecture 1 Outline Multi-cores:

More information

Ecient Implementation of Sorting Algorithms on Asynchronous Distributed-Memory Machines

Ecient Implementation of Sorting Algorithms on Asynchronous Distributed-Memory Machines Ecient Implementation of Sorting Algorithms on Asynchronous Distributed-Memory Machines Zhou B. B., Brent R. P. and Tridgell A. y Computer Sciences Laboratory The Australian National University Canberra,

More information

1 Introduction One of the contributions of Java is in its bytecode verier, which checks type safety of bytecode for JVM (Java Virtual Machine) prior t

1 Introduction One of the contributions of Java is in its bytecode verier, which checks type safety of bytecode for JVM (Java Virtual Machine) prior t On a New Method for Dataow Analysis of Java Virtual Machine Subroutines Masami Hagiya Department of Information Science, Graduate School of Science, University of Tokyo hagiyais.s.u-tokyo.ac.jp Abstract

More information

size, runs an existing induction algorithm on the rst subset to obtain a rst set of rules, and then processes each of the remaining data subsets at a

size, runs an existing induction algorithm on the rst subset to obtain a rst set of rules, and then processes each of the remaining data subsets at a Multi-Layer Incremental Induction Xindong Wu and William H.W. Lo School of Computer Science and Software Ebgineering Monash University 900 Dandenong Road Melbourne, VIC 3145, Australia Email: xindong@computer.org

More information

A Parallel Intermediate Representation based on. Lambda Expressions. Timothy A. Budd. Oregon State University. Corvallis, Oregon.

A Parallel Intermediate Representation based on. Lambda Expressions. Timothy A. Budd. Oregon State University. Corvallis, Oregon. A Parallel Intermediate Representation based on Lambda Expressions Timothy A. Budd Department of Computer Science Oregon State University Corvallis, Oregon 97331 budd@cs.orst.edu September 20, 1994 Abstract

More information

task object task queue

task object task queue Optimizations for Parallel Computing Using Data Access Information Martin C. Rinard Department of Computer Science University of California, Santa Barbara Santa Barbara, California 9316 martin@cs.ucsb.edu

More information

Centre for Parallel Computing, University of Westminster, London, W1M 8JS

Centre for Parallel Computing, University of Westminster, London, W1M 8JS Graphical Construction of Parallel Programs G. R. Ribeiro Justo Centre for Parallel Computing, University of Westminster, London, WM 8JS e-mail: justog@wmin.ac.uk, Abstract Parallel programming is not

More information

GRIP: A parallel graph reduction machine

GRIP: A parallel graph reduction machine GRIP: A parallel graph reduction machine Simon L. Peyton-Jones, Chris Clack and Jon Salkild University College, London Abstract GRIP - Graph Reduction In Parallel - is a Fifth Generation machine designed

More information

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL Jun Sun, Yasushi Shinjo and Kozo Itano Institute of Information Sciences and Electronics University of Tsukuba Tsukuba,

More information

A Freely Congurable Audio-Mixing Engine. M. Rosenthal, M. Klebl, A. Gunzinger, G. Troster

A Freely Congurable Audio-Mixing Engine. M. Rosenthal, M. Klebl, A. Gunzinger, G. Troster A Freely Congurable Audio-Mixing Engine with Automatic Loadbalancing M. Rosenthal, M. Klebl, A. Gunzinger, G. Troster Electronics Laboratory, Swiss Federal Institute of Technology CH-8092 Zurich, Switzerland

More information

which a value is evaluated. When parallelising a program, instances of this class need to be produced for all the program's types. The paper commented

which a value is evaluated. When parallelising a program, instances of this class need to be produced for all the program's types. The paper commented A Type-Sensitive Preprocessor For Haskell Noel Winstanley Department of Computer Science University of Glasgow September 4, 1997 Abstract This paper presents a preprocessor which generates code from type

More information

Do! environment. DoT

Do! environment. DoT The Do! project: distributed programming using Java Pascale Launay and Jean-Louis Pazat IRISA, Campus de Beaulieu, F35042 RENNES cedex Pascale.Launay@irisa.fr, Jean-Louis.Pazat@irisa.fr http://www.irisa.fr/caps/projects/do/

More information

Understanding Concurrent Programs. using. Computer Science Department. Science Labs, South Rd. the language WSL [2,9,14] the Wide Spectrum Language,

Understanding Concurrent Programs. using. Computer Science Department. Science Labs, South Rd. the language WSL [2,9,14] the Wide Spectrum Language, Understanding Concurrent Programs using Program Transformations E. J. Younger Centre for Software Maintenance Ltd Unit 1P, Mountjoy Research Centre Durham, DH1 3SW M. P. Ward Computer Science Department

More information

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture) EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture) Dept. of Computer Science & Engineering Chentao Wu wuct@cs.sjtu.edu.cn Download lectures ftp://public.sjtu.edu.cn User:

More information

PARALLEL PERFORMANCE DIRECTED TECHNOLOGY MAPPING FOR FPGA. Laurent Lemarchand. Informatique. ea 2215, D pt. ubo University{ bp 809

PARALLEL PERFORMANCE DIRECTED TECHNOLOGY MAPPING FOR FPGA. Laurent Lemarchand. Informatique. ea 2215, D pt. ubo University{ bp 809 PARALLEL PERFORMANCE DIRECTED TECHNOLOGY MAPPING FOR FPGA Laurent Lemarchand Informatique ubo University{ bp 809 f-29285, Brest { France lemarch@univ-brest.fr ea 2215, D pt ABSTRACT An ecient distributed

More information

For our sample application we have realized a wrapper WWWSEARCH which is able to retrieve HTML-pages from a web server and extract pieces of informati

For our sample application we have realized a wrapper WWWSEARCH which is able to retrieve HTML-pages from a web server and extract pieces of informati Meta Web Search with KOMET Jacques Calmet and Peter Kullmann Institut fur Algorithmen und Kognitive Systeme (IAKS) Fakultat fur Informatik, Universitat Karlsruhe Am Fasanengarten 5, D-76131 Karlsruhe,

More information

40 Behaviour Compatibility

40 Behaviour Compatibility 40 Behaviour Compatibility [2] R. De Nicola, Extentional Equivalences for Transition Systems, Acta Informatica, vol. 24, pp. 21-237, 1987. [3] J. Gray, Notes on Data Base Operating Systems, in Operating

More information

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No # 09 Lecture No # 40 This is lecture forty of the course on

More information

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples Multicore Jukka Julku 19.2.2009 1 2 3 4 5 6 Disclaimer There are several low-level, languages and directive based approaches But no silver bullets This presentation only covers some examples of them is

More information

Plan. 1 Parallelism Complexity Measures. 2 cilk for Loops. 3 Scheduling Theory and Implementation. 4 Measuring Parallelism in Practice

Plan. 1 Parallelism Complexity Measures. 2 cilk for Loops. 3 Scheduling Theory and Implementation. 4 Measuring Parallelism in Practice lan Multithreaded arallelism and erformance Measures Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 4435 - CS 9624 1 2 cilk for Loops 3 4 Measuring arallelism in ractice 5

More information

Language. Institut fur Informatik, Technische Universitat Munchen. Abstract

Language. Institut fur Informatik, Technische Universitat Munchen.   Abstract Modelling Inheritance in an Algebraic Specication Language Dieter Nazareth Institut fur Informatik, Technische Universitat Munchen Postfach 20 24 20, D-8000 Munchen 2, Germany e-mail: nazareth@informatik.tu-muenchen.de

More information

The S-Expression Design Language (SEDL) James C. Corbett. September 1, Introduction. 2 Origins of SEDL 2. 3 The Language SEDL 2.

The S-Expression Design Language (SEDL) James C. Corbett. September 1, Introduction. 2 Origins of SEDL 2. 3 The Language SEDL 2. The S-Expression Design Language (SEDL) James C. Corbett September 1, 1993 Contents 1 Introduction 1 2 Origins of SEDL 2 3 The Language SEDL 2 3.1 Scopes : : : : : : : : : : : : : : : : : : : : : : : :

More information

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs.

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs. and easily tailor it for use within the multicast system. After expressing an initial application design in terms of MIL specications, the application code and speci- cations may be compiled and executed.

More information

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Objectives To introduce the notion of a

More information

A Multi-Threaded Asynchronous Language

A Multi-Threaded Asynchronous Language A Multi-Threaded Asynchronous Language Hervé Paulino 1, Pedro Marques 2, Luís Lopes 2, Vasco Vasconcelos 3, and Fernando Silva 2 1 Department of Informatics, New University of Lisbon, Portugal herve@di.fct.unl.pt

More information

Lecture 24: Multiprocessing Computer Architecture and Systems Programming ( )

Lecture 24: Multiprocessing Computer Architecture and Systems Programming ( ) Systems Group Department of Computer Science ETH Zürich Lecture 24: Multiprocessing Computer Architecture and Systems Programming (252-0061-00) Timothy Roscoe Herbstsemester 2012 Most of the rest of this

More information

Middleware and Interprocess Communication

Middleware and Interprocess Communication Middleware and Interprocess Communication Reading Coulouris (5 th Edition): 41 4.1, 42 4.2, 46 4.6 Tanenbaum (2 nd Edition): 4.3 Spring 2015 CS432: Distributed Systems 2 Middleware Outline Introduction

More information

Threads. CS3026 Operating Systems Lecture 06

Threads. CS3026 Operating Systems Lecture 06 Threads CS3026 Operating Systems Lecture 06 Multithreading Multithreading is the ability of an operating system to support multiple threads of execution within a single process Processes have at least

More information

LHC-B. 60 silicon vertex detector elements. (strips not to scale) [cm] [cm] = 1265 strips

LHC-B. 60 silicon vertex detector elements. (strips not to scale) [cm] [cm] = 1265 strips LHCb 97-020, TRAC November 25 1997 Comparison of analogue and binary read-out in the silicon strips vertex detector of LHCb. P. Koppenburg 1 Institut de Physique Nucleaire, Universite de Lausanne Abstract

More information

Reinforcement Control via Heuristic Dynamic Programming. K. Wendy Tang and Govardhan Srikant. and

Reinforcement Control via Heuristic Dynamic Programming. K. Wendy Tang and Govardhan Srikant. and Reinforcement Control via Heuristic Dynamic Programming K. Wendy Tang and Govardhan Srikant wtang@ee.sunysb.edu and gsrikant@ee.sunysb.edu Department of Electrical Engineering SUNY at Stony Brook, Stony

More information

Imperative Functional Programming

Imperative Functional Programming Imperative Functional Programming Uday S. Reddy Department of Computer Science The University of Illinois at Urbana-Champaign Urbana, Illinois 61801 reddy@cs.uiuc.edu Our intuitive idea of a function is

More information

apply competitive analysis, introduced in [10]. It determines the maximal ratio between online and optimal oine solutions over all possible inputs. In

apply competitive analysis, introduced in [10]. It determines the maximal ratio between online and optimal oine solutions over all possible inputs. In Online Scheduling of Continuous Media Streams? B. Monien, P. Berenbrink, R. Luling, and M. Riedel?? University of Paderborn, Germany E-mail: bm,pebe,rl,barcom@uni-paderborn.de Abstract. We present a model

More information

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues 4.2 Silberschatz, Galvin

More information

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8

More information

2 3. Syllabus Time Event 9:00{10:00 morning lecture 10:00{10:30 morning break 10:30{12:30 morning practical session 12:30{1:30 lunch break 1:30{2:00 a

2 3. Syllabus Time Event 9:00{10:00 morning lecture 10:00{10:30 morning break 10:30{12:30 morning practical session 12:30{1:30 lunch break 1:30{2:00 a 1 Syllabus for the Advanced 3 Day Fortran 90 Course AC Marshall cuniversity of Liverpool, 1997 Abstract The course is scheduled for 3 days. The timetable allows for two sessions a day each with a one hour

More information

Generalized Iteration Space and the. Parallelization of Symbolic Programs. (Extended Abstract) Luddy Harrison. October 15, 1991.

Generalized Iteration Space and the. Parallelization of Symbolic Programs. (Extended Abstract) Luddy Harrison. October 15, 1991. Generalized Iteration Space and the Parallelization of Symbolic Programs (Extended Abstract) Luddy Harrison October 15, 1991 Abstract A large body of literature has developed concerning the automatic parallelization

More information

RECONFIGURATION OF HIERARCHICAL TUPLE-SPACES: EXPERIMENTS WITH LINDA-POLYLITH. Computer Science Department and Institute. University of Maryland

RECONFIGURATION OF HIERARCHICAL TUPLE-SPACES: EXPERIMENTS WITH LINDA-POLYLITH. Computer Science Department and Institute. University of Maryland RECONFIGURATION OF HIERARCHICAL TUPLE-SPACES: EXPERIMENTS WITH LINDA-POLYLITH Gilberto Matos James Purtilo Computer Science Department and Institute for Advanced Computer Studies University of Maryland

More information

Wrapper 2 Wrapper 3. Information Source 2

Wrapper 2 Wrapper 3. Information Source 2 Integration of Semistructured Data Using Outer Joins Koichi Munakata Industrial Electronics & Systems Laboratory Mitsubishi Electric Corporation 8-1-1, Tsukaguchi Hon-machi, Amagasaki, Hyogo, 661, Japan

More information

Distributed Systems 8. Remote Procedure Calls

Distributed Systems 8. Remote Procedure Calls Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier

More information

Example of a Parallel Algorithm

Example of a Parallel Algorithm -1- Part II Example of a Parallel Algorithm Sieve of Eratosthenes -2- -3- -4- -5- -6- -7- MIMD Advantages Suitable for general-purpose application. Higher flexibility. With the correct hardware and software

More information

Predicting Scalability of Parallel Garbage Collectors on Shared Memory Multiprocessors Toshio Endo, Kenjiro Taura, and Akinori Yonezawa Department of

Predicting Scalability of Parallel Garbage Collectors on Shared Memory Multiprocessors Toshio Endo, Kenjiro Taura, and Akinori Yonezawa Department of Predicting Scalability of Parallel Garbage Collectors on Shared Memory Multiprocessors Toshio Endo, Kenjiro Taura, and Akinori Yonezawa Department of Information Science Faculty of Science University of

More information

Introduction to OpenMP. OpenMP basics OpenMP directives, clauses, and library routines

Introduction to OpenMP. OpenMP basics OpenMP directives, clauses, and library routines Introduction to OpenMP Introduction OpenMP basics OpenMP directives, clauses, and library routines What is OpenMP? What does OpenMP stands for? What does OpenMP stands for? Open specifications for Multi

More information

Generative Programming from a Domain-Specific Language Viewpoint

Generative Programming from a Domain-Specific Language Viewpoint Generative Programming from a Domain-Specific Language Viewpoint Charles Consel To cite this version: Charles Consel. Generative Programming from a Domain-Specific Language Viewpoint. Unconventional Programming

More information

Data reduction for CORSIKA. Dominik Baack. Technical Report 06/2016. technische universität dortmund

Data reduction for CORSIKA. Dominik Baack. Technical Report 06/2016. technische universität dortmund Data reduction for CORSIKA Technical Report Dominik Baack 06/2016 technische universität dortmund Part of the work on this technical report has been supported by Deutsche Forschungsgemeinschaft (DFG) within

More information

Chip Multiprocessors COMP Lecture 9 - OpenMP & MPI

Chip Multiprocessors COMP Lecture 9 - OpenMP & MPI Chip Multiprocessors COMP35112 Lecture 9 - OpenMP & MPI Graham Riley 14 February 2018 1 Today s Lecture Dividing work to be done in parallel between threads in Java (as you are doing in the labs) is rather

More information

Distributed Systems. Definitions. Why Build Distributed Systems? Operating Systems - Overview. Operating Systems - Overview

Distributed Systems. Definitions. Why Build Distributed Systems? Operating Systems - Overview. Operating Systems - Overview Distributed Systems Joseph Spring School of Computer Science Distributed Systems and Security Areas for Discussion Definitions Operating Systems Overview Challenges Heterogeneity Limitations and 2 Definitions

More information

Submitted for TAU97 Abstract Many attempts have been made to combine some form of retiming with combinational

Submitted for TAU97 Abstract Many attempts have been made to combine some form of retiming with combinational Experiments in the Iterative Application of Resynthesis and Retiming Soha Hassoun and Carl Ebeling Department of Computer Science and Engineering University ofwashington, Seattle, WA fsoha,ebelingg@cs.washington.edu

More information

A High Performance Parallel Strassen Implementation. Brian Grayson. The University of Texas at Austin.

A High Performance Parallel Strassen Implementation. Brian Grayson. The University of Texas at Austin. A High Performance Parallel Strassen Implementation Brian Grayson Department of Electrical and Computer Engineering The University of Texas at Austin Austin, TX 787 bgrayson@pineeceutexasedu Ajay Pankaj

More information

David B. Johnson. Willy Zwaenepoel. Rice University. Houston, Texas. or the constraints of real-time applications [6, 7].

David B. Johnson. Willy Zwaenepoel. Rice University. Houston, Texas. or the constraints of real-time applications [6, 7]. Sender-Based Message Logging David B. Johnson Willy Zwaenepoel Department of Computer Science Rice University Houston, Texas Abstract Sender-based message logging isanewlow-overhead mechanism for providing

More information

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls Problems with sockets Distributed Systems Sockets interface is straightforward [connect] read/write [disconnect] Remote Procedure Calls BUT it forces read/write mechanism We usually use a procedure call

More information

Implementing Remote Procedure Calls*

Implementing Remote Procedure Calls* Overview Implementing Remote Procedure Calls* Birrell, A. D. and Nelson, B. J. Brief introduction RPC issues Implementation Examples Current RPC implementations Presented by Emil Constantinescu Review

More information

The Concurrency Viewpoint

The Concurrency Viewpoint The Concurrency Viewpoint View Relationships The Concurrency Viewpoint 2 The Concurrency Viewpoint Definition: The Concurrency Viewpoint: describes the concurrency structure of the system and maps functional

More information

A Suite of Formal Denitions for Consistency Criteria. in Distributed Shared Memories Rennes Cedex (France) 1015 Lausanne (Switzerland)

A Suite of Formal Denitions for Consistency Criteria. in Distributed Shared Memories Rennes Cedex (France) 1015 Lausanne (Switzerland) A Suite of Formal Denitions for Consistency Criteria in Distributed Shared Memories Michel Raynal Andre Schiper IRISA, Campus de Beaulieu EPFL, Dept d'informatique 35042 Rennes Cedex (France) 1015 Lausanne

More information