Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Dis.io
Search
Tom Gallacher
May 11, 2012
Programming
3
270
Dis.io
A browser based distributing grid computing platform. My final year project defence.
Tom Gallacher
May 11, 2012
Tweet
Share
More Decks by Tom Gallacher
See All by Tom Gallacher
Easy CPU Profiling
tomgco
3
16k
Other Decks in Programming
See All in Programming
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
230
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
6
1.3k
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
280
Go の GC の不得意な部分を克服したい
taiyow
3
950
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
380
Monixと常駐プログラムの勘どころ / Scalaわいわい勉強会 #4
stoneream
0
310
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1.1k
Fibonacci Function Gallery - Part 2
philipschwarz
PRO
0
190
Amazon S3 NYJavaSIG 2024-12-12
sullis
0
130
CloudflareStack でRAGに入門
asahiiwm
0
140
GitHubで育つ コラボレーション文化 : ニフティでのインナーソース挑戦事例 - 2024-12-16 GitHub Universe 2024 Recap in ZOZO
niftycorp
PRO
0
910
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
330
Featured
See All Featured
The Language of Interfaces
destraynor
155
24k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
50k
Thoughts on Productivity
jonyablonski
68
4.4k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
The World Runs on Bad Software
bkeepers
PRO
66
11k
We Have a Design System, Now What?
morganepeng
51
7.3k
Facilitating Awesome Meetings
lara
50
6.2k
Embracing the Ebb and Flow
colly
84
4.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Transcript
A browser based distributed grid computing platform Tom Gallacher
Dis.io
What is Dis.io? • Grid computing platform • Based in
the web browser • Implementable by any web site • Horizontally scalable • Transparent to participants • Built entirely in JavaScript
Why Dis.io? • Platform agnostic • Potential contributors is proportionate
to daily visitors • Scalable across multiple sites
Architecture Managers, Distributors and Clients
Scalable • Each component can be spawned as many times
needed • Each can be placed on different machines • Components find each other using Bonjour/ZeroConf/MDNS
Terms A payload is: • An object of parameters •
Sent to Clients A work unit is: • Executable code which takes a payload A task is: • Amalgamation of payloads and work units
Client • Browser-side implementation • Uses the Web Worker API
• Implements Web Sockets via Socket.io
Managers The Provider. • Sends work units to Distributors •
Breaks down tasks into payloads • Uses ZeroMQ for communication to and from distributors • Saves results sent from distributors
Distributors The Hub. • Communications with Clients and Managers •
Uses a combination of ZeroMQ and Web sockets • Caches Messages if a manager is offline • Provides payloads and work units to clients
Dashboard The Control Panel. • Facilitates creation of Tasks and
work units. • Status of various components
Demo
Start the MongoDB database
Start the Dashboard's Webserver
Create a task
Spool up the Manager
Start Distributors
Verify connection on the Manager
Open a site that is serving the client
Number of completed tasks before
Number of completed after client has connected
Still continues if managers goes down
Performance Benchmarks
Dis.io cluster vs a single machine
Time per datapoint
What was learned • Distributed systems are very complex •
Effective communication between nodes is needed • Performance is based on the JavaScript Engine.
Limitations • JavaScript is slower than compiled languages • It's
possible for clients to spoof results • Useable only in modern browser • Task creation is not flexible
Recap • Dis.io browser based computing platform • Designed with
scalability in mind • Out performs a single process • Easy management
Any Questions?