• Aucun résultat trouvé

Pando: An Easy-to-Deploy P2P Volunteer Computing Platform for the Web

N/A
N/A
Protected

Academic year: 2021

Partager "Pando: An Easy-to-Deploy P2P Volunteer Computing Platform for the Web"

Copied!
2
0
0

Texte intégral

(1)

HAL Id: hal-01652993

https://hal.inria.fr/hal-01652993

Submitted on 30 Nov 2017

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Pando: An Easy-to-Deploy P2P Volunteer Computing Platform for the Web

Erick Lavoie, Laurie Hendren, Frédéric Desprez

To cite this version:

Erick Lavoie, Laurie Hendren, Frédéric Desprez. Pando: An Easy-to-Deploy P2P Volunteer Comput- ing Platform for the Web. 2nd International Workshops on Foundations and Applications of Self*

Systems (FAS* W), IEEE, Sep 2017, Tucson, AZ, United States. �hal-01652993�

(2)

Pando: An Easy-to-Deploy P2P Volunteer Computing Platform for the Web

Erick Lavoie, Laurie Hendren

McGill University, Montreal, Canada [email protected]

[email protected]

Frédéric Desprez

INRIA Grenoble Rhône-Alpes, Grenoble, France [email protected]

Motivation

Design Goals Contributions

Related Work

Links and References Design

Performance

f(x)

x0, x1, x2, … f(x0), f(x1), f(x2), …

f(x0), f(x1), f(x2), …

pull-lendStream

x0, x1, x2, …

Client

pull-limit pull-limit

Legend

OS Process

Bi-directional data stream Uni-directional stream

module JavaScript module Network boundary

(with possible

Network Address Translation) Protocol Network protocol

Coordinator

pull-lendStream

pull-limit

Processor

pull-limit WebRTC

Processor

pull-lendStream

Processor

f(x)

Bi-directional control stream Pando-

Server

Pando- Server

Public Server

WebRTC

Candidate

WebSocket WebSocket

WebRTC WebRTC

Clear Programming Model: Base the system on a programming model that is clear and guides a correct implementation;

Easy Deployment: Make the system easy to deploy, both for the project owner and the volunteers;

Usage of Existing Commodity Hardware: Use existing hardware including workstations, laptops, tablets and mobile phones that individuals,

businesses, and universities already possess;

Scalability: Allow connecting at least a thousand volunteers;

Elasticity: Make the volunteer nodes available quickly;

Performance: Show a linear improvement in throughput compared to a single processor;

Fault-tolerance: Tolerate individual nodes that suddenly disconnect or stop answering.

Source Code Repository: https://github.com/elavoie/pando-computing Demo/Teaser: https://www.youtube.com/watch?v=29ABvs3wNNI

Handbook: https://github.com/elavoie/pando-handbook

Reproduction Steps for Performance Experiments: https://github.com/elavoie/pando- handbook#publication-specific-instructions-for-reproducing-experiments

[1] Tomasz Fabisiak and Arkadiusz Danilecki. Browser-based harnessing of voluntary computational power. Foundations of Computing and Decision Sciences, 42(1):3–42, 2017.

[2] David Dias. browserCloud.js - A federated community cloud served by a P2P overlay network on top of the web platform. Master’s thesis, Tecnico Lisboa, 2015.

Conclusion and Future Work Usage

1. Write or generate a JavaScript function for processing (ex: process.js) using the following conventions (supports NPM packages!):

var module.exports['/pando/1.0.0'] = function (x, cb) { // perform computation

if (error) return cb(error) return cb(null, result)

}

2. Start Pando on a local laptop, desktop, or server:

generate-inputs | pando process.js [options] | process-outputs

On startup, pando provides a url at which volunteers can connect with a web browser;

3. Open the url in browser tabs on all compatible devices, one per core;

4. Share the url on social medias to invite friends to participate;

Components

Computation Model

A web-based volunteer computing approach that is simple to deploy, does not require a dedicated server, and can leverage a wide variety of

existing end-user devices because code is executed in browsers;

Open source implementations in JavaScript of stream abstractions, each individually available through the Node Package Manager (NPM) for reuse in other projects and that are easily composable with a growing list of community developed pull-stream modules;

An open-source command-line tool (pando), compatible with Unix pipelines that uses the stream abstractions as well as all scripts and

procedures to replicate our performance experiments on the Grid'5000 testbed.

Squaring Number Test Collatz Conjecture

Linear speedup when increasing the number of volunteers!

Scales up to at least a thousand browser tabs!

* Simulated computation time (computation delayed to take 1 second), with up to 13 browser tabs/core

* Real computation time, 1 browser tab/core Current volunteer platforms in use today (ex: BOINC platform) require a

significant amount of effort and money to deploy which limits the

volunteer computing approach to a few high-profile projects. Moreover, the effort in installing a client a limits the number of participants.

The web platform now offers a combination of excellent execution performance, security sandboxing, and standard communication

protocol including WebRTC (peer-to-peer browser communication), and portability across many devices and operating systems, and requires no installation of client software. Moreover, social medias enable the quick mobilization of millions of users.

Those capabilities now enable the construction of newer and simpler volunteer computing platforms that may tap into more devices than ever, reach significantly more participants, and make the deployment easy for smaller and even one-shot computation projects.

Three generations of projects, as surveyed by Fabisiak and Danilecki [1] over more than 40 articles on browser-based voluntary computing published in over 20 years, to which we add a 4th generation:

1st Generation (90s and 2000s): Based on Java and Web Applet (requires installation of plugins) 2nd Generation (2007-2010): Based on JavaScript but really slow

3rd Generation (2010-2015): Based on JavaScript but now fast! (still require server)

4th Generation (2015-…): JavaScript + Peer-to-Peer communication (no server!), browserCloud.js [2], and Pando

Presented Pando, a new volunteer computing platform designed to be easy to deploy and which does not require a dedicated server and can be scaled to a thousand browser tabs for computation. This makes it useful to leverage hardware investments already made in small- and medium-businesses and

university departments.

We will perform an in-depth evaluation of the performance of Pando, support more applications, optimize the performance of single computation nodes, and explore various overlay topologies for applications with more complex communication patterns during computation.

Acknowledgements

Easy to Deploy Usage of Existing

Hardware

Clear and Simple Programming Model

Quickly Scalable to a 1000 Browser Tabs

Automatic Recovery from Disconnecting

Volunteers

Leverage all your (and your friend's!) devices to accelerate processing workflows with

Images from https://openclipart.com

Références

Documents relatifs

Existe-t-il un triangle ABC dont le périmètre est égal à 134 centimètres, le rayon du cercle inscrit est égal à 12 centimètres et le rayon du cercle circonscrit est égal à

These applications provide ready results for the SBA users and demonstrate that the WPS standard is effective in making geoprocessing readily available in a

This feature of the didgets is specified through their global attribute, which can assume four different values (see Table 1): G0) the didget holds some pieces of data that are local

link suggestion, category suggestion, and property 6 suggestion. To summarize, the proposed suggestions are applied to 1) improve the usability of (semantic) wikis; 2) improve

visualization techniques used to visualize three-dimensional scalar data. sets (see Fig.

Created image based on tensorflow containing the Jupyter notebook implemented in Python convolutional neural network using bibltoteki Keras. This image was uploaded to the public

The entire client application running alongside the secure enclave is now part of the volunteer computing network and it is ready to share its computa- tional resources to solve

This automation includes: (1) the automation of the access procedure for a high-performance system; (2) the automation of program deployment (code upload, building, starting,