Optimized Java computing as an application for Desktop Grid Olejnik Richard 1, Bernard Toursel 1, Marek Tudruj 2, Eryk Laskowski 2 1 Université des Sciences.

Slides:



Advertisements
Similar presentations
UNIVERSITY OF JYVÄSKYLÄ P2PDisCo – Java Distributed Computing for Workstations Using Chedar Peer-to-Peer Middleware Presentation for 7 th International.
Advertisements

Elton Mathias and Jean Michael Legait 1 Elton Mathias, Jean Michael Legait, Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis,
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Christian Delbe1 Christian Delbé OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis November Automatic Fault Tolerance in ProActive.
THE JINI TECHNOLOGY Alessio Zumbo
A system Performance Model Instructor: Dr. Yanqing Zhang Presented by: Rajapaksage Jayampthi S.
What iS RMI? Remote Method Invocation. It is an approach where a method on a remote machine invokes another method on another machine to perform some computation.
Technical Architectures
Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june.
1 Dr. Frederica Darema Senior Science and Technology Advisor NSF Future Parallel Computing Systems – what to remember from the past RAMP Workshop FCRC.
Milos Kobliha Alejandro Cimadevilla Luis de Alba Parallel Computing Seminar GROUP 12.
1 Introduction to Load Balancing: l Definition of Distributed systems. Collection of independent loosely coupled computing resources. l Load Balancing.
Using extremal optimization for Java program initial placement in clusters of JVMs E. Laskowski 1, M. Tudruj 1,3, I. De Falco 2, U. Scafuri 2, E. Tarantino.
Diffusion scheduling in multiagent computing system MotivationArchitectureAlgorithmsExamplesDynamics Robert Schaefer, AGH University of Science and Technology,
Institute of Computer Science AGH Performance Monitoring of Java Web Service-based Applications Włodzimierz Funika, Piotr Handzlik Lechosław Trębacz Institute.
Design and Implementation of a Single System Image Operating System for High Performance Computing on Clusters Christine MORIN PARIS project-team, IRISA/INRIA.
SensIT PI Meeting, January 15-17, Self-Organizing Sensor Networks: Efficient Distributed Mechanisms Alvin S. Lim Computer Science and Software Engineering.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
An Introduction to Software Architecture
DISTRIBUTED COMPUTING
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
CCA Common Component Architecture Manoj Krishnan Pacific Northwest National Laboratory MCMD Programming and Implementation Issues.
Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.
Cracow Grid Workshop, October 27 – 29, 2003 Institute of Computer Science AGH Design of Distributed Grid Workflow Composition System Marian Bubak, Tomasz.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
The Grid System Design Liu Xiangrui Beijing Institute of Technology.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
StreamX10: A Stream Programming Framework on X10 Haitao Wei School of Computer Science at Huazhong University of Sci&Tech.
Heavy and lightweight dynamic network services: challenges and experiments for designing intelligent solutions in evolvable next generation networks Laurent.
1 4/23/2007 Introduction to Grid computing Sunil Avutu Graduate Student Dept.of Computer Science.
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
1 M. Tudruj, J. Borkowski, D. Kopanski Inter-Application Control Through Global States Monitoring On a Grid Polish-Japanese Institute of Information Technology,
Service - Oriented Middleware for Distributed Data Mining on the Grid ,劉妘鑏 Antonio C., Domenico T., and Paolo T. Journal of Parallel and Distributed.
Distributed Computing Systems CSCI 4780/6780. Distributed System A distributed system is: A collection of independent computers that appears to its users.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
NIH Resource for Biomolecular Modeling and Bioinformatics Beckman Institute, UIUC NAMD Development Goals L.V. (Sanjay) Kale Professor.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
ProActive components and legacy code Matthieu MOREL.
Gedae, Inc. Gedae: Auto Coding to a Virtual Machine Authors: William I. Lundgren, Kerry B. Barnes, James W. Steed HPEC 2004.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
Internet of Things. IoT Novel paradigm – Rapidly gaining ground in the wireless scenario Basic idea – Pervasive presence around us a variety of things.
Inria Rhône-AlpesEMGnet meeting - December 98 1 A Platform for EMG Studies Danielle Ziébelin, Martine Maume and Philippe Genoud INRIA Rhône-Alpes Projet.
An Overview of Scientific Workflows: Domains & Applications Laboratoire Lorrain de Recherche en Informatique et ses Applications Presented by Khaled Gaaloul.
Tool Integration with Data and Computation Grid “Grid Wizard 2”
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Satisfying Requirements BPF for DRA shall address: –DAQ Environment (Eclipse RCP): Gumtree ISEE workbench integration; –Design Composing and Configurability,
PARALLEL AND DISTRIBUTED PROGRAMMING MODELS U. Jhashuva 1 Asst. Prof Dept. of CSE om.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
The EPIKH Project (Exchange Programme to advance e-Infrastructure Know-How) gLite Grid Introduction Salma Saber Electronic.
Application of Design Patterns to Geometric Decompositions V. Balaji, Thomas L. Clune, Robert W. Numrich and Brice T. Womack.
Kai Li, Allen D. Malony, Sameer Shende, Robert Bell
Software Architecture
Introduction to Load Balancing:
OO Methodology OO Architecture.
Distribution and components
Grid Computing.
University of Technology
Liang Chen Advisor: Gagan Agrawal Computer Science & Engineering
Summary Background Introduction in algorithms and applications
An Introduction to Software Architecture
Large Scale Distributed Computing
Quality-aware Middleware
L. Glimcher, R. Jin, G. Agrawal Presented by: Leo Glimcher
Presentation transcript:

Optimized Java computing as an application for Desktop Grid Olejnik Richard 1, Bernard Toursel 1, Marek Tudruj 2, Eryk Laskowski 2 1 Université des Sciences et Technologies de Lille Laboratoire d’Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) {olejnik, 2 Institute of Computer Science Polish Academy of Sciences Warsaw, Poland {tudruj,

2 Components for Desktop Grid

3 Heterogeneous Applications Each application is composed of one or more tasks. Different tasks may have different computational needs. There may be inter-task communication. Each task can be assigned to a computer with any architecture.

4 Grid'5000 Grid'5000 is a research effort developing a large scale infrastructure for Grid research. 10 laboratories are involved, in the objective of providing the community of Grid researchers a testbed allowing experiments in all the software layers between the network protocols up to the applications. The current plans are to assemble a physical platform featuring 8 clusters, connected by the Renater Education and Research Network at 1Gb/s (10 Gb/s is expected in future).

5 Objectives Execution efficiency of parallel and distributed Java applications on Grid. Transparent and optimized object placement with dynamic load balancing strategies (execution aspects). Transparent control of parallelism and easy collecting of results (programming aspects).

6 What we propose Single System Image (SSI) of clusters. Special mechanisms at the middleware level: –Dynamic and automatic adaptation to variations of computation methods and execution platforms. –Special mechanisms at the programming environment level, which facilitate expression of parallelism and distribution. Using Components in Grid environment

7 Issues Issues in building distributed applications –Collaboration between different applications –Cross programming languages and platforms –Controlling parallel applications transparently –Managing software complexity and evolution –Reuse and sharing of existing scientific code –Encapsulation and modular construction

8 DG-ADAJ Environment JVM Network Portability RMI Distant Access JavaParty Transparency Load Balancing System Tools for expression of parallelism ADAJADAJ Migration of active objects Application Builder Framework ServicesControl Components CCACCA Grid working node

9 CCADAJ Component Architectures Control component library –Provides parallel/distributed control –Connects components in a parallel way –Data exchange between components: -Demand driven & Data driven -Event notification Multiple level composition CCADAJ features –CCA Compliant (Common Component Architecture –Services -Instantiation, Connection -ConnectionEvent, ComponentEvent -Composition

10 CCA Features Components and Ports –Components interact through interfaces (ports) –Components can provide ports: -implementation of port interfaces -the service a component offers –Components can use ports -Call of the method in the port -Capability the component needs to use –Connecting components through ”provides-uses” ports

11 CCA: Interactions between components GoPort –Special port to “execute” a component –Implements go() method, which starts execution of the component –Framework search for go ports and uses them UsesPort (multiplierPort,AdderPort) Call getPort to obtain port by services –Call method on port Ex: x=multiplierPort.getProduct(y,z); Connection uses/provides ports –”No uses” / ”uses neither provides” /”provides” Ports connected by types –Port types must match –Port names are unique in a component Framework puts info about provider into user component’s service object MultiplierComponent AdderPortMultiplierPort AdderComponent AdderPort StarterComponent MultiplierPortGoPort connect StarterComponent MultiplierPort MultiplierComponent MultiplierPort connect MultiplierComponent AdderPort AdderComponent AdderPort

12 Composition (super-component ) Super component –Component -Incorporates ”provides”, ”uses”, and/or ”go” ports –Additional services (framework) -Instantiation of inner components -Mechanism for exposing inner component’s ports to the outside -Inner components activations -Inner components connection SuperComponent UsesPortProvidesPort GoPort InnerComponent InnerUses InnerProvides Some Additional Services InnerComp2 InUses2

13 The static optimization heuristics Before a Java program is executed on a GRID, an introductory optimization algorithm is performed, which will determine an initial distribution of program elements (objects) on Java Virtual Machines. The algorithm starts with creating a method dependence graph of a Java program. In a MDG, methods are shown as nodes, their mutual calls are shown as edges.

14 The optimization algorithm Execute programs for some representative data Carry out the measurements of the number of mutual method calls and the number of new threads spawnings Store measurement results in a trace file Create a method call graph with the use of method dependency graph and trace file Perform clustering and mapping phases: -in the clustering phase, the algorithm merges pairs of nodes from MCG if it leads to a reduction of the program execution time, -the mapping phase assigns clusters to the real physical JVMs with load balancing.

Method Call Graph (MCG)

16 Dynamic Objects Redistribution Workload is computed as a function of the intensity of method invocations Two-phase algorithm is performed concurrently with application execution: –to detect an application distribution imbalance –to correct the imbalance in a distributed manner Objects from overloaded machines are transferred to the underloaded ones

17 Observation mechanism of relations between objects outputGlobalInvocation (OGI) global object global object global object local object local object local object local object outputLocalInvocation (OLI) + + inputInvocation (II) Legend invocation sum JVM

18 Inter-Object Dynamic Relation Graph

19 Conclusions  Some optimization algorithms for distributed Java programs based on analysis of graph representations.  The optimization explores both static and dynamic dependencies between objects and their methods.  The proposed static analysis is used as a preliminary stage that is followed by a dynamic load balancing, which, in most cases, exploits a little of static information coming from Java source code.

20  A dynamic load balancing mechanism is used, supported by three kinds of information: information about the computer load and performance, information about dynamic relation between objects and information deduced from code analysis.  Compile-time optimizations do not introduce any penalty in execution time of the program, and thus, they can use more sophisticated heuristics, which give better results.

21 Future Works CCADAJ development –Add new functionality –Emphasis on parallel/distributed control components –Component deployment –Collaboration with other CCA-Compliant frameworks Real problem solving