SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Parallel Computing Scenarios
and the new challenges for the Software Architect




Fabrizio Giudici        Emmanuele Sordini
Tidalwave s.a.s.        BloomingStars.com
880
2




Goals of this presentation
> Parallel/distributed computing has been around for decades
  – Mainly in some niches (science, military, finance)
  – Seti@Home, BOINC, ... paved the way for the rest of the world
> It's going to become important for “general” software architects
  – Because of recent technology evolution
  – From (maybe) scared customers to new business opportunities
> Learn how to design WORA parallel applications
  – Exploiting parallelism in different scenarios
  – Good design, patterns, technologies
3




AGENDA
>   MOTIVATIONS
>   CASE STUDY
>   ARCHITECTURE
>   CONCLUSION
4




Motivations
> User's need grow
  – Demand for increased
     computing power
  – Multimedia processing
  – Also on the desktop
> Technological challenges
  – Multi-core computers (10s of cores        from Computer Architecture,
     in a few years, clock stable or              a Quantitative approach:
                                              Patterson & Hennessy, 2006
     decreasing)
> New opportunities
  – Easy “local mini grids“ (e.g Jini, Rio)
  – Massive grid computing as a
     service (e.g. Sun Grid)
5




Jini, Rio, Sun Grid
> Jini
  – A Java technology for creating “federations of services“
  – Spontaneous networking, discovery, mobile code
  – http://www.jini.org
> Rio
  – Based on Jini
  – Adds container / component paradigm, Quality of Service, etc...
  – http://rio.dev.java.net
> Sun Grid
  – A massive (1.000s nodes) grid platform accessible as a service
  – $1 / CPU / hour
  – Since May 2007 available in 24 countries outside USA
  – http://www.network.com
6




Parallel computing: easy or hard?
> Harder than single-thread computing
> Largely depends on the context
  – Course grain
  – Fine grain
> Future language enhancements?
  – Java syntax extensions
  – New languages
  – Virtual Machine optimizations (transparent to code?)
> Let's focus on what we have now
  – Design
  – Architecture
  – Patterns
7




An important point: ROI
> In the past distributed computing required ad-hoc hardware
  – Highly expensive
  – High start-up costs
  – Strive for high parallelism exploitation to justify costs
       50% efficiency with 100.000€ expense means 50.000€ wasted
> Today is different
  – Local “mini grids” can be easily set up with standard hardware
  – Large facilities available as a service on a “pay-per-hour” basis
> A different ROI policy
  – No or negligible start-up costs
  – Probably you can live with medium efficiency in parallelism exploitation
       50% efficiency on the Sun Grid means $1 per hour wasted
8




AGENDA
>   MOTIVATIONS
>   CASE STUDY
>   ARCHITECTURE
>   CONCLUSION
9




Case study
> Concrete problem and potential community
  – To be addressed with state-of-the art design
  – Focused on image processing, but many things are general purpose
> Different scenarios considered
  – Single core, multi-core
  – “Local mini grids” made with Jini and Rio
  – Sun Grid
> Mistral – the imaging framework
  – http://mistral.tidalwave.it
> Pleiades – the application
  – http://pleiades.bloomingstars.com
10




Hires imaging of solar system bodies
> For decades only with pro equipment
> Since 90s within the reach of amateurs
  – availability of decent quality optics
  – good cameras at reasonable prices
> Key concept
  – take multiple exposures
  – stack and align them
  – improve S/N ratio by averaging
> Bottom line: consumer's perspective fit with the scenario
  – Recall previous slide about users and computing power
11




Algorithm
12




Parallel decomposition
13




AGENDA
>   MOTIVATIONS
>   CASE STUDY
>   ARCHITECTURE
>   CONCLUSION
14




Mistral
> Abstract Imaging layer
  – Wraps Java2D, JAI, ImageJ, others
> Flexible
  – Operations and/or engines can be plugged in
> Versatile Imaging Processor
  – Based on the Master/Worker pattern
> Built-in support for profiling
  – Benchmarking is a must
15




Mistral ImageProcessor
> Master / Worker pattern
> Polymorphic implementation
  – Local (multi core)
  – Rio
  – Sun Grid
> Images wrapped in an opaque
  container (EditableImage)
16




Phase controller
reference = createReference();

for each image
  {
    schedule new RegisterTask(image, reference);
  }

when (at least 2 RegisterTasks completed)
  {
    image1 = registerTask1.getResult();
    image2 = registerTask2.getResult();
    schedule new AddTask(image1, image2);
  }

when (at least 2 AddTasks completed)
  {
    image1 = addTask1.getResult();
    image2 = addTask2.getResult();
    schedule new AddTask(image1, image2);
  }

// Detects last phase
when (no more pending tasks && only 1 completed AddTask has not been processed)
  {
    sumImage = addTask.getResult();
    normalize(sumImage);
    return;
  }
17




Best practices
> Fallacies #2, #3 of distributed computing
  – “Latency is zero”
  – “Bandwidth is infinite”
> In other words
  – Don't pretend the network is not there
  – Serialization overhead is an issue
> Memory is also a problem
  – Memory is not infinite
  – Typical of imaging or large-datasets problems
  – Was not an issue with sequential processing
       Queuing intermediate results vs process one by one
18




Adapt to scenarios
> Consume results as soon as possible
  – Avoid accumulation of idle results in queues
  – Post tasks with priority
> Adapt the most to the environment capabilities
  – Synthetic images are re-computed at each node
  – Filesystem-based exchange is used when NFS is available (e.g. Sun Grid)
  – Distributed image cache otherwise
  – Optimized routing
19




EditableImage serialization
> Opaque holder of the real image
> Each instance has its own unique UUID
  – Serializable – but only moves UUID around
> NFS implementation
  – Each serialized image gets stored on the disk
  – Upon use on a remote node, it is loaded from the disk
> Otherwise
  – Images are pulled from a distributed cache
  – Pull vs push approach for cache
20




Optimized routing
> Optimize scheduling to minimize data motion
  – Multi-phase: the operands come from a previous phase
  – For instance, while adding two images
> The scheduler
  – Queries the pending Task about the needed images
  – Looks up the distributed image cache
  – Finds the node where most of needed images are
  – Schedule the task to that node
21




AGENDA
>   MOTIVATIONS
>   CASE STUDY
>   ARCHITECTURE
>   CONCLUSION
22




Conclusion
> Parallel computing is coming among us
  – Hard, but in reach
  – It's an opportunity, not a scary thing
> In different fashions
  – Multi core
  – Local mini grids (Jini, Rio)
  – Massive grids as a facility (Sun Grid)
> Can be dealt with more patterns in our catalog
> You don't need always the “optimal” solution
  – Just pull most out of the CPUs with trade-off design
23




Desktop too – and demo
> Mistral and Pleiades
  integrated in blueMarine, a
  desktop photo application
> Demos at Jazoon:
  – “blueMarine - a desktop
      app for the open source
      photographic workflow“
  – Tuesday, 2007-06-26,
      12:00 - 12:50, Arena 2
  – Thursday, 2007-06-28,
      14:00 - 14:50, Arena 1
24




Q&A
> Question time
Fabrizio Giudici    www.tidalwave.it
Tidalwave s.a.s     fabrizio.giudici@tidalwave.it


Emmanuele Sordini   www.bloomingstars.com
                    emmanuele@sordini.com

Weitere ähnliche Inhalte

Was ist angesagt?

Gpu and The Brick Wall
Gpu and The Brick WallGpu and The Brick Wall
Gpu and The Brick Wallugur candan
 
graphics processing unit ppt
graphics processing unit pptgraphics processing unit ppt
graphics processing unit pptNitesh Dubey
 
Cloud computing technology
Cloud computing technologyCloud computing technology
Cloud computing technologyRubaNagarajan
 
Nvidia (History, GPU Architecture and New Pascal Architecture)
Nvidia (History, GPU Architecture and New Pascal Architecture)Nvidia (History, GPU Architecture and New Pascal Architecture)
Nvidia (History, GPU Architecture and New Pascal Architecture)Saksham Tanwar
 
GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)self employed
 
Virtualization in cloud computing
Virtualization in cloud computingVirtualization in cloud computing
Virtualization in cloud computingRubaNagarajan
 
Gpu Systems
Gpu SystemsGpu Systems
Gpu Systemsjpaugh
 
Graphics processing unit ppt
Graphics processing unit pptGraphics processing unit ppt
Graphics processing unit pptSandeep Singh
 
High performance computing with accelarators
High performance computing with accelaratorsHigh performance computing with accelarators
High performance computing with accelaratorsEmmanuel college
 
Graphic Processing Unit
Graphic Processing UnitGraphic Processing Unit
Graphic Processing UnitKamran Ashraf
 

Was ist angesagt? (12)

Gpu and The Brick Wall
Gpu and The Brick WallGpu and The Brick Wall
Gpu and The Brick Wall
 
graphics processing unit ppt
graphics processing unit pptgraphics processing unit ppt
graphics processing unit ppt
 
Cloud computing technology
Cloud computing technologyCloud computing technology
Cloud computing technology
 
Nvidia (History, GPU Architecture and New Pascal Architecture)
Nvidia (History, GPU Architecture and New Pascal Architecture)Nvidia (History, GPU Architecture and New Pascal Architecture)
Nvidia (History, GPU Architecture and New Pascal Architecture)
 
GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)GRAPHICS PROCESSING UNIT (GPU)
GRAPHICS PROCESSING UNIT (GPU)
 
Virtualization in cloud computing
Virtualization in cloud computingVirtualization in cloud computing
Virtualization in cloud computing
 
Gpu Systems
Gpu SystemsGpu Systems
Gpu Systems
 
Graphics processing unit ppt
Graphics processing unit pptGraphics processing unit ppt
Graphics processing unit ppt
 
GPU Algorithms and trends 2018
GPU Algorithms and trends 2018GPU Algorithms and trends 2018
GPU Algorithms and trends 2018
 
High performance computing with accelarators
High performance computing with accelaratorsHigh performance computing with accelarators
High performance computing with accelarators
 
Graphic Processing Unit
Graphic Processing UnitGraphic Processing Unit
Graphic Processing Unit
 
Lec04 gpu architecture
Lec04 gpu architectureLec04 gpu architecture
Lec04 gpu architecture
 

Andere mochten auch

AMS 250 - High-Performance, Massively Parallel Computing with FLASH
AMS 250 - High-Performance, Massively Parallel Computing with FLASH AMS 250 - High-Performance, Massively Parallel Computing with FLASH
AMS 250 - High-Performance, Massively Parallel Computing with FLASH dongwook159
 
Parallel architecture-programming
Parallel architecture-programmingParallel architecture-programming
Parallel architecture-programmingShaveta Banda
 
Full introduction to_parallel_computing
Full introduction to_parallel_computingFull introduction to_parallel_computing
Full introduction to_parallel_computingSupasit Kajkamhaeng
 
Parallel Wireless: Rural HetNet Case Study
Parallel Wireless: Rural HetNet Case StudyParallel Wireless: Rural HetNet Case Study
Parallel Wireless: Rural HetNet Case StudySmall Cell Forum
 
SRS FOR CHAT APPLICATION
SRS FOR CHAT APPLICATIONSRS FOR CHAT APPLICATION
SRS FOR CHAT APPLICATIONAtul Kushwaha
 
A project report on chat application
A project report on chat applicationA project report on chat application
A project report on chat applicationKumar Gaurav
 

Andere mochten auch (10)

AMS 250 - High-Performance, Massively Parallel Computing with FLASH
AMS 250 - High-Performance, Massively Parallel Computing with FLASH AMS 250 - High-Performance, Massively Parallel Computing with FLASH
AMS 250 - High-Performance, Massively Parallel Computing with FLASH
 
GPU Computing
GPU ComputingGPU Computing
GPU Computing
 
Parallel architecture-programming
Parallel architecture-programmingParallel architecture-programming
Parallel architecture-programming
 
Full introduction to_parallel_computing
Full introduction to_parallel_computingFull introduction to_parallel_computing
Full introduction to_parallel_computing
 
Parallel Wireless: Rural HetNet Case Study
Parallel Wireless: Rural HetNet Case StudyParallel Wireless: Rural HetNet Case Study
Parallel Wireless: Rural HetNet Case Study
 
Router architectures in no c
Router architectures in no cRouter architectures in no c
Router architectures in no c
 
Chat application
Chat applicationChat application
Chat application
 
Parallel Computing
Parallel ComputingParallel Computing
Parallel Computing
 
SRS FOR CHAT APPLICATION
SRS FOR CHAT APPLICATIONSRS FOR CHAT APPLICATION
SRS FOR CHAT APPLICATION
 
A project report on chat application
A project report on chat applicationA project report on chat application
A project report on chat application
 

Ähnlich wie Parallel Computing Scenarios and the new challenges for the Software Architect

blueMarine a desktop app for the open source photographic workflow
blueMarine  a desktop app for the open source photographic workflowblueMarine  a desktop app for the open source photographic workflow
blueMarine a desktop app for the open source photographic workflowFabrizio Giudici
 
OpenNebula out in the Open, Ander Astudillo, SURFsara
OpenNebula out in the Open, Ander Astudillo, SURFsaraOpenNebula out in the Open, Ander Astudillo, SURFsara
OpenNebula out in the Open, Ander Astudillo, SURFsaraOpenNebula Project
 
A Container-based Sizing Framework for Apache Hadoop/Spark Clusters
A Container-based Sizing Framework for Apache Hadoop/Spark ClustersA Container-based Sizing Framework for Apache Hadoop/Spark Clusters
A Container-based Sizing Framework for Apache Hadoop/Spark ClustersDataWorks Summit/Hadoop Summit
 
Introduction to parallel_computing
Introduction to parallel_computingIntroduction to parallel_computing
Introduction to parallel_computingMehul Patel
 
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)Budianto Tandianus
 
Expectations for optical network from the viewpoint of system software research
Expectations for optical network from the viewpoint of system software researchExpectations for optical network from the viewpoint of system software research
Expectations for optical network from the viewpoint of system software researchRyousei Takano
 
EEDC Intelligent Placement of Datacenters
EEDC Intelligent Placement of DatacentersEEDC Intelligent Placement of Datacenters
EEDC Intelligent Placement of DatacentersRoger Rafanell Mas
 
Journey to Containerized Application / Google Container Engine
Journey to Containerized Application / Google Container EngineJourney to Containerized Application / Google Container Engine
Journey to Containerized Application / Google Container EngineGoogle Cloud Platform - Japan
 
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...EUDAT
 
PACT19, MOSAIC : Heterogeneity-, Communication-, and Constraint-Aware Model ...
PACT19, MOSAIC : Heterogeneity-, Communication-, and Constraint-Aware Model ...PACT19, MOSAIC : Heterogeneity-, Communication-, and Constraint-Aware Model ...
PACT19, MOSAIC : Heterogeneity-, Communication-, and Constraint-Aware Model ...jemin lee
 
数据中心网络研究:机遇与挑战
数据中心网络研究:机遇与挑战数据中心网络研究:机遇与挑战
数据中心网络研究:机遇与挑战Weiwei Fang
 
The world is the computer and the programmer is you
The world is the computer and the programmer is youThe world is the computer and the programmer is you
The world is the computer and the programmer is youDavide Carboni
 
Introduction to NetBSD kernel
Introduction to NetBSD kernelIntroduction to NetBSD kernel
Introduction to NetBSD kernelMahendra M
 
Cloud Computing Berkeley.pdf
Cloud Computing Berkeley.pdfCloud Computing Berkeley.pdf
Cloud Computing Berkeley.pdfAtaulAzizIkram
 
Virtualisation For Network Testing & Staff Training
Virtualisation For Network Testing & Staff TrainingVirtualisation For Network Testing & Staff Training
Virtualisation For Network Testing & Staff TrainingAPNIC
 
Performance and Scale: Billions of request per day (DDD2019)
Performance and Scale: Billions of request per day (DDD2019)Performance and Scale: Billions of request per day (DDD2019)
Performance and Scale: Billions of request per day (DDD2019)Marcel Dempers
 

Ähnlich wie Parallel Computing Scenarios and the new challenges for the Software Architect (20)

blueMarine a desktop app for the open source photographic workflow
blueMarine  a desktop app for the open source photographic workflowblueMarine  a desktop app for the open source photographic workflow
blueMarine a desktop app for the open source photographic workflow
 
OpenNebula out in the Open, Ander Astudillo, SURFsara
OpenNebula out in the Open, Ander Astudillo, SURFsaraOpenNebula out in the Open, Ander Astudillo, SURFsara
OpenNebula out in the Open, Ander Astudillo, SURFsara
 
A Container-based Sizing Framework for Apache Hadoop/Spark Clusters
A Container-based Sizing Framework for Apache Hadoop/Spark ClustersA Container-based Sizing Framework for Apache Hadoop/Spark Clusters
A Container-based Sizing Framework for Apache Hadoop/Spark Clusters
 
Introduction to parallel_computing
Introduction to parallel_computingIntroduction to parallel_computing
Introduction to parallel_computing
 
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
 
Expectations for optical network from the viewpoint of system software research
Expectations for optical network from the viewpoint of system software researchExpectations for optical network from the viewpoint of system software research
Expectations for optical network from the viewpoint of system software research
 
EEDC Intelligent Placement of Datacenters
EEDC Intelligent Placement of DatacentersEEDC Intelligent Placement of Datacenters
EEDC Intelligent Placement of Datacenters
 
Journey to Containerized Application / Google Container Engine
Journey to Containerized Application / Google Container EngineJourney to Containerized Application / Google Container Engine
Journey to Containerized Application / Google Container Engine
 
Exascale Capabl
Exascale CapablExascale Capabl
Exascale Capabl
 
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...
High Performance & High Throughput Computing - EUDAT Summer School (Giuseppe ...
 
Unit-1 ESD.pptx
Unit-1 ESD.pptxUnit-1 ESD.pptx
Unit-1 ESD.pptx
 
PACT19, MOSAIC : Heterogeneity-, Communication-, and Constraint-Aware Model ...
PACT19, MOSAIC : Heterogeneity-, Communication-, and Constraint-Aware Model ...PACT19, MOSAIC : Heterogeneity-, Communication-, and Constraint-Aware Model ...
PACT19, MOSAIC : Heterogeneity-, Communication-, and Constraint-Aware Model ...
 
数据中心网络研究:机遇与挑战
数据中心网络研究:机遇与挑战数据中心网络研究:机遇与挑战
数据中心网络研究:机遇与挑战
 
The world is the computer and the programmer is you
The world is the computer and the programmer is youThe world is the computer and the programmer is you
The world is the computer and the programmer is you
 
Introduction to NetBSD kernel
Introduction to NetBSD kernelIntroduction to NetBSD kernel
Introduction to NetBSD kernel
 
Cloud Computing Berkeley.pdf
Cloud Computing Berkeley.pdfCloud Computing Berkeley.pdf
Cloud Computing Berkeley.pdf
 
Building a Front End for a Sensor Data Cloud
Building a Front End for a Sensor Data CloudBuilding a Front End for a Sensor Data Cloud
Building a Front End for a Sensor Data Cloud
 
Virtualisation For Network Testing & Staff Training
Virtualisation For Network Testing & Staff TrainingVirtualisation For Network Testing & Staff Training
Virtualisation For Network Testing & Staff Training
 
OpenDS_Jazoon2010
OpenDS_Jazoon2010OpenDS_Jazoon2010
OpenDS_Jazoon2010
 
Performance and Scale: Billions of request per day (DDD2019)
Performance and Scale: Billions of request per day (DDD2019)Performance and Scale: Billions of request per day (DDD2019)
Performance and Scale: Billions of request per day (DDD2019)
 

Mehr von Fabrizio Giudici

Building Android apps with Maven
Building Android apps with MavenBuilding Android apps with Maven
Building Android apps with MavenFabrizio Giudici
 
DCI - Data, Context and Interaction @ Jug Lugano May 2011
DCI - Data, Context and Interaction @ Jug Lugano May 2011 DCI - Data, Context and Interaction @ Jug Lugano May 2011
DCI - Data, Context and Interaction @ Jug Lugano May 2011 Fabrizio Giudici
 
DCI - Data, Context and Interaction @ Jug Genova April 2011
DCI - Data, Context and Interaction @ Jug Genova April 2011DCI - Data, Context and Interaction @ Jug Genova April 2011
DCI - Data, Context and Interaction @ Jug Genova April 2011Fabrizio Giudici
 
NOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case studyNOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case studyFabrizio Giudici
 
Tools for an effective software factory
Tools for an effective software factoryTools for an effective software factory
Tools for an effective software factoryFabrizio Giudici
 
blueMarine photographic workflow with Java
blueMarine photographic workflow with JavablueMarine photographic workflow with Java
blueMarine photographic workflow with JavaFabrizio Giudici
 
blueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans PlatformblueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans PlatformFabrizio Giudici
 
NASA World Wind for Java API Overview
NASA World Wind for Java  API OverviewNASA World Wind for Java  API Overview
NASA World Wind for Java API OverviewFabrizio Giudici
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans Fabrizio Giudici
 
Web Development with Apache Struts 2
Web Development with  Apache Struts 2Web Development with  Apache Struts 2
Web Development with Apache Struts 2Fabrizio Giudici
 
blueMarine Or Why You Should Really Ship Swing Applications
blueMarine  Or Why You Should Really Ship Swing  Applications blueMarine  Or Why You Should Really Ship Swing  Applications
blueMarine Or Why You Should Really Ship Swing Applications Fabrizio Giudici
 
Designing a JavaFX Mobile application
Designing a JavaFX Mobile applicationDesigning a JavaFX Mobile application
Designing a JavaFX Mobile applicationFabrizio Giudici
 
Android java fx-jme@jug-lugano
Android java fx-jme@jug-luganoAndroid java fx-jme@jug-lugano
Android java fx-jme@jug-luganoFabrizio Giudici
 

Mehr von Fabrizio Giudici (16)

Building Android apps with Maven
Building Android apps with MavenBuilding Android apps with Maven
Building Android apps with Maven
 
DCI - Data, Context and Interaction @ Jug Lugano May 2011
DCI - Data, Context and Interaction @ Jug Lugano May 2011 DCI - Data, Context and Interaction @ Jug Lugano May 2011
DCI - Data, Context and Interaction @ Jug Lugano May 2011
 
DCI - Data, Context and Interaction @ Jug Genova April 2011
DCI - Data, Context and Interaction @ Jug Genova April 2011DCI - Data, Context and Interaction @ Jug Genova April 2011
DCI - Data, Context and Interaction @ Jug Genova April 2011
 
NOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case studyNOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case study
 
Netbeans+platform+maven
Netbeans+platform+mavenNetbeans+platform+maven
Netbeans+platform+maven
 
Tools for an effective software factory
Tools for an effective software factoryTools for an effective software factory
Tools for an effective software factory
 
blueMarine photographic workflow with Java
blueMarine photographic workflow with JavablueMarine photographic workflow with Java
blueMarine photographic workflow with Java
 
blueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans PlatformblueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans Platform
 
NASA World Wind for Java API Overview
NASA World Wind for Java  API OverviewNASA World Wind for Java  API Overview
NASA World Wind for Java API Overview
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans
 
The VRC Project
The VRC ProjectThe VRC Project
The VRC Project
 
Web Development with Apache Struts 2
Web Development with  Apache Struts 2Web Development with  Apache Struts 2
Web Development with Apache Struts 2
 
blueMarine Or Why You Should Really Ship Swing Applications
blueMarine  Or Why You Should Really Ship Swing  Applications blueMarine  Or Why You Should Really Ship Swing  Applications
blueMarine Or Why You Should Really Ship Swing Applications
 
Designing a JavaFX Mobile application
Designing a JavaFX Mobile applicationDesigning a JavaFX Mobile application
Designing a JavaFX Mobile application
 
Android java fx-jme@jug-lugano
Android java fx-jme@jug-luganoAndroid java fx-jme@jug-lugano
Android java fx-jme@jug-lugano
 
Mercurial
MercurialMercurial
Mercurial
 

Kürzlich hochgeladen

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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
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 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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
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
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Kürzlich hochgeladen (20)

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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
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 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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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...
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Parallel Computing Scenarios and the new challenges for the Software Architect

  • 1. Parallel Computing Scenarios and the new challenges for the Software Architect Fabrizio Giudici Emmanuele Sordini Tidalwave s.a.s. BloomingStars.com 880
  • 2. 2 Goals of this presentation > Parallel/distributed computing has been around for decades – Mainly in some niches (science, military, finance) – Seti@Home, BOINC, ... paved the way for the rest of the world > It's going to become important for “general” software architects – Because of recent technology evolution – From (maybe) scared customers to new business opportunities > Learn how to design WORA parallel applications – Exploiting parallelism in different scenarios – Good design, patterns, technologies
  • 3. 3 AGENDA > MOTIVATIONS > CASE STUDY > ARCHITECTURE > CONCLUSION
  • 4. 4 Motivations > User's need grow – Demand for increased computing power – Multimedia processing – Also on the desktop > Technological challenges – Multi-core computers (10s of cores from Computer Architecture, in a few years, clock stable or a Quantitative approach: Patterson & Hennessy, 2006 decreasing) > New opportunities – Easy “local mini grids“ (e.g Jini, Rio) – Massive grid computing as a service (e.g. Sun Grid)
  • 5. 5 Jini, Rio, Sun Grid > Jini – A Java technology for creating “federations of services“ – Spontaneous networking, discovery, mobile code – http://www.jini.org > Rio – Based on Jini – Adds container / component paradigm, Quality of Service, etc... – http://rio.dev.java.net > Sun Grid – A massive (1.000s nodes) grid platform accessible as a service – $1 / CPU / hour – Since May 2007 available in 24 countries outside USA – http://www.network.com
  • 6. 6 Parallel computing: easy or hard? > Harder than single-thread computing > Largely depends on the context – Course grain – Fine grain > Future language enhancements? – Java syntax extensions – New languages – Virtual Machine optimizations (transparent to code?) > Let's focus on what we have now – Design – Architecture – Patterns
  • 7. 7 An important point: ROI > In the past distributed computing required ad-hoc hardware – Highly expensive – High start-up costs – Strive for high parallelism exploitation to justify costs  50% efficiency with 100.000€ expense means 50.000€ wasted > Today is different – Local “mini grids” can be easily set up with standard hardware – Large facilities available as a service on a “pay-per-hour” basis > A different ROI policy – No or negligible start-up costs – Probably you can live with medium efficiency in parallelism exploitation  50% efficiency on the Sun Grid means $1 per hour wasted
  • 8. 8 AGENDA > MOTIVATIONS > CASE STUDY > ARCHITECTURE > CONCLUSION
  • 9. 9 Case study > Concrete problem and potential community – To be addressed with state-of-the art design – Focused on image processing, but many things are general purpose > Different scenarios considered – Single core, multi-core – “Local mini grids” made with Jini and Rio – Sun Grid > Mistral – the imaging framework – http://mistral.tidalwave.it > Pleiades – the application – http://pleiades.bloomingstars.com
  • 10. 10 Hires imaging of solar system bodies > For decades only with pro equipment > Since 90s within the reach of amateurs – availability of decent quality optics – good cameras at reasonable prices > Key concept – take multiple exposures – stack and align them – improve S/N ratio by averaging > Bottom line: consumer's perspective fit with the scenario – Recall previous slide about users and computing power
  • 13. 13 AGENDA > MOTIVATIONS > CASE STUDY > ARCHITECTURE > CONCLUSION
  • 14. 14 Mistral > Abstract Imaging layer – Wraps Java2D, JAI, ImageJ, others > Flexible – Operations and/or engines can be plugged in > Versatile Imaging Processor – Based on the Master/Worker pattern > Built-in support for profiling – Benchmarking is a must
  • 15. 15 Mistral ImageProcessor > Master / Worker pattern > Polymorphic implementation – Local (multi core) – Rio – Sun Grid > Images wrapped in an opaque container (EditableImage)
  • 16. 16 Phase controller reference = createReference(); for each image { schedule new RegisterTask(image, reference); } when (at least 2 RegisterTasks completed) { image1 = registerTask1.getResult(); image2 = registerTask2.getResult(); schedule new AddTask(image1, image2); } when (at least 2 AddTasks completed) { image1 = addTask1.getResult(); image2 = addTask2.getResult(); schedule new AddTask(image1, image2); } // Detects last phase when (no more pending tasks && only 1 completed AddTask has not been processed) { sumImage = addTask.getResult(); normalize(sumImage); return; }
  • 17. 17 Best practices > Fallacies #2, #3 of distributed computing – “Latency is zero” – “Bandwidth is infinite” > In other words – Don't pretend the network is not there – Serialization overhead is an issue > Memory is also a problem – Memory is not infinite – Typical of imaging or large-datasets problems – Was not an issue with sequential processing  Queuing intermediate results vs process one by one
  • 18. 18 Adapt to scenarios > Consume results as soon as possible – Avoid accumulation of idle results in queues – Post tasks with priority > Adapt the most to the environment capabilities – Synthetic images are re-computed at each node – Filesystem-based exchange is used when NFS is available (e.g. Sun Grid) – Distributed image cache otherwise – Optimized routing
  • 19. 19 EditableImage serialization > Opaque holder of the real image > Each instance has its own unique UUID – Serializable – but only moves UUID around > NFS implementation – Each serialized image gets stored on the disk – Upon use on a remote node, it is loaded from the disk > Otherwise – Images are pulled from a distributed cache – Pull vs push approach for cache
  • 20. 20 Optimized routing > Optimize scheduling to minimize data motion – Multi-phase: the operands come from a previous phase – For instance, while adding two images > The scheduler – Queries the pending Task about the needed images – Looks up the distributed image cache – Finds the node where most of needed images are – Schedule the task to that node
  • 21. 21 AGENDA > MOTIVATIONS > CASE STUDY > ARCHITECTURE > CONCLUSION
  • 22. 22 Conclusion > Parallel computing is coming among us – Hard, but in reach – It's an opportunity, not a scary thing > In different fashions – Multi core – Local mini grids (Jini, Rio) – Massive grids as a facility (Sun Grid) > Can be dealt with more patterns in our catalog > You don't need always the “optimal” solution – Just pull most out of the CPUs with trade-off design
  • 23. 23 Desktop too – and demo > Mistral and Pleiades integrated in blueMarine, a desktop photo application > Demos at Jazoon: – “blueMarine - a desktop app for the open source photographic workflow“ – Tuesday, 2007-06-26, 12:00 - 12:50, Arena 2 – Thursday, 2007-06-28, 14:00 - 14:50, Arena 1
  • 25. Fabrizio Giudici www.tidalwave.it Tidalwave s.a.s fabrizio.giudici@tidalwave.it Emmanuele Sordini www.bloomingstars.com emmanuele@sordini.com