SlideShare a Scribd company logo
1 of 27
Download to read offline
Programming the cloud

with Skywriting"

         Derek Murray"
Outline"
•  Existing parallel programming models"

•  Introduction to Skywriting"

•  Ongoing work"
SMP programming"
•  Symmetric multiprocessing"
  –  All cores share the same address space"
  –  Usually assumes cache-coherency"
•  Multi-threaded programs"
  –  Threads created dynamically"
  –  Shared, writable data structures"
  –  Synchronisation"
     •  Atomic compare-and-swap"
     •  Mutexes, Semaphores"
     •  {Software, Hardware} Transactional Memory"
Distributed programming"
•  Shared nothing*"
  –  Processors communicate by message passing"
  –  Standard assumption for large supercomputers"
  –  ...and data centres"
  –  ...and recent manycore machines (e.g. Intel SCC)"
•  Explicit messages"
  –  MPI, Pregel, Actor-based"
•  Implicit messages: task parallelism"
  –  MapReduce, Dryad"
Task parallelism"
•  Master-worker architecture"
  –  Master maintains task queue"
  –  Workers execute independent tasks in parallel"
•  Fault tolerance"
  –  Re-execute tasks on failed workers"
  –  Speculatively re-execute “slow” tasks"
•  Load balancing"
  –  Workers consume tasks at their own rate"
  –  Task granularity must be optimised"
Task graph"

     A runs before B"

A"                      B"

     B depends on A"
MapReduce"
•  Two kinds of task: map and reduce"
•  User-specified map and reduce functions"
  –  map() a record to a list of key-value pairs"
  –  reduce() a key and the list of related values"
•  Tasks apply functions to data partitions"
                  M"          R"

                  M"          R"

                  M"          R"
Dryad"
•  Task graph is first class"
  –  Vertices run arbitrary code"
  –  Multiple inputs and inputs"
  –  Channels specify data transport"
•  Graph must be acyclic and finite"
  –  Permits topological sorting"
  –  Prevents unbounded iteration"
Architecture"

               Code"

 Driver
      Results"
program"
while	
  (!converged)	
  
	
  	
  	
  	
  do	
  work	
  in	
  parallel;	
  
Existing systems"

                        Code"

     Driver
           Results"
    program"
                        Code"
     Driver
    program"           Results"

while	
  (…)	
          Code"
	
  submitJob();	
  
                       Results"

                        Code"

                       Results"
Existing systems"

                        Code"

     Driver
           Results"
    program"
                        Code"
     Driver
    program"

while	
  (…)	
  
	
  submitJob();	
  
Skywriting"
                  while	
  (…)	
  
                  	
  doStuff();	
  
                       Code"



                     Results"



•  Turing-complete language
   for job specification"
•  Whole job executed on the
   cluster"
Spawning a Skywriting task"

function	
  f(arg1,	
  arg2)	
  {	
  …	
  }	
  

result	
  =	
  spawn(f,	
  [arg1,	
  arg2]);	
  

//	
  result	
  is	
  a	
  “future”	
  
value_of_result	
  =	
  *result;	
  
Building a task graph"
function	
  f(x,	
  y)	
  {	
  …	
  }	
  
function	
  g(x,	
  y)	
  {	
  …	
  }	
             f	
  
function	
  h(x,	
  y)	
  {	
  …	
  }	
     a	
             a	
  

a	
  =	
  spawn(f,	
  [7,	
  8]);	
  
                                            g	
                 g	
  
b	
  =	
  spawn(g,	
  [a,	
  0]);	
  
c	
  =	
  spawn(g,	
  [a,	
  1]);	
  
d	
  =	
  spawn(h,	
  [b,	
  c]);	
         b	
             c	
  
return	
  d;	
                                      h	
  
                                                        d	
  
Iterative algorithm"
current	
  =	
  …;	
  
do	
  {	
  
	
  	
  	
  	
  prev	
  =	
  current;	
  
	
  	
  	
  	
  a	
  =	
  spawn(f,	
  [prev,	
  0]);	
  
	
  	
  	
  	
  b	
  =	
  spawn(f,	
  [prev,	
  1]);	
  
	
  	
  	
  	
  c	
  =	
  spawn(f,	
  [prev,	
  2]);	
  
	
  	
  	
  	
  current	
  =	
  spawn(g,	
  [a,	
  b,	
  c]);	
  
	
  	
  	
  	
  done	
  =	
  spawn(h,	
  [current]);	
  
while	
  (!*done);	
  	
  
Iterative algorithm"
f	
      f	
     f	
  


         g	
             h	
  


f	
      f	
     f	
  
Aside: recursive algorithm"
function	
  f(x)	
  {	
  
	
  	
  	
  	
  if	
  (/*	
  x	
  is	
  small	
  enough	
  */)	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  return	
  /*	
  do	
  something	
  with	
  x	
  */;	
  
	
  	
  	
  	
  }	
  else	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  x_lo	
  =	
  /*	
  bottom	
  half	
  of	
  x	
  */;	
  
	
  	
  	
  	
  	
  	
  	
  	
  x_hi	
  =	
  /*	
  top	
  half	
  of	
  x	
  */;	
  
	
  	
  	
  	
  	
  	
  	
  	
  return	
  [spawn(f,	
  [x_lo]),	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  spawn(f,	
  [x_hi])];	
  
	
  	
  	
  	
  }	
  
}	
  
Performance case studies"
•  All experiments used Amazon EC2"
  –  m1.small instances, running Ubuntu 8.10"


•  Microbenchmark"

•  Smith-Waterman"
Job creation overhead"
                      60"
Overhead (seconds)"



                      50"
                      40"
                      30"
                                                                Hadoop"
                      20"                                       Skywriting"
                      10"
                       0"
                            0"   20"   40"   60"   80"   100"
                                  Number of workers"
Smith-Waterman data flow"
Parallel Smith-Waterman"
Parallel Smith-Waterman"
                  350"
                  300"
Time (seconds)"




                  250"
                  200"
                  150"
                  100"
                   50"
                    0"
                         1"   10"         100"     1000"   10000"
                                    Number of tasks"
Future work: manycore"
•  Trade-offs are different"
  –  Centralised master may become a bottleneck"
  –  Switch to local work-queues and work-stealing"
  –  Distributed scoreboards for futures"
  –  Optimised interpreter/compilation?"
•  Multi-scale hybrid approaches"
  –  Multiple cores"
  –  Multiple machines"
  –  Multiple clouds..."
Future work: message-passing"
•  Language designed for batch processing"
  –  However, batches may be infinitely long!"
•  Can we apply it to streaming data?"
  –  Log files"
  –  Financial reports"
  –  Sensor data"
•  Can we include data dependencies?"
  –  High- and low-frequency streams"
Conclusions"
•  Turing-complete programming language
   for cloud computing"

•  Runs real jobs with low overhead"

•  Lots more still to do!"
Questions?"
•  Email"
  –  Derek.Murray@cl.cam.ac.uk"
•  Project website"
  –  http://www.cl.cam.ac.uk/netos/skywriting/	
  

More Related Content

What's hot

Scott Anderson [InfluxData] | InfluxDB Tasks – Beyond Downsampling | InfluxDa...
Scott Anderson [InfluxData] | InfluxDB Tasks – Beyond Downsampling | InfluxDa...Scott Anderson [InfluxData] | InfluxDB Tasks – Beyond Downsampling | InfluxDa...
Scott Anderson [InfluxData] | InfluxDB Tasks – Beyond Downsampling | InfluxDa...InfluxData
 
Cascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the StreamsCascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the Streamsmattpodwysocki
 
Cluj Big Data Meetup - Big Data in Practice
Cluj Big Data Meetup - Big Data in PracticeCluj Big Data Meetup - Big Data in Practice
Cluj Big Data Meetup - Big Data in PracticeSteffen Wenz
 
Powered by Python - PyCon Germany 2016
Powered by Python - PyCon Germany 2016Powered by Python - PyCon Germany 2016
Powered by Python - PyCon Germany 2016Steffen Wenz
 
Cluj.py Meetup: Extending Python in C
Cluj.py Meetup: Extending Python in CCluj.py Meetup: Extending Python in C
Cluj.py Meetup: Extending Python in CSteffen Wenz
 
Monitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry PiMonitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry PiInfluxData
 
How to build a html5 websites.v1
How to build a html5 websites.v1How to build a html5 websites.v1
How to build a html5 websites.v1Bitla Software
 
Virtual machine and javascript engine
Virtual machine and javascript engineVirtual machine and javascript engine
Virtual machine and javascript engineDuoyi Wu
 
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...InfluxData
 
Add Some Fun to Your Functional Programming With RXJS
Add Some Fun to Your Functional Programming With RXJSAdd Some Fun to Your Functional Programming With RXJS
Add Some Fun to Your Functional Programming With RXJSRyan Anklam
 
Compose Async with RxJS
Compose Async with RxJSCompose Async with RxJS
Compose Async with RxJSKyung Yeol Kim
 
Lego: A brick system build by scala
Lego: A brick system build by scalaLego: A brick system build by scala
Lego: A brick system build by scalalunfu zhong
 
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...InfluxData
 
JS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless BebopJS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless BebopJSFestUA
 

What's hot (20)

Scott Anderson [InfluxData] | InfluxDB Tasks – Beyond Downsampling | InfluxDa...
Scott Anderson [InfluxData] | InfluxDB Tasks – Beyond Downsampling | InfluxDa...Scott Anderson [InfluxData] | InfluxDB Tasks – Beyond Downsampling | InfluxDa...
Scott Anderson [InfluxData] | InfluxDB Tasks – Beyond Downsampling | InfluxDa...
 
Cascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the StreamsCascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the Streams
 
Cluj Big Data Meetup - Big Data in Practice
Cluj Big Data Meetup - Big Data in PracticeCluj Big Data Meetup - Big Data in Practice
Cluj Big Data Meetup - Big Data in Practice
 
Powered by Python - PyCon Germany 2016
Powered by Python - PyCon Germany 2016Powered by Python - PyCon Germany 2016
Powered by Python - PyCon Germany 2016
 
Cluj.py Meetup: Extending Python in C
Cluj.py Meetup: Extending Python in CCluj.py Meetup: Extending Python in C
Cluj.py Meetup: Extending Python in C
 
Yavorsky
YavorskyYavorsky
Yavorsky
 
Monitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry PiMonitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
 
How to build a html5 websites.v1
How to build a html5 websites.v1How to build a html5 websites.v1
How to build a html5 websites.v1
 
Virtual machine and javascript engine
Virtual machine and javascript engineVirtual machine and javascript engine
Virtual machine and javascript engine
 
Rxjs kyivjs 2015
Rxjs kyivjs 2015Rxjs kyivjs 2015
Rxjs kyivjs 2015
 
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...
 
Scalding
ScaldingScalding
Scalding
 
Your JavaScript Library
Your JavaScript LibraryYour JavaScript Library
Your JavaScript Library
 
Add Some Fun to Your Functional Programming With RXJS
Add Some Fun to Your Functional Programming With RXJSAdd Some Fun to Your Functional Programming With RXJS
Add Some Fun to Your Functional Programming With RXJS
 
R and cpp
R and cppR and cpp
R and cpp
 
Compose Async with RxJS
Compose Async with RxJSCompose Async with RxJS
Compose Async with RxJS
 
R and C++
R and C++R and C++
R and C++
 
Lego: A brick system build by scala
Lego: A brick system build by scalaLego: A brick system build by scala
Lego: A brick system build by scala
 
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...
 
JS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless BebopJS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless Bebop
 

Similar to Programming the Cloud with Skywriting

Emerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the HorizonEmerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the HorizonAlex Payne
 
Introduction to Scalding and Monoids
Introduction to Scalding and MonoidsIntroduction to Scalding and Monoids
Introduction to Scalding and MonoidsHugo Gävert
 
Beyond Map/Reduce: Getting Creative With Parallel Processing
Beyond Map/Reduce: Getting Creative With Parallel ProcessingBeyond Map/Reduce: Getting Creative With Parallel Processing
Beyond Map/Reduce: Getting Creative With Parallel ProcessingEd Kohlwey
 
Barcelona MUG MongoDB + Hadoop Presentation
Barcelona MUG MongoDB + Hadoop PresentationBarcelona MUG MongoDB + Hadoop Presentation
Barcelona MUG MongoDB + Hadoop PresentationNorberto Leite
 
Node.js - async for the rest of us.
Node.js - async for the rest of us.Node.js - async for the rest of us.
Node.js - async for the rest of us.Mike Brevoort
 
The Art Of Readable Code
The Art Of Readable CodeThe Art Of Readable Code
The Art Of Readable CodeBaidu, Inc.
 
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...Inhacking
 
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...Аліна Шепшелей
 
Processing presentation
Processing presentationProcessing presentation
Processing presentationrngtng
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35Bilal Ahmed
 
SVGo: a Go Library for SVG generation
SVGo: a Go Library for SVG generationSVGo: a Go Library for SVG generation
SVGo: a Go Library for SVG generationAnthony Starks
 
MapReduce with Scalding @ 24th Hadoop London Meetup
MapReduce with Scalding @ 24th Hadoop London MeetupMapReduce with Scalding @ 24th Hadoop London Meetup
MapReduce with Scalding @ 24th Hadoop London MeetupLandoop Ltd
 
Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSuzquiano
 
Everything is Awesome - Cutting the Corners off the Web
Everything is Awesome - Cutting the Corners off the WebEverything is Awesome - Cutting the Corners off the Web
Everything is Awesome - Cutting the Corners off the WebJames Rakich
 
Altitude SF 2017: Nomad and next-gen application architectures
Altitude SF 2017: Nomad and next-gen application architecturesAltitude SF 2017: Nomad and next-gen application architectures
Altitude SF 2017: Nomad and next-gen application architecturesFastly
 
Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Patrick Chanezon
 
用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化Shengyou Fan
 
Блохин Леонид - "Mist, как часть Hydrosphere"
Блохин Леонид - "Mist, как часть Hydrosphere"Блохин Леонид - "Mist, как часть Hydrosphere"
Блохин Леонид - "Mist, как часть Hydrosphere"Provectus
 

Similar to Programming the Cloud with Skywriting (20)

Emerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the HorizonEmerging Languages: A Tour of the Horizon
Emerging Languages: A Tour of the Horizon
 
Sensmon couchdb
Sensmon couchdbSensmon couchdb
Sensmon couchdb
 
Introduction to Scalding and Monoids
Introduction to Scalding and MonoidsIntroduction to Scalding and Monoids
Introduction to Scalding and Monoids
 
Beyond Map/Reduce: Getting Creative With Parallel Processing
Beyond Map/Reduce: Getting Creative With Parallel ProcessingBeyond Map/Reduce: Getting Creative With Parallel Processing
Beyond Map/Reduce: Getting Creative With Parallel Processing
 
Osd ctw spark
Osd ctw sparkOsd ctw spark
Osd ctw spark
 
Barcelona MUG MongoDB + Hadoop Presentation
Barcelona MUG MongoDB + Hadoop PresentationBarcelona MUG MongoDB + Hadoop Presentation
Barcelona MUG MongoDB + Hadoop Presentation
 
Node.js - async for the rest of us.
Node.js - async for the rest of us.Node.js - async for the rest of us.
Node.js - async for the rest of us.
 
The Art Of Readable Code
The Art Of Readable CodeThe Art Of Readable Code
The Art Of Readable Code
 
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
 
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
 
Processing presentation
Processing presentationProcessing presentation
Processing presentation
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35
 
SVGo: a Go Library for SVG generation
SVGo: a Go Library for SVG generationSVGo: a Go Library for SVG generation
SVGo: a Go Library for SVG generation
 
MapReduce with Scalding @ 24th Hadoop London Meetup
MapReduce with Scalding @ 24th Hadoop London MeetupMapReduce with Scalding @ 24th Hadoop London Meetup
MapReduce with Scalding @ 24th Hadoop London Meetup
 
Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMS
 
Everything is Awesome - Cutting the Corners off the Web
Everything is Awesome - Cutting the Corners off the WebEverything is Awesome - Cutting the Corners off the Web
Everything is Awesome - Cutting the Corners off the Web
 
Altitude SF 2017: Nomad and next-gen application architectures
Altitude SF 2017: Nomad and next-gen application architecturesAltitude SF 2017: Nomad and next-gen application architectures
Altitude SF 2017: Nomad and next-gen application architectures
 
Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?
 
用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化用 OPENRNDR 將 Chatbot 訊息視覺化
用 OPENRNDR 將 Chatbot 訊息視覺化
 
Блохин Леонид - "Mist, как часть Hydrosphere"
Блохин Леонид - "Mist, как часть Hydrosphere"Блохин Леонид - "Mist, как часть Hydrosphere"
Блохин Леонид - "Mist, как часть Hydrosphere"
 

Recently uploaded

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Recently uploaded (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Programming the Cloud with Skywriting

  • 1. Programming the cloud
 with Skywriting" Derek Murray"
  • 2. Outline" •  Existing parallel programming models" •  Introduction to Skywriting" •  Ongoing work"
  • 3. SMP programming" •  Symmetric multiprocessing" –  All cores share the same address space" –  Usually assumes cache-coherency" •  Multi-threaded programs" –  Threads created dynamically" –  Shared, writable data structures" –  Synchronisation" •  Atomic compare-and-swap" •  Mutexes, Semaphores" •  {Software, Hardware} Transactional Memory"
  • 4. Distributed programming" •  Shared nothing*" –  Processors communicate by message passing" –  Standard assumption for large supercomputers" –  ...and data centres" –  ...and recent manycore machines (e.g. Intel SCC)" •  Explicit messages" –  MPI, Pregel, Actor-based" •  Implicit messages: task parallelism" –  MapReduce, Dryad"
  • 5. Task parallelism" •  Master-worker architecture" –  Master maintains task queue" –  Workers execute independent tasks in parallel" •  Fault tolerance" –  Re-execute tasks on failed workers" –  Speculatively re-execute “slow” tasks" •  Load balancing" –  Workers consume tasks at their own rate" –  Task granularity must be optimised"
  • 6. Task graph" A runs before B" A" B" B depends on A"
  • 7. MapReduce" •  Two kinds of task: map and reduce" •  User-specified map and reduce functions" –  map() a record to a list of key-value pairs" –  reduce() a key and the list of related values" •  Tasks apply functions to data partitions" M" R" M" R" M" R"
  • 8. Dryad" •  Task graph is first class" –  Vertices run arbitrary code" –  Multiple inputs and inputs" –  Channels specify data transport" •  Graph must be acyclic and finite" –  Permits topological sorting" –  Prevents unbounded iteration"
  • 9. Architecture" Code" Driver
 Results" program"
  • 10. while  (!converged)          do  work  in  parallel;  
  • 11. Existing systems" Code" Driver
 Results" program" Code" Driver program" Results" while  (…)   Code"  submitJob();   Results" Code" Results"
  • 12. Existing systems" Code" Driver
 Results" program" Code" Driver program" while  (…)    submitJob();  
  • 13. Skywriting" while  (…)    doStuff();   Code" Results" •  Turing-complete language for job specification" •  Whole job executed on the cluster"
  • 14. Spawning a Skywriting task" function  f(arg1,  arg2)  {  …  }   result  =  spawn(f,  [arg1,  arg2]);   //  result  is  a  “future”   value_of_result  =  *result;  
  • 15. Building a task graph" function  f(x,  y)  {  …  }   function  g(x,  y)  {  …  }   f   function  h(x,  y)  {  …  }   a   a   a  =  spawn(f,  [7,  8]);   g   g   b  =  spawn(g,  [a,  0]);   c  =  spawn(g,  [a,  1]);   d  =  spawn(h,  [b,  c]);   b   c   return  d;   h   d  
  • 16. Iterative algorithm" current  =  …;   do  {          prev  =  current;          a  =  spawn(f,  [prev,  0]);          b  =  spawn(f,  [prev,  1]);          c  =  spawn(f,  [prev,  2]);          current  =  spawn(g,  [a,  b,  c]);          done  =  spawn(h,  [current]);   while  (!*done);    
  • 17. Iterative algorithm" f   f   f   g   h   f   f   f  
  • 18. Aside: recursive algorithm" function  f(x)  {          if  (/*  x  is  small  enough  */)  {                  return  /*  do  something  with  x  */;          }  else  {                  x_lo  =  /*  bottom  half  of  x  */;                  x_hi  =  /*  top  half  of  x  */;                  return  [spawn(f,  [x_lo]),                                  spawn(f,  [x_hi])];          }   }  
  • 19. Performance case studies" •  All experiments used Amazon EC2" –  m1.small instances, running Ubuntu 8.10" •  Microbenchmark" •  Smith-Waterman"
  • 20. Job creation overhead" 60" Overhead (seconds)" 50" 40" 30" Hadoop" 20" Skywriting" 10" 0" 0" 20" 40" 60" 80" 100" Number of workers"
  • 23. Parallel Smith-Waterman" 350" 300" Time (seconds)" 250" 200" 150" 100" 50" 0" 1" 10" 100" 1000" 10000" Number of tasks"
  • 24. Future work: manycore" •  Trade-offs are different" –  Centralised master may become a bottleneck" –  Switch to local work-queues and work-stealing" –  Distributed scoreboards for futures" –  Optimised interpreter/compilation?" •  Multi-scale hybrid approaches" –  Multiple cores" –  Multiple machines" –  Multiple clouds..."
  • 25. Future work: message-passing" •  Language designed for batch processing" –  However, batches may be infinitely long!" •  Can we apply it to streaming data?" –  Log files" –  Financial reports" –  Sensor data" •  Can we include data dependencies?" –  High- and low-frequency streams"
  • 26. Conclusions" •  Turing-complete programming language for cloud computing" •  Runs real jobs with low overhead" •  Lots more still to do!"
  • 27. Questions?" •  Email" –  Derek.Murray@cl.cam.ac.uk" •  Project website" –  http://www.cl.cam.ac.uk/netos/skywriting/