Introduction to the BOINC software David P. Anderson Space Sciences Laboratory University of California, Berkeley.

Slides:



Advertisements
Similar presentations
SALSA HPC Group School of Informatics and Computing Indiana University.
Advertisements

BOINC: A System for Public-Resource Computing and Storage David P. Anderson University of California, Berkeley.
1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
Bookshelf.EXE - BX A dynamic version of Bookshelf –Automatic submission of algorithm implementations, data and benchmarks into database Distributed computing.
P-GRADE and WS-PGRADE portals supporting desktop grids and clouds Peter Kacsuk MTA SZTAKI
EEC 688/788 Secure and Dependable Computing Lecture 12 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
EEC 688/788 Secure and Dependable Computing Lecture 12 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
BOINC The Year in Review David P. Anderson Space Sciences Laboratory U.C. Berkeley 22 Oct 2009.
EEC 693/793 Special Topics in Electrical Engineering Secure and Dependable Computing Lecture 12 Wenbing Zhao Department of Electrical and Computer Engineering.
The new The new MONARC Simulation Framework Iosif Legrand  California Institute of Technology.
Presented by Mina Haratiannezhadi 1.  publishing, editing and modifying content  maintenance  central interface  manage workflows 2.
Apache Jakarta Tomcat Suh, Junho. Road Map Tomcat Overview Tomcat Overview History History What is Tomcat? What is Tomcat? Servlet Container.
SEEM4570: XAMPP, Eclipse, Summary of Html Kangfei Zhao Room 711,ERB
Google Distributed System and Hadoop Lakshmi Thyagarajan.
The SAM-Grid Fabric Services Gabriele Garzoglio (for the SAM-Grid team) Computing Division Fermilab.
Volunteer Computing and Hubs David P. Anderson Space Sciences Lab University of California, Berkeley HUBbub September 26, 2013.
Apache Airavata GSOC Knowledge and Expertise Computational Resources Scientific Instruments Algorithms and Models Archived Data and Metadata Advanced.
1 port BOSS on Wenjing Wu (IHEP-CC)
Achievements and Opportunities in Volunteer Computing David P. Anderson Space Sciences Lab U.C. Berkeley 18 April 2008.
A Guided Tour of BOINC David P. Anderson Space Sciences Lab University of California, Berkeley TACC November 8, 2013.
HTCondor and BOINC. › Berkeley Open Infrastructure for Network Computing › Grew out of began in 2002 › Middleware system for volunteer computing.
Volunteer Computing David P. Anderson Space Sciences Lab U.C. Berkeley May 7, 2008.
ORGANIZING AND ADMINISTERING OF VOLUNTEER DISTRIBUTED COMPUTING PROJECT Oleg Zaikin, Nikolay Khrapov Institute for System Dynamics and Control.
Bonrix SMPP Client. Index Introduction Software and Hardware Requirements Architecture Set Up Installation HTTP API Features Screen-shots.
20 October 2006Workflow Optimization in Distributed Environments Dynamic Workflow Management Using Performance Data David W. Walker, Yan Huang, Omer F.
10/13/2015 ©2006 Scott Miller, University of Victoria 1 Content Serving Static vs. Dynamic Content Web Servers Server Flow Control Rev. 2.0.
David P. Anderson Space Sciences Laboratory University of California – Berkeley Designing Middleware for Volunteer Computing.
Wenjing Wu Computer Center, Institute of High Energy Physics Chinese Academy of Sciences, Beijing BOINC workshop 2013.
07:44:46Service Oriented Cyberinfrastructure Lab, Introduction to BOINC By: Andrew J Younge
SALSA HPC Group School of Informatics and Computing Indiana University.
Volunteer Computing with BOINC Dr. David P. Anderson University of California, Berkeley SC10 Nov. 14, 2010.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
Volunteer Computing with GPUs David P. Anderson Space Sciences Laboratory U.C. Berkeley.
and Citizen Cyber-Science David P. Anderson Space Sciences Laboratory U.C. Berkeley.
The EDGeS project receives Community research funding 1 Porting Applications to the EDGeS Infrastructure A comparison of the available methods, APIs, and.
BOINC: Progress and Plans David P. Anderson Space Sciences Lab University of California, Berkeley BOINC:FAST August 2013.
David P. Anderson Space Sciences Laboratory University of California – Berkeley Designing Middleware for Volunteer Computing.
David P. Anderson Space Sciences Laboratory University of California – Berkeley Public and Grid Computing.
TEMPLATE DESIGN © BOINC: Middleware for Volunteer Computing David P. Anderson Space Sciences Laboratory University of.
High Availability in DB2 Nishant Sinha
Aneka Cloud ApplicationPlatform. Introduction Aneka consists of a scalable cloud middleware that can be deployed on top of heterogeneous computing resources.
David P. Anderson Space Sciences Laboratory University of California – Berkeley Public Distributed Computing with BOINC.
BOINC: An Open Platform for Public-Resource Computing David P. Anderson Space Sciences Laboratory U.C. Berkeley.
Celebrating Diversity in Volunteer Computing David P. Anderson Space Sciences Lab U.C. Berkeley Sept. 1, 2008.
David P. Anderson Space Sciences Laboratory University of California – Berkeley Public Distributed Computing with BOINC.
1 A Scalable Distributed Data Management System for ATLAS David Cameron CERN CHEP 2006 Mumbai, India.
RI EGI-TF 2010, Tutorial Managing an EGEE/EGI Virtual Organisation (VO) with EDGES bridged Desktop Resources Tutorial Robert Lovas, MTA SZTAKI.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
Preservation Data Services Persistent Archive Research Group Reagan W. Moore October 1, 2003.
Volunteer Computing with BOINC Dr. David P. Anderson University of California, Berkeley SC10 Nov. 14, 2010.
Emulating Volunteer Computing Scheduling Policies Dr. David P. Anderson University of California, Berkeley May 20, 2011.
The Limits of Volunteer Computing Dr. David P. Anderson University of California, Berkeley March 20, 2011.
Volunteer Computing and Large-Scale Simulation David P. Anderson U.C. Berkeley Space Sciences Lab February 3, 2007.
Volunteer Computing with BOINC: a Tutorial David P. Anderson Space Sciences Laboratory University of California – Berkeley May 16, 2006.
Frontiers of Volunteer Computing David Anderson Space Sciences Lab UC Berkeley 28 Nov
Session 4: Creating and processing work. BOINC daemons ● Work generator ● Transitioner – Creates results for new and time-out workunits ● Validator ●
Session 2: Creating a BOINC project. The BOINC database (MySQL) ● Application ● Application version ● Platform ● Workunit ● Result ● Host ● User ● Trickle.
Session 3 Developing a BOINC application. Development environments ● Windows – Visual Studio 2003 or 2005 – Tortoise CVS ● Mac OS X – Xcode ● Linux –
A Brief History of BOINC
The 9th Annual BOINC Workshop
Volunteer Computing: SETI and Beyond David P
Volunteer Computing for Science Gateways
Designing a Runtime System for Volunteer Computing David P
How to connect your DG to EDGeS? Zoltán Farkas, MTA SZTAKI
Nebula A cloud-based back end for
Processes The most important processes used in Web-based systems and their internal organization.
The software infrastructure of II
湖南大学-信息科学与工程学院-计算机与科学系
University of California, Berkeley
Prof. Leonardo Mostarda University of Camerino
Presentation transcript:

Introduction to the BOINC software David P. Anderson Space Sciences Laboratory University of California, Berkeley

Outline Abstractions The BOINC server software The BOINC client software and runtime system

Design goals A few applications, lots of jobs High performance – millions of jobs per day Scalability Fault tolerance

Abstractions Platform App version – a collection of files, one of which is an executable main program – associated with a platform App – a set of app versions that all perform roughly the same computation – may have versions for different platforms – may have different versions for one platform (GPU, non-GPU)

Abstractions Workunit (job) – a collection of input files – associated with an app (not an app version!) – attributes resource estimates and bounds latency bound Result (job instance) – a collection of output files – associated with a workunit

Anatomy of a BOINC project MySQL database project root/ bin/ cgi-bin/ download/ 00/.. 3ff/ html/ log_*/ templates/ upload/ 00/.. 3ff/ servers daemons and periodic tasks clients

Work generator MySQL database project root/ bin/ cgi-bin/ download/ 00/.. 3ff/ html/ log_*/ templates/ upload/ 00/.. 3ff/ work generator Creates input files Creates workunits One per app Flow control – disk space – DB size

Specifying a job Workunit template – XML document describing input files (logical, physical names) job attributes Result template – XML document describing output files create_work() – specifies templates, app, input files

Validator Check result validity Compare replicas May be app-specific MySQL database project root/ bin/ cgi-bin/ download/ 00/.. 3ff/ html/ log_*/ templates/ upload/ 00/.. 3ff/ validator

Validation Clients may – return bad results – exaggerated claimed credit Strategies – app-specific consistency checking – replication fuzzy comparison homogeneous redundancy – adaptive replication

Assimilator Processes completed results App-specific MySQL database project root/ bin/ cgi-bin/ download/ 00/.. 3ff/ html/ log_*/ templates/ upload/ 00/.. 3ff/ assimilator

Summary Create app, app versions for different platforms Develop work generator Develop validator Develop assimilator Isn’t there a simpler way?

Single-job submission Assemble your input files and executable, then boinc_submit --input foo --output blah program How this works: – uses “wrapper” app – executable is part of workunit – templates are created automatically What it doesn’t do: – multi-platform – validation

Job dispatch MySQL database project root/ bin/ cgi-bin/ download/ 00/.. 3ff/ html/ log_*/ templates/ upload/ 00/.. 3ff/ transitioner feeder scheduler (CGI or FastCGI) share-memory job cache clients

File transfer project root/ bin/ cgi-bin/ download/ 00/.. 3ff/ html/ log_*/ templates/ upload/ 00/.. 3ff/ Apache file upload handler clients

Janitorial daemons MySQL database project root/ bin/ cgi-bin/ download/ 00/.. 3ff/ html/ log_*/ templates/ upload/ 00/.. 3ff/ file deleter DB purger

Ways to deploy a BOINC server Linux server Server VM for VMWare Server VM for Amazon EC2

The BOINC runtime system Directory structure: BOINC/ projects/ lhcathome/ physical_name0 physical_name1 setiathome/ slots/ 0/ logical_name0 (link file) logical_name1 1/ BOINC client application share-memory message-passing BOINC runtime fraction done CPU time suspend resume quit

Basic API boinc_init() – creates a thread that handles messages boinc_finish() – creates a “finish file” boinc_resolve_filename() – maps logical to physical file names

Checkpointing boinc_time_to_checkpoint() – call at points where you can checkpoint boinc_checkpoint_done() – call when you’re finished checkpointing

Compound applications Examples: – coordinator program runs several worker programs in sequence – “switcher” program probes CPU architecture, selects which executable to run Variants of boinc_init() let you specify which app is main program, and how messages are handled Each message type must be handled by 1 process

Long-running applications Trickle-up messages Trickle-down messages Intermediate file transfers

Legacy applications The BOINC wrapper – takes XML “job file” – handles all messages

GPU and multithread apps Server – you supply a function that takes an app version and a host, and returns resource usage and estimated FLOPS – the BOINC scheduler chooses the best version Client – senses and reports coprocessors (e.g. NVIDIA GPUs) – coprocessor-aware scheduling and work fetch