General Purpose Grid Computing LCA. Specification The system will provide a multi-threaded, shared memory environment that is distributed across a loosely.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

R-Mancala Srinivas Krishnan & Kiranjit Sidhu. Outline Design Details Refactoring Experience Demo.
Middleware Technologies compiled by: Thomas M. Cosley.
Implementing Remote Procedure Calls an introduction to the fundamentals of RPCs, made during the advent of the technology. what is an RPC? what different.
Fundamentals of Python: From First Programs Through Data Structures
Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 43 Remote Method Invocation.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 29 Remote Method.
Martin Kruliš by Martin Kruliš (v1.1)1.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Apache Ignite Compute Grid Research Corey Pentasuglia.
Architecture Review 10/11/2004
Client-Server Communication
OPERATING SYSTEM CONCEPT AND PRACTISE
Remote execution of long-running CGIs
Common Object Request Broker Architecture (CORBA)
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
.NET Remoting Priyanka Bharatula.
Apartments and COM Threading Models
Advanced Topics in Concurrency and Reactive Programming: Asynchronous Programming Majeed Kassis.
Chapter 3 Internet Applications and Network Programming
CS533 Concepts of Operating Systems
Remote Method Invocation
Chapter 2: System Structures
Lecture 21 Concurrency Introduction
Out-of-Process Components
The Client/Server Database Environment
Introduction to J2EE Architecture
Senior Software Engineering Student Robertas Sys
Chapter 3: Windows7 Part 4.
Ch > 28.4.
Programming Models for Distributed Application
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
An example design for an Amadeus APIv2 Web Server Application
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
COT 5611 Operating Systems Design Principles Spring 2014
Modified by H. Schulzrinne 02/15/10 Chapter 4: Threads.
Chapter 2: The Linux System Part 1
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Design pattern for cloud Application
Chapter 40 Remote Method Invocation
Lecture Topics: 11/1 General Operating System Concepts Processes
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Multithreaded Programming
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
EECE.4810/EECE.5730 Operating Systems
Prof. Leonardo Mostarda University of Camerino
Chapter 46 Remote Method Invocation
P1 : Distributed Bitcoin Miner
Chapter 15: File System Internals
Chapter 46 Remote Method Invocation
Out-of-Process Components
Chapter 2: Operating-System Structures
Channel Access Concepts
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Message Passing Systems Version 2
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Channel Access Concepts
System Models Bina Ramamurthy 9/7/2019 B.Ramamurthy.
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

General Purpose Grid Computing LCA

Specification The system will provide a multi-threaded, shared memory environment that is distributed across a loosely coupled network of peers (a grid). System features include: –A tracker application –A long running grid client –A thread library –Sample applications using the thread library and system infrastructure

Tracker A web service which maintains a regularly updated list of active peers on the grid. This list is made available to grid clients upon request.

Long Running Grid Client Provides execution service for applications written against the thread library (Executive Role). Jobs are executed in a secure environment, allowing the execution of code from un-trusted sources (Worker Role). A GUI provides status information.

GUI Mockup

Thread Library Provides the primary interface for developers to utilize the grid in a manner similar to native thread libraries. The functions provided by the library include: –Init() –CreateThread() –StartThread() –Lock() –Join()

Architecture

Application Compiled against API. Uses Remote Procedure Calls (RPC) to communicate with the Executive Peer. An init() function is called to establish communication with the Executive Peer. Calls CreateThread() in the API, which invokes the Executive Peer. The Application blocks until the thread is created at an available worker node. A join() function is provided which requires all outstanding grid threads to complete or throws an exception if communication to a thread is lost.

Executive Peer When the Executive Peer receives a CreateThread() request, it searches for an available node, in the following order: –Local Worker peer –Recently used Remote Worker Peers whose connection details are cached. –Requests a list of available peers from the tracker: Once a worker peer accepts a job, the assembly is transferred to the remote peer along with the entry point. The thread is then created and the threadId is returned. After receiving a start request with a threadId, it forwards the request to the appropriate worker peer. Once communication is established with a worker peer, a status request is sent periodically.

Worker Peer When a requestExecution() is received, if the peer is available it will reserve a spot in the execution queue. Waits for the Executive to send the assembly and the delegate to invoke. When a invokeThread() is received, the following events occur: –The assembly is loaded as a secure (sandboxed).NET Application Domain. –.NET Reflection is used to locate the starting point of the thread. –The type which contains the thread start method is instantiated and a proxy object created. –The thread library opens a communication channel to the local peer. –The delegate is then invoked in the appDomain. Periodically responds to status requests from the Executive peer.

Thread Library Based on the NGrid interface. Every object on the grid inherits from GObject. The thread package provides basic threading functions.

Activity Flow for CreateThread() ApplicationAPIExecutivePeerWorkerPeer CreateThread(…) CreateThread() requestExecution() No requestExecution() Yes CreateThread() Return ThreadId Return GThread Process boundary Network boundary

Activity Flow for Join() ApplicationAPIExecutivePeerWorkerPeer Join() RegisterCallback Polling Complete Callback (done) return Process boundary Network boundary Kill() Error Case Timeout Notify() NotifyRunning() Exception Bloc k

Team Structure We have formed four teams based on the main components of the project. APIAustin, Andrew, Jacob, Jeremy Peer/LoaderAlex, Gabriel, Jacob Testing & Documentation Adrian, Josh TrackerJeremy

Milestones Friday 4/21 - Teams begin coding assigned components. Monday 5/1 - Completed coding of beta components. Tuesday 5/9 – Beta release due. Tuesday 5/30 – Final release due. Tuesday 5/ :01pm - Celebrate.

Risks Using the grid is slower than using a single machine. Scope of the project is simply too large to be completed in the given schedule. Scope of the project is too limited to be useful.

Testing System Failure cases: –Worker peer loses connection: the Executive peer will recognize the event and handle it gracefully. –Executive peer loses connection: all a worker needs to do is recognize the event and kill any processes it may be running for that Executive.

Documentation System documentation will include detailed API specification as well as sample code and sample applications. The sample code and applications will be commented such that they can act as tutorials for a programmer coding against the API.