Design of it : an Aldor library to express parallel programs Extended Abstract Niklaus Mannhart Institute for Scientic Computing ETH-Zentrum CH-8092 Z
|
|
- Dorothy Manning
- 5 years ago
- Views:
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.
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 informationIn: 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 informationMaple 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 informationEcient 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 informationMultithreaded 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 informationProvably 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 informationMultiprocessed 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 informationto 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 informationMaple 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 informationCost 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 informationThe 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 informationEnhancing 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 informationChalmers 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 informationMTAPI: 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 informationPlan. 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 informationSynchronization 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 informationDepartment 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 informationEE/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 informationComputation 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 information1 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 informationGlobal 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 informationSAMOS: 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 informationCHAPTER 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 informationAn 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 informationParametric 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 informationExperimental 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 informationDetecting 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 informationLet 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 informationICC++ 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 informationresidual 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 informationKhoral 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 informationClient 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 informationA 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 informationCMSC 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 informationDRAFT 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 informationTechnische 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 informationAdaptively 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 informationProcess! 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 informationA 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 informationles 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 informationfeatures 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 informationA 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 informationChapter 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 informationThe 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 informationC++ 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 informationEcient 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 informationChapter 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 informationMulti-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 informationEcient 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 information1 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 informationsize, 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 informationA 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 informationtask 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 informationCentre 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 informationGRIP: 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 informationTHE 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 informationA 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 informationwhich 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 informationDo! 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 informationUnderstanding 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 informationEI 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 informationPARALLEL 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 informationFor 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 information40 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 informationHigh 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 informationJukka 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 informationPlan. 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 informationLanguage. 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 informationThe 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 informationand 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 informationChapter 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 informationA 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 informationLecture 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 informationMiddleware 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 informationThreads. 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 informationLHC-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 informationReinforcement 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 informationImperative 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 informationapply 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 informationChapter 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 informationOutline. 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 information2 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 informationGeneralized 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 informationRECONFIGURATION 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 informationWrapper 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 informationDistributed 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 informationExample 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 informationPredicting 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 informationIntroduction 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 informationGenerative 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 informationData 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 informationChip 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 informationDistributed 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 informationSubmitted 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 informationA 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 informationDavid 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 informationDistributed 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 informationImplementing 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 informationThe 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 informationA 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