The ProActive Parallel Suite. Fabrice Huet, INRIA-University of Nice Joint work with ActiveEon

Similar documents
ProActive Parallel Suite. Denis Caromel Arnaud Contes Univ. Nice ActiveEon

On Hierarchical, parallel and distributed components for Grid programming

Optimize your Infrastructure & Accelerate Applications

PARALLEL PROGRAM EXECUTION SUPPORT IN THE JGRID SYSTEM

Understanding StoRM: from introduction to internals

Adaptive Cluster Computing using JavaSpaces

Inside Broker How Broker Leverages the C++ Actor Framework (CAF)

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

Cloud Computing. Summary

Pimp My Data Grid. Brian Oliver Senior Principal Solutions Architect <Insert Picture Here>

Cycle Sharing Systems

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

MONitoring Agents using a Large Integrated Services Architecture. Iosif Legrand California Institute of Technology

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

Sky Computing on FutureGrid and Grid 5000 with Nimbus. Pierre Riteau Université de Rennes 1, IRISA INRIA Rennes Bretagne Atlantique Rennes, France

Outline. Definition of a Distributed System Goals of a Distributed System Types of Distributed Systems

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Office 365 and Azure Active Directory Identities In-depth

Grid Computing with Voyager

Control-M and Payment Card Industry Data Security Standard (PCI DSS)

30 Nov Dec Advanced School in High Performance and GRID Computing Concepts and Applications, ICTP, Trieste, Italy

Distributed Systems COMP 212. Lecture 18 Othon Michail

Easy Access to Grid Infrastructures

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

Salt Administration II Training Syllabus

Efficient, Flexible, and Typed Group Communications in Java

Grid Computing Middleware. Definitions & functions Middleware components Globus glite

Grid Architectural Models

Distributed System: Definition

A RESTful Approach to the Management of Cloud Infrastructure. Swit Phuvipadawat Murata Laboratory

Execo tutorial Grid 5000 school, Grenoble, January 2016

OpenNebula on VMware: Cloud Reference Architecture

Software Architecture Patterns

ProActive: Distributed and Mobile Objects for the GRID. Denis Caromel, et al.

Communication. Distributed Systems Santa Clara University 2016

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Layers of an information system. Design strategies.

Internet2 Meeting September 2005

Chapter 3. Design of Grid Scheduler. 3.1 Introduction

Exam Name: IBM Certified System Administrator - WebSphere Application Server Network Deployment V7.0

Using the vrealize Orchestrator Operations Client. vrealize Orchestrator 7.5

StreamSets Control Hub Installation Guide

arxiv: v1 [cs.dc] 7 Apr 2014

ACI Terminology. This chapter contains the following sections: ACI Terminology, on page 1. Cisco ACI Term. (Approximation)

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.

Fast Track to EJB 3.0 and the JPA Using JBoss

glite Grid Services Overview

Introduction to Cluster Computing

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~

Cloud Computing. Up until now

Characterising Resource Management Performance in Kubernetes. Appendices.

Google GCP-Solution Architects Exam

DreamFactory Security Guide

Non-uniform memory access machine or (NUMA) is a system where the memory access time to any region of memory is not the same for all processors.

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver

OpenIAM Identity and Access Manager Technical Architecture Overview

Grid Computing Fall 2005 Lecture 5: Grid Architecture and Globus. Gabrielle Allen

Unit 5: Distributed, Real-Time, and Multimedia Systems

Software Components and Distributed Systems

MOC 6232A: Implementing a Microsoft SQL Server 2008 Database

Distributed Systems. The main method of distributed object communication is with remote method invocation

Cluster Computing. Resource and Job Management for HPC 16/08/2010 SC-CAMP. ( SC-CAMP) Cluster Computing 16/08/ / 50

Open mustard seed. Patrick Deegan, Ph.D. ID3

Installing and Configuring VMware Identity Manager Connector (Windows) OCT 2018 VMware Identity Manager VMware Identity Manager 3.

COMP6511A: Large-Scale Distributed Systems. Windows Azure. Lin Gu. Hong Kong University of Science and Technology Spring, 2014

Scalable Streaming Analytics

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

vrealize Operations Manager Customization and Administration Guide vrealize Operations Manager 6.4

VMware AirWatch Content Gateway for Linux. VMware Workspace ONE UEM 1811 Unified Access Gateway

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS

Exploring Cloud Security, Operational Visibility & Elastic Datacenters. Kiran Mohandas Consulting Engineer

Grid Programming: Concepts and Challenges. Michael Rokitka CSE510B 10/2007

Large Software System Programming Project CPSC410 Operating Systems. Loman: Distributed Traveling Salesman Utilizing Simulated Annealing Schedules

Diplomado Certificación

VMware Skyline Collector Installation and Configuration Guide. VMware Skyline Collector 2.0

A domain model-centric approach to J2EE development. Keiron McCammon CTO Versant Corporation

7. System Design: Addressing Design Goals

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

Oracle Enterprise Manager. 1 Before You Install. System Monitoring Plug-in for Oracle Unified Directory User's Guide Release 1.0

OPENSTACK: THE OPEN CLOUD

Table of Contents DevOps Administrators

EnterpriseLink Benefits

Securely Access Services Over AWS PrivateLink. January 2019

Cisco ACI Terminology ACI Terminology 2

SURVEY PAPER ON CLOUD COMPUTING

Chapter 2 Distributed Information Systems Architecture

Planning and Administering SharePoint 2016

Service-Oriented Programming

vrealize Automation Management Pack 2.0 Guide

Grid Scheduling Architectures with Globus

Who is Docker and how he can help us? Heino Talvik

Distributed Systems Question Bank UNIT 1 Chapter 1 1. Define distributed systems. What are the significant issues of the distributed systems?

Cloud Computing. Up until now

Supporting Application- Tailored Grid File System Sessions with WSRF-Based Services

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

StratusLab Cloud Distribution Installation. Charles Loomis (CNRS/LAL) 3 July 2014

glideinwms architecture by Igor Sfiligoi, Jeff Dost (UCSD)

Chapter 1: Distributed Information Systems

g-eclipse A Framework for Accessing Grid Infrastructures Nicholas Loulloudes Trainer, University of Cyprus (loulloudes.n_at_cs.ucy.ac.

Work Queue + Python. A Framework For Scalable Scientific Ensemble Applications

Transcription:

1 The ProActive Parallel Suite Fabrice Huet, INRIA-University of Nice Joint work with ActiveEon

2 Outline Overview of ProActive Parallel Suite Active objects GCM Deployment ProActive Scheduler Resource Manager Multi-Active Objects

Parallel Suite 3

4 Programming ACTIVE OBJECTS

5 Active Objects Activity Remote Accessible Objects With ProActive, he gets Asynchronous Communications User Developer writes A A Object A new A(...)! newactive(a,..)! Code Mobility Security Fault Tolerance Distributed Garbage Collector Resource Virtualization

6 An active object Is coarse-grained structuring entities (subsystems) Has one thread and a request queue Owns passive objects (Java Objects, no thead) No shared passive objects, parameters are deep-copied Has asynchronous communication (local / remote) Is insensitive to application deployment JVM

7 Active object An active object is composed of several objects : The object being activated: Active Object (1) A set of standard Java objects A single thread (2) The queue of pending requests (3) Standard object Active object Proxy" Body" Objet" 3" 1" Object" 1" 2"

8 Active objects JVM A ag = newactive ( A, [ ], Node) V v1 = ag.foo (param); V v2 = ag.bar (param);... v1.bar(); //Wait-By-Necessity v2 v1 ag A JVM A Java Object Active Object Req. Queue Future Object Proxy Request Thread

9 Active objects JVM A ag = newactive ( A, [ ], Node) V v1 = ag.foo (param); V v2 = ag.bar (param);... v1.bar(); //Wait-By-Necessity v2 v1 ag A JVM A V V Java Object Active Object Req. Queue Future Object Proxy Request Thread

10 Wait by necessity A call on an active object consists in 2 steps A query : name of the method, parameters A Reply : the result of the method call A query returns a Future object which is a placeholder for the result The callee will update the Future when the result is available The caller can continue its execution event if the Future has not been updated foo () { AnyObject r = a.process(); //do other things... r.tostring(); } will block if not available AnyObject process() { //perform long //computation } return result;

Explicit Synchronizations A ag = newactive ( A, [ ], VirtualNode) V v = ag.foo(param);... v.bar(); //Wait-by-necessity 11 Explicit Synchronization: - PAFuture.isAwaited (v); // Test if available -.waitfor (v); // Wait until available Collections of Futures: -.waitforall (Collection); // Wait All -.waitforany (Collection); // Get First

Call between Objects: Parameter passing: Copy of Java Objects 12 a x b.foo(x) b Copy:" at " Serialization" (Deep) Copies evolve independently -- No consistency 12"

Call between Objects: Parameter Passing: Active Objects Object passed by Deep Copy - Active Object by Reference 13 a x c b.foo(x, c) b Copy: at seriali zation Reference Passing c

14 Wait-By-Necessity: First Class Futures Futures are Global Single-Assignment Variables a c V= b.bar () c.gee (V) b v v c

15 ProActive : Reuse and seamless Polymorphism between standard and active objects Type compatibility for classes (and not only interfaces) Needed and done for the future objects also Wait-by-necessity: inter-object synchronization Systematic, implicit and transparent futures Ease the programming of synchronizations, and the reuse of routines

16 Programming GROUPS

17 ProActive Groups Manipulate groups of Active Objects, in a simple and typed manner: Typed and polymorphic Groups of local and remote objects Dynamic generation of group of results Language centric, Dot notation Be able to express high-level collective communications (like in MPI): broadcast, scatter, gather, all to all A ag=(a)pagroup.newgroup(«a»,{{p1},...},{nodes,..}); V v = ag.foo(param); v.bar();

18 ProActive Groups Group Members Active Objects POJO Group Objects Hierarchical Groups Based on the ProActive communication mechanism Replication of N single communications Parallel calls within a group (latency hiding) Polymorphism Group typed with member s type

19 Creating AO and Groups JVM A ag = PAGroup.newGroup ( A, [ ], Node[]) V v = ag.foo(param);... v.bar(); //Wait-by-necessity A V Typed Group Java or Active Object

Typed Group as Result of Group Communication 20 Ranking Property: Dynamically built and updated B groupb = groupa.foo(); Ranking property: order of result group members = order of called group members Explicit Group Synchronization Primitive: Explicit wait ProActiveGroup.waitOne(groupB); ProActiveGroup.waitAll(groupB); Predicates nonearrived karrived allarrived,...

21 Programming GCM DEPLOYMENT

22 Abstract Deployment Model Problem Difficulties and lack of flexibility in deployment Avoid scripting for configuration, getting nodes, connecting A key principle: Virtual Node (VN) Abstract Away from source code: Machines names Creation/Connection Protocols Lookup and Registry Protocols Interface with various protocols and infrastructures: Cluster: LSF, PBS, SGE, OAR and PRUN(custom protocols) Intranet P2P, LAN: intranet protocols: rsh, rlogin, ssh Grid: Globus, Web services, ssh, gsissh

23 Resource Virtualization Deployment Descriptor Mapping Infrastructure Application VN Nodes Acquisition Connections Creation Runtime structured entities: 1 VN --> n Nodes in m JVMs on k Hosts

Deployment Descriptor- Examples 24 VirtualNode: mynode Mapping: mynodeà VM1, VM2 Infrastructure: VM1 à Local VM VM2 à SSH host1 then Local VM localhost App. VM 1 mynode host1 VM 2 VirtualNode: mynode Mapping: mynode à VM1 Infrastructure: VM1 à SSH frontend localhost App. frontend VM VM VM VM VM VM VM VM then pbsprocess pbsprocess à PBS 10 nodes Local VM mynode VM VM

25 Details Requires two XML files GCMA : Application needs (Name of executable, path, variables ) GCMD : Description of the infrastructure (Address of machines, protocols to use ) API to deploy from inside the application Non-blocking pad = PAGCMDeployment.loadApplicationDescriptor(new File(descriptor)); pad.startdeployment(); pad.waitready(); GCMVirtualNode vn = pad.getvirtualnodes().values().iterator().next(); PAActiveObject.newActive(., vn.getanode());

28 Status of GCM deployment Considered as a legacy tool Still working but not supported Some protocols certainly don t work anymore Fundamental issues Each application has to deploy its nodes (slow/costly) Cannot use a VN until all nodes are available Minor issues Difficult to add new protocols, especially complex one like EC2 Lack of flexibility of the XML files But still useful for quick n dirty runs!

29

30 Conclusion on ProActive Programming Simple and Uniform programming model Rich High Level API Write once, deploy everywhere Let the developer concentrate on his code, not on the code distribution Easy to install, test, validate on any network

Parallel Suite 31

32 Scheduling PROACTIVE SCHEDULER

33 Rational Allowing non grid-proficient user to use a Grid/Cluster/Cloud Target users who Want to start their code within their environment (their files, libraries ) Don t really care where their code is running Have different requirements (from I need a 3Ghz CPU to I need maple ) The ProActive scheduler is a simple scheduler Written in Java With/Without GUI Handles jobs submitted by users Run them on any resource available Designed to work in a trusted environment

34

35 In a nutshell Resources (Java Virtual Machines) register into the resource manager Only a JVM + jar file needed, no installation Jobs are made of tasks Can specify dependency Tasks are java classes or any native application The scheduling is very basic Find a free resources Find the next task to be executed Check whether the resource can run the task Run the task

36 Scheduling RESOURCE MANAGER

37 Overview The resource manager provides a persistent infrastructure of resources Basically JVMs remotely accessible through a ProActive node It is responsible for Acquiring (deploying) nodes from various sources Maintaining a list of free/busy/dead nodes Releasing nodes when they are not needed anymore Providing nodes to clients A client can request an arbitrary number of resources Asynchronous request 2 parts RM server RM client

38 Server - Client RM server Selects nodes according to user requests Restricts access to these nodes to other users Monitors nodes states and provides up-to-date information about resources utilization RM Client Request nodes from the server Can add/remove nodes to the RM Can trigger automatic deployment of new nodes Example : Scheduler Example of use A client contacts an existing RM server Requests (and obtain) n nodes Performs a computation Contacts the RM server to free the nodes when the computation is over

40 Node Source A Node Source is an object responsible for providing nodes to the RM Composed of an Infrastructure and a Policy Infrastructure Responsible for actually deploying the nodes Typically a frontend to an existing protocol/scheduler Policy Defines rules/authorization on the node source Who is the administrator, who are the users When are the nodes actually deployed

41 Examples of Infrastructures SSHInfrastructure Performs a SSH on a remote host and start a node BatchJobInfrastructure Abstract Infrastructure for deploying on batching systems Is specialized into LSFInfrastructure, PBSInfrastructure, GEInfrastructure EC2Infrastructure, WinHCPInfrastructure Amazon EC2, Windows HPC VirtualInfrastructure Xen, VMWare, VirtualBox

42 Example of Policies StaticPolicy Deploy all nodes immediately TimeSlotPolicy Deploy/release nodes at a specific time SchedulerLoadingPolicy Deploy nodes when the Scheduler is overloaded Listener based implementation EC2Policy Extends SchedulerLoadingPolicy Releases resources only in the last 10 minutes of the paid hour Useful for Cloud Bursting

43 Authentication Use of standard Java Authentication and Authorization Service User/groups are stored In a local (server side) file A LDAP Local password file Passwords in a plain text in a file of the RM server Should only used for testing/debugging LDAP Can connect to existing LDAP

44 Authorizations What can done with nodes Who can get/release nodes Who can create/remove nodes from a node source What can be done with node sources Who can add/remove node sources Limitations on nodes from a particular source to a set of users groups Authorizations are specified in a plain text file $RM_HOME/config/security.java.policy-server. Limitation on node source are specified at creation time Requires node source administration authorizations

Authorizations grant principal org.ow2.proactive.authentication.principals.usernameprincipal "john" { permission org.ow2.proactive.permissions.methodcallpermission "org.ow2.proactive.resourcemanager.core.rmcore.getatmostnodes"; permission org.ow2.proactive.permissions.methodcallpermission "org.ow2.proactive.resourcemanager.core.rmcore.releasenodes"; }; 45 grant principal org.ow2.proactive.authentication.principals.groupnameprincipal "admin" { permission org.ow2.proactive.permissions.allpermission; };

46 Requesting nodes After authenticating with the RM server A client can request a number of nodes Randomly With some topological properties With some arbitrary properties NodeSet nodeset = resourcemanager.getatmostnodes(nbofnodes, selectionscript); Call is asynchronous and returns a future Best effort only

47 Selection scripts How can we allow a user to select particular nodes Matchmaking? Condor-like mechanism Requires work from both administrators and users Sometimes users don t know what they need Selection script A script provided by the user to select nodes If the script is executed successfully, the node is selected Pros : Users do not need to learn a resource description language Very flexible, ultimately script == small scale version of the real job User can provides multiple scripts at once Cons : Time consuming Requires care (rogue scripts )

48 Selection scripts How to reduce the cost of selecting nodes? First: don t execute the scripts! If you have to, then choose a machine which is very likely to pass the test Static vs. Dynamic scripts Some characteristics are static (Total memory, CPU Frequency ) Some are dynamics (Current free memory, current free disk space, available license token ) Allow user to tag the script as static or dynamic Static scripts are only run once on each machine Scoring of machines Each couple node-script is given a selection probability For each success (resp. failure) the probability increases (resp. decreases) Test machines with highest probability first

49 Node Topology Select nodes based on topology SingleHostDescriptor : nodes on the same host BestProximityDescriptor : set of closest nodes (latency) ThresholdProximityDescriptor : set of nodes within a threshold proximity RM Server should be configured to discover node topology

50 Conclusion on resourcing The Resource Manager is very powerful Can deploy any application, not just ProActive ones It s almost a PaaS But lacks support for easily starting tasks Can theoretically fork JVMs, start virtual machines The user friendly classes are in the Scheduler However, it does not helps with firewalls, private networks Assume other solution solve the issue!

51

Parallel Suite 52

53 Programming MULTI-ACTIVE OBJECTS

54 Introduction Shortcomings of the current model: No data sharing slow local parallelism No re-entrant calls changes to program logic Goals: Transparent multi-threading Possibility to write re-entrant code Safe execution Ease of use Legacy support

55 Proposal When are two methods compatible? If either: a) They do not access the same resources b) The user protects the places of possible data races How to use this information? Inside active objects, compatible requests can be served in parallel How to express this? Annotate the code

56 Proposal Annotations Defining pair wise relation too much work Groups Collection of related methods Rules Compatibility relationship between groups Membership The group a method belongs to

57 Proposal Annotations @Group Group identifier Self compatible? Location: class header

58 Proposal Annotations @Compatible A list of mutually compatible groups Location: class header

59 Proposal Annotations @MemberOf Refers to a group identifier Location: before a method

60 Proposal Scheduling Default: FIFO-like Possible to use policies (API)

61 Proposal Scheduling Policy API Provides: Static compatibility information Scheduler state (request queue, active serves) State does not change while evaluating a policy What is a policy? A function Input: state and compatibility Output: a list of requests to be started

62 Scheduling with a policy Annotated Java Source Annotation Processor Queue Compatibility information Scheduler Policy Multi- Active Object

63 Proposal Code Implementation org.objectweb.proactive.annotation.multiactivity Annotations org.objectweb.proactive.multiactivity Annotation processor Interfaces and data types Multi-Active Service Policy Factory

64 Experiment Distributed Graph Algorithm Strongly connected component search Divide-and-conquer lots of parallelism

65 Experiment Sources of local parallelism Forward and backward marking is compatible Markings from different origins are compatible Sources of global parallelism Graph is distributed among workers Markings propagate into neighbors

66 Experiment Had to change the logic of the algorithm? No Results Easy distributed execution Grid5000 Quite large graph sizes Acceptable speedup

67 Experiment Results Local parallelism Performance

68 Future Work A parallelism-maximizing policy Not considers only the top of the queue for parallel execution Ensures the same properties as we have now Other real-life experiments on large clusters Still an open discussion