Scheduling and Load Balancing in the Parallel ROOT Facility (PROOF)



Similar documents
Understanding the Benefits of IBM SPSS Statistics Server

Online Performance Monitoring of the Third ALICE Data Challenge (ADC III)

Introduction 1 Performance on Hosted Server 1. Benchmarks 2. System Requirements 7 Load Balancing 7

DSS. Diskpool and cloud storage benchmarks used in IT-DSS. Data & Storage Services. Geoffray ADDE

Dynamic Adaptive Feedback of Load Balancing Strategy

Cloud Storage. Parallels. Performance Benchmark Results. White Paper.

Removing Performance Bottlenecks in Databases with Red Hat Enterprise Linux and Violin Memory Flash Storage Arrays. Red Hat Performance Engineering

Objectivity Data Migration

An Oracle White Paper June High Performance Connectors for Load and Access of Data from Hadoop to Oracle Database

How To Test For Performance And Scalability On A Server With A Multi-Core Computer (For A Large Server)

Application of Predictive Analytics for Better Alignment of Business and IT

Tableau Server 7.0 scalability

DELL. Virtual Desktop Infrastructure Study END-TO-END COMPUTING. Dell Enterprise Solutions Engineering

XTM Web 2.0 Enterprise Architecture Hardware Implementation Guidelines. A.Zydroń 18 April Page 1 of 12

POSIX and Object Distributed Storage Systems

The PHI solution. Fujitsu Industry Ready Intel XEON-PHI based solution. SC Denver

PARALLELS CLOUD STORAGE

Software Scalability Issues in Large Clusters

Very Large Enterprise Network, Deployment, Users

Benchmarking Hadoop & HBase on Violin

THE EXPAND PARALLEL FILE SYSTEM A FILE SYSTEM FOR CLUSTER AND GRID COMPUTING. José Daniel García Sánchez ARCOS Group University Carlos III of Madrid

A Performance Analysis of Distributed Indexing using Terrier

A Load Balancing Algorithm based on the Variation Trend of Entropy in Homogeneous Cluster

Accelerating Enterprise Applications and Reducing TCO with SanDisk ZetaScale Software

Dynamic Extension of a Virtualized Cluster by using Cloud Resources CHEP 2012

U-LITE Network Infrastructure

2009 Oracle Corporation 1

PES. Batch virtualization and Cloud computing. Part 1: Batch virtualization. Batch virtualization and Cloud computing

MAGENTO HOSTING Progressive Server Performance Improvements

Unprecedented Performance and Scalability Demonstrated For Meter Data Management:

DIABLO TECHNOLOGIES MEMORY CHANNEL STORAGE AND VMWARE VIRTUAL SAN : VDI ACCELERATION

Maximizing Hadoop Performance with Hardware Compression

Tools and strategies to monitor the ATLAS online computing farm

SAS 9.4 Intelligence Platform

Andrew Hanushevsky SLAC National Accelerator Laboratory Stanford University 19-August-2009 Atlas Tier 2/3 Meeting.

Cluster Computing at HRI

Improving Grid Processing Efficiency through Compute-Data Confluence

HPC and Big Data. EPCC The University of Edinburgh. Adrian Jackson Technical Architect

Scaling up to Production

Shared Parallel File System

Performance test report

MOSIX: High performance Linux farm

VirtualCenter Database Performance for Microsoft SQL Server 2005 VirtualCenter 2.5

IMPLEMENTING GREEN IT

Scalable Data Analysis in R. Lee E. Edlefsen Chief Scientist UserR! 2011

Very Large Enterprise Network Deployment, 25,000+ Users

Case Study I: A Database Service

Figure 1. The cloud scales: Amazon EC2 growth [2].

An Oracle White Paper July Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide

NoSQL Performance Test In-Memory Performance Comparison of SequoiaDB, Cassandra, and MongoDB

LCMON Network Traffic Analysis

Energy Constrained Resource Scheduling for Cloud Environment

Integration of Virtualized Workernodes in Batch Queueing Systems The ViBatch Concept

HP reference configuration for entry-level SAS Grid Manager solutions

High Availability of the Polarion Server

Use of Hadoop File System for Nuclear Physics Analyses in STAR

Dell Reference Configuration for Hortonworks Data Platform

Oracle Database Scalability in VMware ESX VMware ESX 3.5

High Performance Cluster Support for NLB on Window

Hadoop Scheduler w i t h Deadline Constraint

System Requirements. SuccessMaker 5

Active/Active DB2 Clusters for HA and Scalability

Dell Virtualization Solution for Microsoft SQL Server 2012 using PowerEdge R820

Benchmarking Cassandra on Violin

Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper October 2010

System requirements for A+

Get More Scalability and Flexibility for Big Data

Multilevel Load Balancing in NUMA Computers

Efficient Load Balancing using VM Migration by QEMU-KVM

HTCondor at the RAL Tier-1

Optimizing the Performance of Your Longview Application

Axceleon s CloudFuzion Turbocharges 3D Rendering On Amazon s EC2

Interoperating Cloud-based Virtual Farms

- An Essential Building Block for Stable and Reliable Compute Clusters

Measurement of BeStMan Scalability

DELL s Oracle Database Advisor

SUN ORACLE EXADATA STORAGE SERVER

Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage

This is an author-deposited version published in : Eprints ID : 12902

Real-Time Scheduling 1 / 39

Dragon Medical Enterprise Network Edition Technical Note: Requirements for DMENE Networks with virtual servers

Using In-Memory Computing to Simplify Big Data Analytics

Brocade and EMC Solution for Microsoft Hyper-V and SharePoint Clusters

OIS. Update on Windows 7 at CERN & Remote Desktop Gateway. Operating Systems & Information Services CERN IT-OIS

How To Build A Supermicro Computer With A 32 Core Power Core (Powerpc) And A 32-Core (Powerpc) (Powerpowerpter) (I386) (Amd) (Microcore) (Supermicro) (

Investigation of storage options for scientific computing on Grid and Cloud facilities

Initial Hardware Estimation Guidelines. AgilePoint BPMS v5.0 SP1

Vectorwise 3.0 Fast Answers from Hadoop. Technical white paper

Write a technical report Present your results Write a workshop/conference paper (optional) Could be a real system, simulation and/or theoretical

Virtuoso and Database Scalability

System Requirements Table of contents

Best Practices for Optimizing Your Linux VPS and Cloud Server Infrastructure

Keywords: Dynamic Load Balancing, Process Migration, Load Indices, Threshold Level, Response Time, Process Age.

Content Repository Benchmark Loading 100 million documents

CloudSim: A Toolkit for Modeling and Simulation of Cloud Computing Environments and Evaluation of Resource Provisioning Algorithms

Dynamic Resource allocation in Cloud

bla bla OPEN-XCHANGE Open-Xchange Hardware Needs

Accelerating Business Intelligence with Large-Scale System Memory

GRIDCENTRIC VMS TECHNOLOGY VDI PERFORMANCE STUDY

Deploying a distributed data storage system on the UK National Grid Service using federated SRB

Transcription:

Scheduling and Load Balancing in the Parallel ROOT Facility (PROOF) Gerardo Ganis CERN E-mail: Gerardo.Ganis@cern.ch CERN Institute of Informatics, University of Warsaw E-mail: Jan.Iwaszkiewicz@cern.ch Fons Rademakers CERN E-mail: Fons.Rademakers@cern.ch The Parallel ROOT Facility (PROOF) enables interactive analysis of distributed data sets in a transparent way. PROOF, which represents an alternative to batch-oriented distributed computing systems, is being successfully used by the PHOBOS experiment since a few years. In view of the start-up of the LHC, PROOF underwent several developments and improvements. The main challenge was to adapt it to the large multi-user analysis environments. The ALICE collaboration has pioneered stress-testing of the system in the LHC environment, using a dedicated testbed, located in the CERN Computing Centre. Among the developments for the LHC, load-balancing and resource scheduling play a central role. To optimize the work distribution, a new load-balancing strategy has been developed, with an adaptive algorithm to predict and circumvent potential data access bottlenecks. Assignment of resources to users is addressed at two levels: centrally, by providing a scheduler with an abstract interface and locally, by implementing a mechanism to enforce resource quotas at worker level. XI International Workshop on Advanced Computing and Analysis Techniques in Physics Research April 23-27 2007 Amsterdam, the Netherlands Speaker. c Copyright owned by the author(s) under the terms of the Creative Commons Attribution-NonCommercial-ShareAlike Licence. http://pos.sissa.it/

1. Introduction The Parallel ROOT Facility (PROOF) [1] is an extension of the ROOT analysis framework [2] aimed at interactive ROOT-like analysis on a distributed system. PROOF represents an alternative to batch systems; by dynamically optimizing the use of resources it addresses in particular the case of short-and medium-duration jobs, for which the overhead from job preparation, submission and result merging may be substantial in batch systems. Although PROOF provides a framework to automatically parallelize any task consisting of a sequence of independent cycles (like Monte- Carlo simulations), it is being mostly used for the parallel analysis of large collection of ROOT files containing High-Energy Physics data stored in ROOT Tree format [2]. The system has already been described in detail [1]. For the purpose of this paper we just recall that PROOF realizes a multi-tier architecture, where the client is a ROOT session. It sends a job description to the (possibly composite) master which automatically parallelizes the job and distributes it among the workers (see fig. 1). The PROOF system works usually in connection with an XROOTD data serving system [3] running on the farm. Figure 1: The PROOF multi-tier architecture. A ROOT session connects to the PROOF Master, which distributes the jobs to the workers. The workers may be connected to a Mass Storage System (MSS). The PROOF system was originally developed as a joint effort between CERN and MIT and it is being used in production by the PHOBOS experiment [4]. This experience has shown that the system is suited for large clusters [5]. However the number of users in PHOBOS is small as compared to the groups of users in the LHC experiments [6]. One of the main challenges in preparing PROOF for the LHC analysis is to have the system correctly handling the available resources in 2

order to provide the best possible service to a large number of users performing different types of analysis. The resource management in PROOF is split in two parts: resource scheduling, taking care of assigning the right share of resources to each job; load-balancing, optimizing the work distribution within jobs. In the next section we review load-balancing and its engine (the packetizer), focusing on the latest improvements. In section 3 we present the main ideas and the current status of resource scheduling in the system. Finally, the paper is summarized in section 4. 2. Load-balancing using a Pull Architecture: the packetizer The packetizer is responsible for load balancing a job between the workers assigned to it. It decides where each piece of work - called packet - should be processed. An instance of the packetizer is created for each job separately on the master node. In case of a multi-master configuration, there is one packetizer created for each of the sub-masters. Therefore, while considering the packetizer, we can focus on the case of a single master without loosing generality. The performance of the workers can vary significantly as well as the transfer rates to access different files. In order to dynamically balance the work distribution, the packetizer uses a pull architecture (see fig. 2): when workers are ready for further processing they ask the packetizer for next packets. Figure 2: Pull architecture. The workers contact the packetizer, which is located on the master node. The packetizer distributes the work by assigning packets to be processed 3

As PROOF is designed for interactive work, the job processing time is a critical parameter of the system. The packetizer has to distribute work in such a way that the job is finished as soon as possible, given the available resources. The optimal packetizer strategy is not unique but depends on the type of job so the system must be able to load different packetizers. In the rest of this section we focus on the available packetizers for data-driven analysis. Data sets for the data-driven jobs are sets of files with objects which are processed independently (e.g. ROOT Trees). One of the main optimization criteria in this case is the data locality. In general, for a given job, a part of the data set to be processed is located on the worker nodes assigned to the job and the rest of data - on other non-worker nodes. In particular, either one of the parts can be empty. 2.1 The packetizer algorithms The general algorithm of the data-driven packetizers consist of 3 parts. First the locations of all the files are checked. Then the files are validated. The validation is done in parallel by the workers and includes checking the number of entries in each file. During the processing phase the packetizer keeps creating packets and assigning them to the workers until the entire data set is processed. Below we describe strategies of assigning packets in two different packetizers. Because having a large number of workers processing data from one physical hard drive may be counterproductive, there is an upper limit defined on the maximal number of workers reading from one server. It can be changed in order to adapt to the performance of the available hardware. 2.1.1 The basic packetizer The strategy of the basic packetizer is determined by the fact that it is more efficient to analyze files at their location than to do it remotely. According to this strategy, packets are assigned in such a way that each worker first analyzes its local part of the data set (if it has one) and then processes remote files. The initialization includes calculating the base packet size, which is then equal for all the packets except for the last packets from each file. The strategy, detailed in appendix A.1, works very well if the file distribution is close to uniform. 2.1.2 The new adaptive packetizer The main change with respect to the basic packetizer is the dynamic prediction of how much time each worker needs to process its local part of the data set. The predictions are used to balance the processing from the beginning of the job. Workers, which are expected to process their local data faster than the average, can be asked to process data from the other nodes also before their local processing is finished. The idea is based on the assumption that some of the nodes can become bottlenecks at the end of a job. The adaptive packetizer tries to identify the nodes and make sure that the data located there is processed at maximal possible speed in order to minimize a potential bottleneck effect. The packet size is becoming smaller towards the end of processing in order to avoid delay due to the long last packets. The algorithm is described in detail in appendix A.2. 2.2 Measuring the performance of the packetizers To compare the performance of the two packetizer strategies outlined above, a cluster consisting of 34 dual processor machines (Intel Xeon 2.8 GHz) with 4 GB of RAM has been used. Each 4

of the machines in the test has a single 250 GB hard drive connected by a SATA controller. 1 The tests were done using simulated Event Summary Data (ESD) of the ALICE experiment [7]. All the analyzed files were located on the available nodes. The tool used to measure the performance of PROOF is an internal benchmark package [5]. The monitoring part of the package allows saving information about each packet and analyzing it after the job is processed. The job processing time, which is minimized by the packetizer, depends on: i) the fraction of workers actively working throughout the job; ii) the average processing rate of the active workers, expressed in the number of events processed per second. The benchmark package has been used to study the evolution in time of: i) the file access during the job, showing the number of workers having an opened file (active workers); ii) the processing rate per packet, classified according to one of three categories: data on a local file (local packets); data in a file on different active worker (other-worker packets); data in a file on a non-worker file node or on another remote server (non-worker packets). 2.3 Results Performance measurement results for the basic packetizer are good in terms of efficiency and scalability for uniformly distributed data sets [5]. However, randomly distributed data sets were not processed so efficiently: when the data set distribution on the cluster was non-uniform, long tails appeared in the plots representing the instantaneous processing rate as well as the activity of the workers. To see this in more detail we show an example of such a job processed with 16 workers (almost half of the cluster). When load-balanced by the basic packetizer, this job had the last part of processing (after about 900 s) done by only four workers (see Fig. 3a). This was due to the limitation on the number of concurrent workers described in section 2.1: after about 900 s all the remaining data was located on only one file server. In Fig. 3b, we show the processing rates of all the packets of the job. One can notice that in the tail there are mostly remote packets. Also the processing rate is lower, which is due to the fact that four workers access files from the same physical hard drive. In Fig. 4 we show the results obtained by processing the same job with the adaptive packetizer. In this case the processing of remote data starts earlier and it is done throughout the query; as a consequence, the long tails have disappeared. In Fig. 4a, one can notice that all the workers are active until the end of the job which means that the resources are not idle. For this job the total processing time has been reduced by about 30% when moving from the basic to the adaptive packetizer. The prediction made by the adaptive packetizer allows very effective adjustment to the conditions in which the job is processed. Minimizing the long tail effects results in shorter processing time and better resource utilization. 1 This cluster is intended to gradually become the planned ALICE Central Analysis Facility [7], consisting of about 500 CPUs and 200 TB of disk space. 5

Number of Active Workers Processing rate for a packet [evts/s] Basic Packetizer 20 18 a 16 14 12 10 8 6 4 2 0 0 200 400 600 800 1000 1200 1400 Time [s] 120 b 100 80 60 40 20 local packets non-worker packets 0 0 200 400 600 800 1000 1200 1400 Time [s] Figure 3: Time evolution analysis of an I/O intensive job processing an unevenly distributed data set using the basic packetizer; a) number of active workers; b) per-packet processing rates for data read from the local file system (local packets) and for data read from a non-worker node (non-worker packets). 3. Resource Scheduling Resource scheduling is the task of assigning resources to the jobs in order to optimize the overall response of the cluster. The best performance is achieved by assigning the resources with the right balance between the two major factors: location of the data sets and the load of the machines. Resource scheduling allows also to enforce different usage policies, defining priorities or quotas of different users and groups. PROOF implements resource scheduling at two levels. The first mechanism acts on every worker node. It controls the fraction of resources, used by each job, according to the user priority. The second level is a central scheduler which determines the user priorities and assigns workers to jobs. 6

Number of Active Workers Processing rate for a packet [evts/s] 20 18 16 14 12 10 8 6 4 2 120 100 Adaptive Packetizer 0 0 200 400 600 800 1000 1200 1400 Time [s] 80 60 40 20 local packets other-worker packets non-worker packets a b 0 0 200 400 600 800 1000 1200 1400 Time [s] Figure 4: Time evolution analysis of an I/O intensive job processing an unevenly distributed data set using the basic packetizer; a) number of active workers; b) per-packet processing rates for data read from the local file system (local packets), for data read from another worker assigned to the job (other-worker packets), and for data read from a non-worker node (non-worker packets). The mechanisms described in this section are still under development and are being tested by the ALICE experiment using the experimental testbed described in Sec. 2.2. 3.1 Worker level resource control Each worker node gets the group priorities from a file or from the master node. The active sessions are ranged according to their normalized priority P j defined as P j = P j 1 1 Ngroup active active i P i Nuser; active j 7

with j the index of the group to which the session belongs, P j the group priority, Ngroup active the number of groups with active - i.e. processing - sessions, and Nuser; active j the number of active users in j-th group 2. The list of P j values is further normalized in the range [1,40], in agreement with the values available in UNIX systems; each session is then re-niced using a nice value defined as 20 P [1,40] j First tests done by ALICE have shown that this method works well (see Sec. 3.3); however, if the number of required priority levels is larger than 40, which may happen in the case of too many users in a low priority group, the groups with lower priority tend to get more resources than those targeted. To solve this problem, a mechanism of local round-robin job processing for users in the low priority groups is being prepared. 3.2 The central scheduler The role of the central scheduler at job start-up is sketched in Fig. 5. Figure 5: Starting a job with the central scheduler The scheduler takes decisions according to the current state of the cluster and the usage history as well as the user and group priorities defined by the scheduling policy. Depending on the amount of active users, the scheduler assigns an appropriate number of worker nodes to each job in order to maintain the efficient processing and avoid overloading or congestion of any of the nodes. For the case of fair-share or quota-based policies, the central scheduler may the place where the effective group and user priorities based on the cluster usage history are calculated. The PROOF system interacts with the scheduler through an abstract interface; this allows different kinds of schedulers to be implemented, providing the required flexibility in the choice of the scheduler. To allow fine-grained access to the information on usage of users and groups, PROOF can be configured to post the exact information about the resource usage of a given job through an 2 An option to take into account the number of sessions of a given user is foreseen for the near future 8

abstract monitoring interface; concrete implementations for MySQL [8] and MonALISA [9] are already available. The PROOF basic scheduler implementation provides the possibility to assign the worker nodes based on the load and the group priority according to the simple formula: N workers = N f ree CPU f P j + N min where N f ree CPU is the number of free CPUs on the cluster nodes, f and N min are, respectively, the fraction of free units and the minimal number of units to assign to a job, and P j is the normalized priority previously defined. 3.3 Scheduling tests in ALICE: first results The mechanism for worker level resource control described above has been tested in the AL- ICE setup described in Sec. 2.2. For this purpose the job resource information was posted to the ALICE MonALISA repository and a dedicated daemon, provided by ALICE, was used to calculate the effective group priorities based on the required policy. The resulting priorities were then feed in the basic central scheduler and communicated to the active sessions. Figure 6: Results of CPU quota control test run by the ALICE experiment over one day. For each of the four groups the target (right) and achieved (left) CPU quotas are shown. The results of a CPU quota control test run by the ALICE experiment over one day is shown in fig. 6. For this test, four groups were defined and assigned quotas ranging from 10 to 40%. Users in the groups were continously running typical ALICE analysis jobs. As it can be seen in the plot, the target quotas are reached within few percentage units. 9

4. Summary In this paper we discussed the techniques to manage resources which are being made available in PROOF in view of the LHC analysis. Two different strategies to load-balance the work within a job have been described, including the recent improvements addressing the case of non-uniformly distributed data sets. Resource assignment is controlled by a central scheduler, which is also determining the priorities of a given group or user, based on the policy defined by the experiment and the usage history; the priorities are enforced by a dedicated mechanism directly on the worker nodes. These techniques for resource management are being tested by the ALICE collaboration using a dedicated cluster located at CERN. The first results are encouraging. References [1] M. Ballintijn et al., Parallel Interactive Data Analysis with PROOF, in proceedings of ACAT 05, DESY, Zeuthen, Germany, Nucl.Instrum.Meth. A559 13-16 (2006). [2] R. Brun and F. Rademakers, ROOT - An Object Oriented Data Analysis Framework, in proceedings of AIHENP 96 Workshop, Lausanne, Nucl.Instrum.Meth. A389 81-86 (1997). [3] A. Dorigo, P. Elmer, F. Furano, A. Hanushevsky XROOTD-A Highly scalable architecture for data access WSEAS Transactions on Computers, 2005. [4] M. Ballintijn, presentation at the CERN Application Area meeting, May 24, 2006; slides from http://indico.cern.ch/conferencedisplay.py?confid=a062074. [5] M. Ballintijn, et al., Super scaling PROOF to very large clusters, in proceedings of CHEP04, Interlaken, Switzerland. [6] C. Eck, et al., LHC computing Grid : Technical Design Report, CERN. Geneva. LHC Experiments Committee. [7] F. Carminati, C.W. Fabjan, L. Riccati, H. de Groot, ALICE computing : Technical Design Report, ALICE-TDR-12, CERN-LHCC-2005-018. [8] http://www.mysql.com [9] http://monalisa.cacr.caltech.edu/monalisa.htm 10

Appendix A. Details of the packetizer algorithms In this appendix we give more details on the algorithms of data-driven packetizers. The packetizers for data analysis use the same framework. The main difference is in the strategy of the GetNextPacket function. This function is called in response to the request from a worker for further processing. It assigns a part of file to the worker. The general algorithm for a data-driven packetizer consists of the following three steps: 1. Check the exact locations of all the files. 2. If the data set is not validated, do validate it by opening all the files and checking the number of entries to be processed in each file (this step is done by workers in parallel). 3. Keep creating packets and assigning them to the workers until the entire data set is processed. The GetNextPacket function is assigning the packets. A.1 Basic packetizer A flow diagram of the GetNextPacket function in the basic packetizer is presented in fig. 7. A.2 Adaptive packetizer Fig. 8 represents the flow diagram of the GetNextPacket function in the adaptive packetizer. The decision whether to assign a local or remote file is taken based on dynamic prediction of the time that each worker needs to process its local part of the data set. 11

Figure 7: Flow diagram describing a simplified version of the GetNextPacket function algorithm in the basic packetizer. 12

Figure 8: Flow diagram describing a simplified version of the GetNextPacket function algorithm in the adaptive packetizer. 13