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
290
3
Share
Dis.io
A browser based distributing grid computing platform. My final year project defence.
Tom Gallacher
May 11, 2012
More Decks by Tom Gallacher
See All by Tom Gallacher
Easy CPU Profiling
tomgco
3
16k
Other Decks in Programming
See All in Programming
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
520
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
19
7.7k
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
140
AI開発を加速するためにテスト戦略を言語化した
yoshihiro_shu
0
110
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
430
Lessons from Spec-Driven Development
simas
PRO
0
110
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
2.7k
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1k
Claspは野良GASの夢をみるか
takter00
0
150
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
250
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
1k
GitHub Copilot CLIのいいところ
htkym
2
1.2k
Featured
See All Featured
Visualization
eitanlees
152
17k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
The Pragmatic Product Professional
lauravandoore
37
7.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
210
The SEO Collaboration Effect
kristinabergwall1
1
470
Navigating Weather and Climate Data
rabernat
0
200
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
390
How to Think Like a Performance Engineer
csswizardry
28
2.6k
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?