BOINC II. Nicolas Maire, Swiss Tropical Institute. with Christian Ulrik Søttrup, Niels Bohr Institute

Similar documents
Volunteer Computing with BOINC

Submitting and managing distributed computations The researcher's interface to a BOINC project

Managing a BOINC Server Experiences at World Community Grid. September 10, 2008

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

Towards Real-Time, Many Task Applications on Large Distributed Systems

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

Amazon Web Services CSE 490H. This presentation incorporates content licensed under the Creative Commons Attribution 2.5 License.

CS 578 Software Architectures Fall 2014 Homework Assignment #1 Due: Wednesday, September 24, 2014 see course website for submission details

Installing Cisco Virtual Switch Update Manager

SaaSaMe Transport Workload Snapshot Export for. Alibaba Cloud

Cloud & Control. Any Program on 2000 or 2 Machines. Tom Ritter. Session Classification: General Interest

Mirroring - Configuration and Operation

Manually Password Protect Directories Apache Ubuntu

BOINC. BOINC: A System for Public-Resource Computing and Storage David P. Anderson. Serge Koren CMSC714 November 22, 2005

At Course Completion Prepares you as per certification requirements for AWS Developer Associate.

Zumobi Brand Integration(Zbi) Platform Architecture Whitepaper Table of Contents

VMware AirWatch Content Gateway Guide For Linux

BOINC extensions in the SZTAKI DesktopGrid system

The 5th Pan-Galactic BOINC Workshop. Desktop Grid System

/ Cloud Computing. Recitation 5 February 14th, 2017

Directed Acyclic Graph Scheduling with User Defined Validation and Assimilation. David Coss BOINC Workshop 27 Sept 2012

Deployment Guide. 3.1 For Windows For Linux Docker image Windows Installation Installation...

VMware AirWatch Content Gateway Guide for Linux For Linux

ElasterStack 3.2 User Administration Guide - Advanced Zone

Contents Upgrading BFInventory iii

Exam C IBM Cloud Platform Application Development v2 Sample Test

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

Christian Benjamin Ries 1 and Christian Schröder 1. Wilhelm-Bertelsmann-Straße 10, Bielefeld, Germany. 1. Introduction

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

Contents. Limitations. Prerequisites. Configuration

SOA Software Intermediary for Microsoft : Install Guide

Module Road Map. 7. Version Control with Subversion Introduction Terminology

Table of Contents DevOps Administrators

Table of Contents

Deploying the Cisco Tetration Analytics Virtual Appliance in Microsoft Azure

ULTEO OPEN VIRTUAL DESKTOP DEBIAN WHEEZY (7.0) SUPPORT

CCMS Installation Instructions

CSET 4150 Web System Administration (3 semester credit hours) IT Required

INSTALLATION GUIDE Online Collection Software for European Citizens' Initiatives

VI-CENTER EXTENDED ENTERPRISE EDITION GETTING STARTED GUIDE. Version: 4.5

Automated Installation Guide for CentOS (PHP 7.x)

High-Performance Computing Application Launching Environment Manual Version 1.0

Distributed Computing with. the Berkeley Open Infrastructure for Network Computing BOINC. Eric Myers. 1 September Mid-Hudson Linux Users Group

Simplified CICD with Jenkins and Git on the ZeroStack Platform

D365 DATA ARCHIVAL & RETENTION

VMware AirWatch Database Migration Guide A sample procedure for migrating your AirWatch database

Cisco Configuration Engine 2.0

VMware Notification Service v2.0 Installation and Configuration Guide Configure ENSv2 for cloud and on-premises deployments

Tools for the programming mid-semester projects

VMware Notification Service v2.0 Installation and Configuration Guide Configure ENS2 for cloud and on-premises deployments

VIRTUALIZATION MANAGER ENTERPRISE EDITION GETTING STARTED GUIDE. Product: Virtual Iron Virtualization Manager Version: 4.2

MuleSoft.U Development Fundamentals (Mule 4) Setup Instructions

Deltek Touch Expense for Ajera. Touch 1.0 Technical Installation Guide

Java Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology

Installation Guide. . All right reserved. For more information about Specops Deploy and other Specops products, visit

Developing BOINC applications

VMware AirWatch Content Gateway Guide for Windows

ULTEO OPEN VIRTUAL DESKTOP SUSE LINUX ENTERPRISE SERVER (SLES) 11 SP1 SUPPORT

VMware Workspace ONE UEM VMware AirWatch Cloud Connector

CS355 Hw 4. Interface. Due by the end of day Tuesday, March 20.

VMware AirWatch Cloud Connector Guide ACC Installation and Integration

AirLift Configuration. VMware Workspace ONE UEM 1902 VMware Workspace ONE AirLift 1.1

VMware Notification Service v2.0 Installation and Configuration Guide Configure ENS2 for cloud and on-premises deployments

The CartIt Commerce System Installation Guide

TCPWave DDI Virtual Machine Installation Guide

OCS INSTALLATION GUIDE

Lecture Overview. IN5290 Ethical Hacking. Lecture 4: Web hacking 1, Client side bypass, Tampering data, Brute-forcing

Workspace ONE UEM Certificate Authentication for EAS with ADCS. VMware Workspace ONE UEM 1902

October 23, CERN, Switzerland. BOINC Virtual Machine Controller Infrastructure. David García Quintas. Introduction. Development (ie, How?

Cluster Upgrade Procedure with Job Queue Migration.

Performance Best Practices Paper for IBM Tivoli Directory Integrator v6.1 and v6.1.1

VMware AirWatch Content Gateway Guide for Windows

G-WAN. Complete install process for Ubuntu (both for the 32 and the 64 OS versions).

Ansible Tower Quick Setup Guide

IBM Rational ClearQuest and IBM Rational ClearCase CCRC/UCM Environment Operations Guide V1.0

StreamSets Control Hub Installation Guide

System Administration for Beginners

VMware AirWatch Content Gateway Guide for Windows

/ Cloud Computing. Recitation 5 September 26 th, 2017

Quest VROOM Quick Setup Guide for Quest Rapid Recovery for Windows and Quest Foglight vapp Installers

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

SCALING DRUPAL TO THE CLOUD WITH DOCKER AND AWS

VMware AirWatch Integration with F5 Guide Enabling secure connections between mobile applications and your backend resources

VMware Notification Service v2.0 Installation and Configuration Guide Configure ENS2 for cloud and on-premises deployments

Virtual Data Center (vdc) Manual

Using and Developing with Azure. Joshua Drew

VMware AirWatch Content Gateway Guide for Windows

Install latest version of Roundcube (Webmail) on CentOS 7

Baremetal with Apache CloudStack

DCLI User's Guide. Data Center Command-Line Interface 2.9.1

ULTEO OPEN VIRTUAL DESKTOP OPENSUSE 11.3 SUPPORT

VIRTUAL GPU LICENSE SERVER VERSION , , AND 5.1.0

Virtual Machines. Module 2

dctrack Quick Setup Guide (Recommended) Obtain a dctrack Support Website Username and Password

Virtual Memory Paging

DIGIT.B4 Big Data PoC

Geant4 on Azure using Docker containers

Cisco Modeling Labs OVA Installation

CSC- Bioweek 2018 Using cpouta for cloud computing Kimmo Mattila, Shubham Kapoor, Ari-Matti Saren (Jukka Nousiainen)

Flexible Engine. Startup Guide

Transcription:

BOINC II Nicolas Maire, Swiss Tropical Institute with Christian Ulrik Søttrup, Niels Bohr Institute

Overview BOINC II BOINC architecture BOINC Client Core client and manager BOINC API Server architecture DB Daemons and tasks Project directory structure Templates Configuration Some examples from malariacontrol.net Client-Server interaction Scheduling server protocol Server deployment

Architecture

Client Project-independent Communicates with the project server(s) Download and upload of data Update of science application Launches and monitors the science app Note: New BOINC API separates screensaver into separate program

BOINC-API For science applications to communicate with the core client (project independent client) The BOINC API is a set of C++ functions. Not covered here: Graphics-API

Initialization and termination int boinc_init(); Call before any other BOINC functions Several initialization tasks, e.g. parse init_data.xml int boinc_finish(int status); Call after science application terminates Let the BOINC client know we re done, and if we ve succeeded

Resolving file names int boinc_resolve_filename( char *logical_name, char *physical_name, int len); convert logical file names to physical names Logical name: the name by which the science application will refer to the file Physical name: unique identifier for the file

Checkpointing Write the state of the job to disk, in order not start from scratch if the computation is interrupted int boinc_time_to_checkpoint(); Checkpointing frequency is a user preference Science application ask BOINC if it s time for a checkpoint at a suitable place Checkpoint immediately if returns non-zero (true) void boinc_checkpoint_completed(); Tell BOINC we have checkpointed, to reset the timer to the next checkpoint

Reporting progress boinc_fraction_done(double fraction_done); The client GUI displays percent done of a running workunit The user can see that the workunit is running ok The malariacontrol science application updates this after each completed 5-day time step with the proportion of competed simulation steps

Legacy applications Not possible to use BOINC API No source code But also if language does not allow C-calls Or simply no resources for SW-development Possible to run under BOINC using the wrapper approach The wrapper handles communication with the core client, and runs science application as a subprocess

Database I BOINC stores state information in a mysql database platform Compilation targets of the core client and/or applications. app Applications. A project can run several science applications app_version Versions of applications. Includes URL, and MD5 checksum. user including email, name, web password, authenticator.

Database II host OS, CPU, RAM, userid,reliability workunit Contains input file descriptions. Includes counts of the number of results linked to this workunit, and the numbers that have been sent, that have succeeded, and that have failed. result Includes state and a number of items relevant only after the result has been returned: CPU time, exit status, and validation status. Web-interface related tables

Scheduler The scheduler is a cgi script that is contacted by the client. By default, a new instance is spawned for each connection (but can use fast CGI). The instance will then find an available job and give it to the client. The scheduler can run on its own machine

Feeder The Feeder takes jobs (results) ready for execution and places them in a queue in memory. This queue is used by the scheduler. More efficient than letting each scheduler instance create a database connection. Feeder return jobs arbitrarily but generally with increasing id. Prioritization of workunits and weighting of applications is possible

Transitioner Takes care of state transition for WUs. Create results from WUs. Newly created WUs Timed-out results Flags results for: Validation Assimilation Deletion Can be split into many instances, each taking care of a subset of Wus. This also goes for most other daemons.

Validator Validates results Once enough (configurable) have been marked with NEED_VALIDATE by the transitioner. Validator compares the results using a project supplied algorithm. complete binary equality One that compares only parts of the results and 5% discrepancy in those parts. This means that you may have to write your own validator, i.e. you must decide what is a valid result. Chooses canonical result and grants credits Credit granting algorithm can also be supplied.

Assimilator The assimilator must also be supplied by the project. It must process the canonical result. Could copy result to a result database Could extract data from result and do calculation based on that Could even generate new jobs based on data from result Mark results as assimilated

File deleter Once a job is done and the WU has been marked as ready for deletion, the file deleter will delete all input and result files from that WU on the server. Option to: preserve_wu_files, preserve_result_files

DB purger This daemon will move database entries that are old and no longer needed to an XML storage file. This clears up the result and workunit tables that could otherwise easily become so big they could not fit in RAM. Projects typically keep results at least a few days in the DB, so that users have a record of their recent contribution

Project directory structure I Apps Contains applications(boinc clients, your science application) Bin Boinc executables Cgi-bin Scheduler and file upload handler Download Input data and programs Upload Result data

Project directory structure II Html Project website and administration website log_servername Logs for BOINC and project-specific daemons and tasks pid_servername Lock files for daemons Templates Templates for workunits and result xml templates

config.xml Main project configuration file Options for disabling account creation, max wu per host per day, one result per user per WU, and many more Project specific tasks can be setup to be run by the main daemon <boinc> <config> [ configuration options ] </config> <daemons> [ list of daemons ] </daemons> <tasks> [ list of periodic tasks ] </tasks> </boinc>

Generating work Write XML 'template files' that describe the job's input and outputs. Example templates follow later on. Create the job's input file(s) Invoke a BOINC function or script that submits the job

A BOINC project example: malariacontrol.net Measured input data Proposal for model parameterization Observed outcomes Predicted outcomes Measure _ of goodness of fit _ Resample parameters Convergence

Validator daemon Validate incoming results against others of the same workunit Grant credit Projects use the BOINC supplied C code and implement compare_results and compute_granted_credit functions Here we use the BOINC-provided sample_bitwise_validator

Assimilator daemon Processes validated results Reads the simulation output file Compares the predictions with the corresponding field data Computes a measure of fit Creates new work if necessary Sample a new model parameterization and store it to the backend database Based on the completed parameterizations in the backend database Create workunit files, copy them to the download directory and all create_work to add to the BOINC database

mcdn config.xml <boinc> <config> <one_result_per_user_per_wu>1</one_result_per_user_per_wu> <tasks> <task> <cmd> generator -db_name malariamodel -template_name../templates/generator_template.xml -d 3 </cmd> <period>1 min</period> </task> </tasks> <daemons> <daemon> <cmd>validator -d 3 -app malariacontrol</cmd> </daemon>.. </daemons> </boinc>

Templates I: Input template Input file references Workunit attributes <file_info> <number>0</number> </file_info> <workunit> <file_ref> <file_number>0</file_number> <open_name>scenario.xml</open_name> </file_ref> <min_quorum>2</min_quorum> <rsc_fpops_bound>120000000000000.0</rsc_fpops_bound> <rsc_fpops_est>10000000000000</rsc_fpops_est> <delay_bound>300000</delay_bound> <max_error_results>5</max_error_results> </workunit>

Templates II: Output template Definition of output files and the way they are referenced <file_info> <name><outfile_0/></name> <generated_locally/> <max_nbytes>10000000</max_nbytes> <url><upload_url/></url> </file_info> <result> <file_ref> <file_name><outfile_0/></file_name> <open_name>output.txt</open_name> </file_ref> </result>

Architecture

Client-Server interaction

Client-Server interaction Communication via http Scheduling server protocol: Client sends scheduler_request_x.xml Server replies with scheduler_reply xml Example request (fragment): <scheduler_request> <hostid>146</hostid> <core_client_major_version>5</core_client_major_version> <core_client_minor_version>10</core_client_minor_version> <work_req_seconds>234</work_req_seconds> <global_preferences>.. </global_preferences> <result> <name>uc_1192745072_44_0</name> <final_cpu_time>9.890625</final_cpu_time> <exit_status>0</exit_status> <platform>windows_intelx86</platform>.. </result>... </scheduler_request>

Server setup There is no official RPM or other package for the server There are privately developed ones. CERN has one for scientific linux. By now installing a server works well on a range of Linux distributions and is well documented Many people have published guides and how-tos Use the resources shown at the end of the presentation

Prerequisites See Boinc website for latest list. Gnutools Gcc, make, autoconf, automake... MySQL Server and client Python MySQL and XML extensions Apache Mod_ssl and PHP Openssl v0.9.8+

Building Get the source from SVN repository svn co http://boinc.berkeley.edu/svn/trunk/boinc Build it./_autosetup./configure --disable-client./make./make install

Installation Make sure that all prerequisites (apache, mysql, php, etc) are configured correctly. Create keys for uploads and downloads (code), preferably not on the server Store the private key somewhere safe

BOINC Server VM VMWare image available: boinc.berkeley.edu Comes with all prerequisites See Hands-on Outlook: Amazon Computing Cloud VM

Installation Run the make_project project script. --project_root <path> --db_user <database_user> --db_passwd <database_password> --key_dir <key_directory> --url_base <url_base> (--drop_db_first, --delete_prev_inst) Optional, used to clean up previous installs. <short_name> <long_name> This creates the DB, directory structure, BOINCgeneric daemons and tasks, web-app Also some configuration files with sensible defaults

Website and forum Start by password protecting the html/ops/ administration interface pages. Either with.htaccess or apache.conf file approach Edit html/project/project.inc Change data to fit with your project Css file in html/user/ can be customized. Edit html/ops/create_forums.php Decide what forums are needed/wanted. Run it.

Final steps Add application and workunits Write and install your own assimilator and validator Start the server bin/start from the project directory.

Administration The admin web pages Grants access to a load of statistics and status information Users Hosts Applications WU and results more BOINC logs Custom logs BOINC DB for comprehensive state information and manipulation

BOINC resources BOINC website: http://boinc.berkeley.edu/ Source code Documentation Forums BOINC email lists: boinc_projects for project admins boinc_dev for boinc developers http://wiki.aims.ac.za/mediawiki/index.php/aims_w orkshop_on_volunteer_computing Project forums My email: