Logic Networks on the Grid: Handling 15 Million Jobs

Similar documents
glite Grid Services Overview

The Wuppertal Tier-2 Center and recent software developments on Job Monitoring for ATLAS

BOSCO Architecture. Derek Weitzel University of Nebraska Lincoln

The glite middleware. Ariel Garcia KIT

Cloud Computing. Up until now

WMS overview and Proposal for Job Status

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

Database Server. 2. Allow client request to the database server (using SQL requests) over the network.

I Tier-3 di CMS-Italia: stato e prospettive. Hassen Riahi Claudio Grandi Workshop CCR GRID 2011

Real World Web Scalability. Ask Bjørn Hansen Develooper LLC

BOSCO Architecture. Derek Weitzel University of Nebraska Lincoln

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

Edinburgh (ECDF) Update

Beob Kyun KIM, Christophe BONNAUD {kyun, NSDC / KISTI

VMs at a Tier-1 site. EGEE 09, Sander Klous, Nikhef

BiG Grid HPC Cloud Beta

Architecture Proposal

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

Overview of HEP software & LCG from the openlab perspective

The LGI Pilot job portal. EGI Technical Forum 20 September 2011 Jan Just Keijser Willem van Engen Mark Somers

NUSGRID a computational grid at NUS

Distributed Systems. 29. Distributed Caching Paul Krzyzanowski. Rutgers University. Fall 2014

Real Life Web Development. Joseph Paul Cohen

Textual Description of webbioc

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

Monitoring System for the GRID Monte Carlo Mass Production in the H1 Experiment at DESY

Jquery Ajax Json Php Mysql Data Entry Example


Parallel Job Support in the Spanish NGI! Enol Fernández del Cas/llo Ins/tuto de Física de Cantabria (IFCA) Spain

X Grid Engine. Where X stands for Oracle Univa Open Son of more to come...?!?

Tuning Intelligent Data Lake Performance

Monitoring the Usage of the ZEUS Analysis Grid

glideinwms Training Glidein Internals How they work and why by Igor Sfiligoi, Jeff Dost (UCSD) glideinwms Training Glidein internals 1

Multiprocessor Scheduling. Multiprocessor Scheduling

Multiprocessor Scheduling

Scaling Slack. Bing Wei

Monitoring the ALICE Grid with MonALISA

WLCG Lightweight Sites

Chapter 18: Database System Architectures.! Centralized Systems! Client--Server Systems! Parallel Systems! Distributed Systems!

Chapter 1: Distributed Information Systems

Lessons Learned in the NorduGrid Federation

How to pimp high volume PHP websites. 27. September 2008, PHP conference Barcelona. By Jens Bierkandt

and the GridKa mass storage system Jos van Wezel / GridKa

Grid Scheduling Architectures with Globus

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Easy Access to Grid Infrastructures

Bookkeeping and submission tools prototype. L. Tomassetti on behalf of distributed computing group

Vulkan: Scaling to Multiple Threads. Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics

High Throughput WAN Data Transfer with Hadoop-based Storage

Geant4 on Azure using Docker containers

CERN: LSF and HTCondor Batch Services

Setup Desktop Grids and Bridges. Tutorial. Robert Lovas, MTA SZTAKI

VL-e PoC: What it is and what it isn t

Microsoft Access Vba Copy Table Structure Only

Creating an Online Catalogue Search for CD Collection with AJAX, XML, and PHP Using a Relational Database Server on WAMP/LAMP Server

PARALLEL PROGRAM EXECUTION SUPPORT IN THE JGRID SYSTEM

Lesson 4 Transcript: DB2 Architecture

Monitoring Grid Virtual Machine deployments

Schema Validate With Oracle 10g Database Status

Name Department/Research Area Have you used the Linux command line?

Part2: Let s pick one cloud IaaS middleware: OpenStack. Sergio Maffioletti

Voldemort. Smruti R. Sarangi. Department of Computer Science Indian Institute of Technology New Delhi, India. Overview Design Evaluation

NAREGI PSE with ACS. S.Kawata 1, H.Usami 2, M.Yamada 3, Y.Miyahara 3, Y.Hayase 4, S.Hwang 2, K.Miura 2. Utsunomiya University 2

Lab 4 : Caching Locks. Introduction. Getting Started

Manual Trigger Sql Server 2008 Examples Insert Update

Outline. Distributed Computing Systems. The Rise of Distributed Systems. Depiction of a Distributed System 4/15/2014

Troubleshooting Guide and FAQs Community release

Informatica Developer Tips for Troubleshooting Common Issues PowerCenter 8 Standard Edition. Eugene Gonzalez Support Enablement Manager, Informatica

The INFN Tier1. 1. INFN-CNAF, Italy

Computer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software.

Distributed production managers meeting. Armando Fella on behalf of Italian distributed computing group

Developing Solutions for Google Cloud Platform (CPD200) Course Agenda

Monitoring and Analytics With HTCondor Data

Integration and State Summarization. Prof. Holly Yanco Munjal Desai Dan Hestand

Building loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg

Instruction Decode In Oracle Sql Loader Control File Example Csv

Chapter 20: Database System Architectures

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Troubleshooting Grid authentication from the client side

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4

Programming Assignment Multi-Threading and Debugging 2

ELEC 377 Operating Systems. Week 9 Class 3

The EU DataGrid Testbed

Mining for insight. Osma Ahvenlampi, CTO, Sulake Implementing business intelligence for Habbo

Manual Trigger Sql Server 2008 Update Inserted Rows

Pegasus Workflow Management System. Gideon Juve. USC Informa3on Sciences Ins3tute

Architectural Design. Architectural Design. Software Architecture. Architectural Models

Cloud Computing. Summary

Grid Experiment and Job Management

Parallel Computing Ideas

Utilizing Databases in Grid Engine 6.0

Lecture 11 Hadoop & Spark

By Ludovic Duvaux (27 November 2013)

3C05 - Advanced Software Engineering Thursday, April 29, 2004

The University of Oxford campus grid, expansion and integrating new partners. Dr. David Wallom Technical Manager

Digital Humanities. Tutorial Regular Expressions. March 10, 2014

LCG-2 and glite Architecture and components

THE CPU SPENDS ALMOST ALL of its time fetching instructions from memory

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

The Evolution of a Data Project

Transcription:

Logic Networks on the Grid: Handling 15 Million Jobs Jan Bot, Delft Bioinformatics Lab 07-06-10 Delft University of Technology Challenge the future

Overview Explanation of the application Challenges for the grid Custom grid solution design & implementation More challenges (aka problems) Adding a desktop cluster Errors and statistics Discussion 2

But first... Does anybody not know what these are: Life Science Grid Grid middleware ToPoS ORM (Object Relational Mapper) 3

The application: overview Input data: ~100 mouse tumors 4

Grid pipeline Prepare inputs: prepare data for future grid runs Multiple parameter settings are tested, output of these tests contains the 'real' data Choose best parameter settings, it should still be feasible to do at least 100 permutations Do permutations, 10 permutations per run 5

Run properties Number of jobs per run is fairly large: 24 * 6228 = 149472 Run time is, due to the optimization algorithm, unpredictable: jobs can take anywhere between 2 seconds and 14 hours Outputs are small, both for the real runs and for the permutations 6

Middleware problems Scheduling: This amount of jobs cannot be scheduled using the normal (glite) middleware Overhead of scheduling could out-weight the run time Bookkeeping No method of tracking this amount of jobs Output handling: No grid resource can store large amounts of small files (dcache is not an option) Other solutions (such as ToPoS) are slow when retrieving output 7

Scheduling jobs with ToPoS ToPoS takes care of the first two categories of problems but presents some new challenges: ToPoS does not scale beyond 10.000 jobs per pool No client software which facilitates spreading the tokens over multiple pools 8

Python ToPoS clients To deal with the limitations of ToPoS two clients were implemented: Grid client: uses the most basic Python httplib module can fetch, lock and delete tokens has a generator to transparently handle tokens in multiple pools Local client: uses the more advanced UrlLib2 module can create and delete pools, spread tokens over multiple pools, delete all locks in a pool, gather ToPoS statistics, etc. 9

Dealing with the outputs Outputs: are small and well defined why not just flush them to a database? Proposed solution: Python as language SQLAlchemy as ORM XML-RPC as communication channel MySQL (for now) as database 10

Client design send results Bash script start python Python script Matlab (MCR) call Matlab Set environment variables Fetch input data Make binaries executable Load modules Start python script Loop: Fetch token from ToPoS Call Matlab (MCR) Parse output & send to result server Perform algorithm 11

Application design ORM DB App XML-RPC Clients Design overview Listen loop: listen for incoming calls XML-RPC server Client Fetch token Do work Upload output main DB DB code Flush loop: flush once every minute Thread model 12

Implementation & the weakest link Implemented in Python Hosted on a P4 in a broom closet in our department On power failure: everything collapses (but that's not very likely, right?) 13

Getting ready to run: data replication Getting the data from one (remote) site is expensive Use data replication across all sites to minimize external traffic and divide the load over multiple SRMs Data replication can be done easily with the V-Browser Manual approach: Register file: lcg-cr -l lfn:///grid/lsgrid/jridder/mgtest/mg_perm2_5_datapack.zip MG_Perm2_5_Datapack.zip Replicate file (in this example to nikhef): lcg-rep --vo lsgrid -d tbn18.nikhef.nl srm://gb-setud.ewi.tudelft.nl/dpm/ewi.tudelft.nl/home/lsgrid/generated/2010-05-26/file006bff9b-49ef-46bd80cd-5b8110171557 On a WN, retrieve a local copy: DATAPACK=lfn:/grid/lsgrid/jridder/MGtest/MG_Perm2_5_Datapack.zip echo $VO_LSGRID_DEFAULT_SE TDATA=`lcg-lr --vo lsgrid $DATAPACK grep $VO_LSGRID_DEFAULT_SE` lcg-cp --verbose $TDATA $DATAPACK 14

Adding a desktop cluster Practical (student) pcs are not doing anything at night Use these computers to increase computation power Compute at night & in weekends Our scenario (using ToPoS and an external output server) is ideal for testing such a cluster Use condor to manage the work 15

Desktop cluster locations Two locations Drebbelweg: 250 practical pcs Mekelweg: 50 100 pcs distributed throughout the building Different locations means different vlans: use two condor queues 16

Problems during run Many jobs seemed to quit prematurely while most of them ran fine Errors could be traced back to Deimos and Nikhef The middleware doesn't really provide statistics to the enduser Output files cannot always be retrieved 17

Gathering statistics Add run information (e.g. start & end times) to the job-output Add an additional XML-RPC method to capture error information Uploading error info is easy: Use return status of external program Use Pythons internal error handling capabilities All error messages (of the entire job) are located in one text file 18

Job Running times (1) 19

Job running times (2) One permutation run (10 permutations) takes: 415140369 seconds 115316.77 hours 4804.87 days 13.16 years Now, repeat 9 times (yes, that's a century) 20

Work done per site 21

Nikhef and Deimos mortality 22

Gathering error info Gathering error information on the grid is prone to error Again, work around the middleware: Implement additional XML-RPC call to gather error information 23

Error & Fix Jobs failed due to one error: Could not access the MCR component cache" Fix: export MCR_CACHE_ROOT=$( mktemp -d ) basically tells the MCR to store all temporary information in a new tmpdir Will be included in the next POC environment 24

Mortality after fix 25

Discussion We can schedule millions of jobs and capture their outputs on the grid, it just takes a custom solution Other fields (such as pattern recognition) can benefit from this solution Is their similar work being done? If not, can we design and implement a generic solution which does the same? 26

Thanks Jeroen de Ridder Roeland van Ochten Marcel Reinders Jeroen Engelberts Pieter van Beek Evert Lammerts Jan Just Keijzer 27

Life Science Grid Site CPUs SARA 2000 NIKHEF 5000 Philips 1500 RUG 160 Erasmus 32 Keygene 32 TU Delft 32 RUG 32 AMS 32 NKI 16 AMC 16 LUMC 16 WUR 16 UU 16 kun 16 Total 8900 28

Grid Middleware The glue (or spaghetti) that unifies job management across clusters Middleware gina: condor keygene: pbs TU Delft: lsf... RUG: SGE Different sites with different job scheduling applications Heterogeneous compute resources 29

ToPoS: Token Pool Server Add work Submit jobs 1. Get token 2. Do work: Translate token Call function Upload output 3. Delete token Fetch work ToPoS: a pilot job framework. Pilot job: one job / thread which keeps running until all the work has been done. A 'token' represents one unit of work. Tokens can be locked to prevent other jobs from doing the same work twice. Why is ToPoS needed: Problems with grid middleware Inability to deal with large amounts of jobs Failing jobs Job accounting Etc. 30

ORM: Object-Relational Mapper Mapper for persistent storage of objects into a database Saves you from having to write any DB code yourself Examples: Python: SQL Alchemy, Storm Java: Hybernate, Cayenne Ruby: ActiveRecord 31

Why not Molgenis? Familiar with Python, which already has all the tools to make this Design XML-ify generate rol-out to cumbersome 32