Remote Function Invocation

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

MINJAE HWANG THAWAN KOOBURAT CS758 CLASS PROJECT FALL 2009 Extending Task-based Programming Model beyond Shared-memory Systems.
Parallel Processing with OpenMP
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Fundamentals of Python: From First Programs Through Data Structures
SKELETON BASED PERFORMANCE PREDICTION ON SHARED NETWORKS Sukhdeep Sodhi Microsoft Corp Jaspal Subhlok University of Houston.
Multiprocessors ELEC 6200: Computer Architecture and Design Instructor : Agrawal Name: Nam.
Computer Organization and Architecture
CS294-6 Reconfigurable Computing Day 3 September 1, 1998 Requirements for Computing Devices.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
PRASHANTHI NARAYAN NETTEM.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
FLANN Fast Library for Approximate Nearest Neighbors
Contemporary Languages in Parallel Computing Raymond Hummel.
1 25\10\2010 Unit-V Connecting LANs Unit – 5 Connecting DevicesConnecting Devices Backbone NetworksBackbone Networks Virtual LANsVirtual LANs.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
Design and Implementation of a Single System Image Operating System for High Performance Computing on Clusters Christine MORIN PARIS project-team, IRISA/INRIA.
Introduction to Parallel Processing 3.1 Basic concepts 3.2 Types and levels of parallelism 3.3 Classification of parallel architecture 3.4 Basic parallel.
SEC(R) 2008 Intel® Concurrent Collections for C++ - a model for parallel programming Nikolay Kurtov Software and Services.
Computer Architecture Parallel Processing
October 30, 2008 Extensible Workflow Management for Simmod ESUG32, Frankfurt, Oct 30, 2008 Alexander Scharnweber (DLR) October 30, 2008 Slide 1 > Extensible.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
Digital Planet: Tomorrow’s Technology and You
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
A Framework for Elastic Execution of Existing MPI Programs Aarthi Raveendran Tekin Bicer Gagan Agrawal 1.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Interrupts By Ryan Morris. Overview ● I/O Paradigm ● Synchronization ● Polling ● Control and Status Registers ● Interrupt Driven I/O ● Importance of Interrupts.
IPDPS 2005, slide 1 Automatic Construction and Evaluation of “Performance Skeletons” ( Predicting Performance in an Unpredictable World ) Sukhdeep Sodhi.
Super computers Parallel Processing By Lecturer: Aisha Dawood.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
PARALLEL APPLICATIONS EE 524/CS 561 Kishore Dhaveji 01/09/2000.
CLUSTER COMPUTING TECHNOLOGY BY-1.SACHIN YADAV 2.MADHAV SHINDE SECTION-3.
Review (1/2) °Caches are NOT mandatory: Processor performs arithmetic Memory stores data Caches simply make data transfers go faster °Each level of memory.
CS 682, AI:Case-Based Reasoning, Prof. Cindy Marling1 Chapter 8: Organizational Structures and Retrieval Algorithms This chapter deals with how to find.
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
Lecture 02. Java Virtual Machine(JVM) –set of computer software programs and data structures that use a virtual machine model for the execution of other.
By Chi-Chang Chen.  Cluster computing is a technique of linking two or more computers into a network (usually through a local area network) in order.
Memory-Aware Scheduling for LU in Charm++ Isaac Dooley, Chao Mei, Jonathan Lifflander, Laxmikant V. Kale.
Image Processing A Study in Pixel Averaging Building a Resolution Pyramid With Parallel Computing Denise Runnels and Farnaz Zand.
Chapter 8 System Management Semester 2. Objectives  Evaluating an operating system  Cooperation among components  The role of memory, processor,
3/12/2013Computer Engg, IIT(BHU)1 INTRODUCTION-1.
Parallel IO for Cluster Computing Tran, Van Hoai.
Microsoft ® Official Course Module 6 Managing Software Distribution and Deployment by Using Packages and Programs.
JAVA: An Introduction to Problem Solving & Programming, 7 th Ed. By Walter Savitch ISBN © 2015 Pearson Education, Inc., Upper Saddle River,
Background Computer System Architectures Computer System Software.
Evolution of Distributed Computing
Operating Systems {week 11a}
2. OPERATING SYSTEM 2.1 Operating System Function
OpenMosix, Open SSI, and LinuxPMI
Chapter 3: Process Concept
Mechanism: Limited Direct Execution
In-situ Visualization using VisIt
Kay Ousterhout, Christopher Canel, Sylvia Ratnasamy, Scott Shenker
/ Computer Architecture and Design
The Scheduling Strategy and Experience of IHEP HTCondor Cluster
Synchronization trade-offs in GPU implementations of Graph Algorithms
What is Parallel and Distributed computing?
Lecture 14 Virtual Memory and the Alpha Memory Hierarchy
Introduction.
Chapter 17: Database System Architectures
Distributed Databases
Chapter 4 Multiprocessors
Transactions in Distributed Systems
Database System Architectures
Runtime Stack Activation record for hanoi;
Presentation transcript:

Remote Function Invocation Running a Single Program On Multiple Computers

Thesis Single Program Single Computer Serial Processing

Antithesis Multiple Programs Multiple Computers Cooperate on Single Problem via Messages

Synthesis Single Program Multiple Computers

Raises Questions Existing mechanisms? Message-passing necessary? Comparison of Metrics? Anything we can exploit? Use?

Objectives Develop the mechanism Benchmark RFI Demonstrate: Running existing program on cluster Exploitation of new opportunities presented by RFI

Programs Native Code Virtual Platform RFI exists

Developing Rexel Remote Execution Environment for Linux

Node Setup Simple Comms Store libfile.so Register function Call function

Function Calling Few major problems Trade-offs acceptable Uses dlopen() and dlsym() Uses Libffi for calling convention

Usage Usage (mostly) automatic Needs runtime linkage librexelmaster.so Configured exclusively from config files

Test Setup Benchmarked against MPI Setup carefully controlled System representative of cloud providers Problem-space exhaustion

Speed (1/2)

Speed (2/2)

Speed Overall Predictability

Consistency (1/2)

Consistency (2/2)

Summary Rexel MPI Quicker at lots of smaller problems Slower when number of repeated calls increase Predictable and consistent throughout Slower when problem is divided into tiny chunks Faster as problem-size of each chunk grows Unpredictable with tested criteria

Future? Rexel MPI Performance improved towards the end Consistency improved towards the end

Running SQLite (1/2) SQLite: Small standalone database Has c/line interface Stores all data in a single file

SQLite (2/2) Run in LD_PRELOAD environment Unaware of Rexel Mixed results Successfully wrote files Nodes could not return errors

Partial Shared-Memory Expressions represented as trees Leaf nodes are operands Branch nodes are operators

Solving Expressions Solved recursively Independently

Concurrent Solving

Research Answers Mechanisms exist Replacement possible for both shared-mem and MPI Large effects on software design Multiple opportunities to exploit

Future Opportunities Can have an impact on program design Quorum Solving Fine-grained Unit-testing More???