SlideShare a Scribd company logo
GPars 2014 
Dr Russel Winder 
russel@winder.org.uk 
@russel_winder 
http://www.russel.org.uk 
Copyright © 2014 Russel Winder 1
This is a sales pitch… 
Copyright © 2014 Russel Winder 2
This is a s✘ales pitch… 
Copyright © 2014 Russel Winder 3
This is a sales pitch… 
Copyright © 2014 Russel Winder 4
This is breaking news… 
Copyright © 2014 Russel Winder 5
It's new… 
Copyright © 2014 Russel Winder 6
It's improved… 
Copyright © 2014 Russel Winder 7
It's… 
Copyright © 2014 Russel Winder 8
Copyright © 2014 Russel Winder 9
Thanks to GSoC 2014, 
Rafał Sławik 
built on a partial implementation by 
Alex Tkachman. 
Copyright © 2014 Russel Winder 10
Remote Objects 
Copyright © 2014 Russel Winder 11
GPars already has single JVM 
concurrency and parallelism. 
You can use it from Java 
as well as Groovy. 
Copyright © 2014 Russel Winder 12
GPars now has remote objects. 
Realized by using Netty. 
Copyright © 2014 Russel Winder 13
Actors 
Independent processes 
communicating via 
asynchronous exchange 
of messages. 
Dataflow 
Operators connected by 
channels with activity 
triggered by arrival of 
data on the channels. 
Data Parallelism 
Transform a sequence to 
another sequence where all 
individual actions happen 
at the same time. 
CSP 
Operators connected by 
channels with activity 
triggered by arrival of 
data on the channels. 
Copyright © 2014 Russel Winder 14
Active Objects 
An object that is actually 
an actor but looks like a 
full service object. 
Agents 
A wrapper for some 
shared mutable state. 
Fork/Join 
An toolkit for tree structured 
concurrency and parallelism. 
Software Transactional Memory 
Wrappers for mutable values that uses transactions 
rather than locks. 
Copyright © 2014 Russel Winder 15
Actors 
Independent processes 
communicating via 
asynchronous exchange 
of messages. 
Dataflow 
Operators connected by 
channels with activity 
triggered by arrival of 
data on the channels. 
Data Parallelism 
Transform a sequence to 
another sequence where all 
individual actions happen 
at the same time. 
CSP 
Operators connected by 
channels with activity 
triggered by arrival of 
data on the channels. 
Copyright © 2014 Russel Winder 16
Data Parallelism 
Transform a sequence to 
another sequence where all 
individual actions happen 
at the same time. 
Copyright © 2014 Russel Winder 17
Dataflow 
Operators connected by 
channels with activity 
triggered by arrival of 
data on the channels. 
Copyright © 2014 Russel Winder 18
CSP 
Sequential processes 
communicating by 
sending messages on 
channels. 
Copyright © 2014 Russel Winder 19
Actors 
Independent processes 
communicating via 
asynchronous exchange 
of messages. 
Copyright © 2014 Russel Winder 20
Actors 
Independent processes 
communicating via 
asynchronous exchange 
of messages. 
Dataflow 
Operators connected by 
channels with activity 
triggered by arrival of 
data on the channels. 
Data Parallelism 
Transform a sequence to 
another sequence where 
all individual actions 
happen at the same time. 
CSP 
Operators connected by 
channels with activity 
triggered by arrival of 
data on the channels. 
Copyright © 2014 Russel Winder 21
Copyright © 2014 Russel Winder 22
Copyright © 2014 Russel Winder 23
Copyright © 2014 Russel Winder 24
Hadoop 
Copyright © 2014 Russel Winder 25
Copyright © 2014 Russel Winder 26
Copyright © 2014 Russel Winder 27
Service Oriented Architecture 
Copyright © 2014 Russel Winder 28
Services 
Copyright © 2014 Russel Winder 29
Micro-Services 
Copyright © 2014 Russel Winder 30
Pico-Services 
Copyright © 2014 Russel Winder 31
No HTTP, Web, port 80, HTML, CSS.. 
Copyright © 2014 Russel Winder 32
Copyright © 2014 Russel Winder 33
GPars 
Dr Russel Winder 
russel@winder.org.uk 
@russel_winder 
http://www.russel.org.uk 
Copyright © 2014 Russel Winder 34

More Related Content

What's hot

What's New in Go Crypto - Gotham Go
What's New in Go Crypto - Gotham GoWhat's New in Go Crypto - Gotham Go
What's New in Go Crypto - Gotham Go
Nick Sullivan
 
The STARS Shared Initiative - Pablo de Castro and Jackie Proven
The STARS Shared Initiative - Pablo de Castro and Jackie ProvenThe STARS Shared Initiative - Pablo de Castro and Jackie Proven
The STARS Shared Initiative - Pablo de Castro and Jackie Proven
Repository Fringe
 
Overview and Opentracing in theory by Gianluca Arbezzano
Overview and Opentracing in theory by Gianluca ArbezzanoOverview and Opentracing in theory by Gianluca Arbezzano
Overview and Opentracing in theory by Gianluca Arbezzano
Gianluca Arbezzano
 
Monitoring kubernetes across data center and cloud
Monitoring kubernetes across data center and cloudMonitoring kubernetes across data center and cloud
Monitoring kubernetes across data center and cloud
Datadog
 
Bringing Elliptic Curve Cryptography into the Mainstream
Bringing Elliptic Curve Cryptography into the MainstreamBringing Elliptic Curve Cryptography into the Mainstream
Bringing Elliptic Curve Cryptography into the Mainstream
Nick Sullivan
 
Events and metrics the Lifeblood of Webops
Events and metrics the Lifeblood of WebopsEvents and metrics the Lifeblood of Webops
Events and metrics the Lifeblood of Webops
Datadog
 
Lifting the Blinds: Monitoring Windows Server 2012
Lifting the Blinds: Monitoring Windows Server 2012Lifting the Blinds: Monitoring Windows Server 2012
Lifting the Blinds: Monitoring Windows Server 2012
Datadog
 
Weave Cortex: Multi-tenant, horizontally scalable Prometheus as a Service
Weave Cortex: Multi-tenant, horizontally scalable Prometheus as a ServiceWeave Cortex: Multi-tenant, horizontally scalable Prometheus as a Service
Weave Cortex: Multi-tenant, horizontally scalable Prometheus as a Service
Weaveworks
 

What's hot (8)

What's New in Go Crypto - Gotham Go
What's New in Go Crypto - Gotham GoWhat's New in Go Crypto - Gotham Go
What's New in Go Crypto - Gotham Go
 
The STARS Shared Initiative - Pablo de Castro and Jackie Proven
The STARS Shared Initiative - Pablo de Castro and Jackie ProvenThe STARS Shared Initiative - Pablo de Castro and Jackie Proven
The STARS Shared Initiative - Pablo de Castro and Jackie Proven
 
Overview and Opentracing in theory by Gianluca Arbezzano
Overview and Opentracing in theory by Gianluca ArbezzanoOverview and Opentracing in theory by Gianluca Arbezzano
Overview and Opentracing in theory by Gianluca Arbezzano
 
Monitoring kubernetes across data center and cloud
Monitoring kubernetes across data center and cloudMonitoring kubernetes across data center and cloud
Monitoring kubernetes across data center and cloud
 
Bringing Elliptic Curve Cryptography into the Mainstream
Bringing Elliptic Curve Cryptography into the MainstreamBringing Elliptic Curve Cryptography into the Mainstream
Bringing Elliptic Curve Cryptography into the Mainstream
 
Events and metrics the Lifeblood of Webops
Events and metrics the Lifeblood of WebopsEvents and metrics the Lifeblood of Webops
Events and metrics the Lifeblood of Webops
 
Lifting the Blinds: Monitoring Windows Server 2012
Lifting the Blinds: Monitoring Windows Server 2012Lifting the Blinds: Monitoring Windows Server 2012
Lifting the Blinds: Monitoring Windows Server 2012
 
Weave Cortex: Multi-tenant, horizontally scalable Prometheus as a Service
Weave Cortex: Multi-tenant, horizontally scalable Prometheus as a ServiceWeave Cortex: Multi-tenant, horizontally scalable Prometheus as a Service
Weave Cortex: Multi-tenant, horizontally scalable Prometheus as a Service
 

Viewers also liked

Gpars Workshop 2014
Gpars Workshop 2014Gpars Workshop 2014
Gpars Workshop 2014
Mario García
 
concurrency with GPars
concurrency with GParsconcurrency with GPars
concurrency with GPars
Paul King
 
Dataflow: the concurrency/parallelism architecture you need
Dataflow: the concurrency/parallelism architecture you needDataflow: the concurrency/parallelism architecture you need
Dataflow: the concurrency/parallelism architecture you need
Russel Winder
 
GPars (Groovy Parallel Systems)
GPars (Groovy Parallel Systems)GPars (Groovy Parallel Systems)
GPars (Groovy Parallel Systems)
Gagan Agrawal
 
GPARS: Lessons from the parallel universe - Itamar Tayer, CoolaData
GPARS: Lessons from the parallel universe - Itamar Tayer, CoolaDataGPARS: Lessons from the parallel universe - Itamar Tayer, CoolaData
GPARS: Lessons from the parallel universe - Itamar Tayer, CoolaData
Codemotion Tel Aviv
 
groovy and concurrency
groovy and concurrencygroovy and concurrency
groovy and concurrency
Paul King
 

Viewers also liked (6)

Gpars Workshop 2014
Gpars Workshop 2014Gpars Workshop 2014
Gpars Workshop 2014
 
concurrency with GPars
concurrency with GParsconcurrency with GPars
concurrency with GPars
 
Dataflow: the concurrency/parallelism architecture you need
Dataflow: the concurrency/parallelism architecture you needDataflow: the concurrency/parallelism architecture you need
Dataflow: the concurrency/parallelism architecture you need
 
GPars (Groovy Parallel Systems)
GPars (Groovy Parallel Systems)GPars (Groovy Parallel Systems)
GPars (Groovy Parallel Systems)
 
GPARS: Lessons from the parallel universe - Itamar Tayer, CoolaData
GPARS: Lessons from the parallel universe - Itamar Tayer, CoolaDataGPARS: Lessons from the parallel universe - Itamar Tayer, CoolaData
GPARS: Lessons from the parallel universe - Itamar Tayer, CoolaData
 
groovy and concurrency
groovy and concurrencygroovy and concurrency
groovy and concurrency
 

Similar to GPars 2014

RTI Connext 5.1.0
RTI Connext 5.1.0RTI Connext 5.1.0
RTI Connext 5.1.0
Jan Van Bruaene
 
Emc vi pr hdfs data service technical overview
Emc vi pr hdfs data service technical overviewEmc vi pr hdfs data service technical overview
Emc vi pr hdfs data service technical overview
solarisyougood
 
Emc vi pr hdfs data service technical overview
Emc vi pr hdfs data service technical overviewEmc vi pr hdfs data service technical overview
Emc vi pr hdfs data service technical overview
solarisyougood
 
Application patterns
Application patternsApplication patterns
Application patterns
tomi vanek
 
Why Go is an important programming language
Why Go is an important programming languageWhy Go is an important programming language
Why Go is an important programming language
Russel Winder
 
Chris Swan's CloudExpo Europe presentation "Waves of adoption for Network Fun...
Chris Swan's CloudExpo Europe presentation "Waves of adoption for Network Fun...Chris Swan's CloudExpo Europe presentation "Waves of adoption for Network Fun...
Chris Swan's CloudExpo Europe presentation "Waves of adoption for Network Fun...
Cohesive Networks
 
SDN Service Provider Use Cases
SDN Service Provider Use CasesSDN Service Provider Use Cases
SDN Service Provider Use Cases
SDxCentral
 
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
Real-Time Innovations (RTI)
 
Cloud Computing and the Promise of Everything as a Service
Cloud Computing and the Promise of Everything as a ServiceCloud Computing and the Promise of Everything as a Service
Cloud Computing and the Promise of Everything as a Service
Lew Tucker
 
Druid: Sub-Second OLAP queries over Petabytes of Streaming Data
Druid: Sub-Second OLAP queries over Petabytes of Streaming DataDruid: Sub-Second OLAP queries over Petabytes of Streaming Data
Druid: Sub-Second OLAP queries over Petabytes of Streaming Data
DataWorks Summit
 
Building a Common Message Solution with MongoDB at Vertafore
Building a Common Message Solution with MongoDB at VertaforeBuilding a Common Message Solution with MongoDB at Vertafore
Building a Common Message Solution with MongoDB at Vertafore
MongoDB
 
PLNOG14: SteelCentral NPM Solution - Tomasz Winiarski
PLNOG14: SteelCentral NPM Solution - Tomasz WiniarskiPLNOG14: SteelCentral NPM Solution - Tomasz Winiarski
PLNOG14: SteelCentral NPM Solution - Tomasz Winiarski
PROIDEA
 
Hortonworks sqrrl webinar v5.pptx
Hortonworks sqrrl webinar v5.pptxHortonworks sqrrl webinar v5.pptx
Hortonworks sqrrl webinar v5.pptx
Hortonworks
 
Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)Krunal Jain
 
Accelerating SDN Applications with Open Source Network Overlays
Accelerating SDN Applications with Open Source Network OverlaysAccelerating SDN Applications with Open Source Network Overlays
Accelerating SDN Applications with Open Source Network Overlays
Cumulus Networks
 
FusionLayer - Network provisioning, automation, and control for private datac...
FusionLayer - Network provisioning, automation, and control for private datac...FusionLayer - Network provisioning, automation, and control for private datac...
FusionLayer - Network provisioning, automation, and control for private datac...
FusionLayer Inc.
 
OpenStack Ottawa MeetUp - April 3rd 2018
OpenStack Ottawa MeetUp - April 3rd 2018OpenStack Ottawa MeetUp - April 3rd 2018
OpenStack Ottawa MeetUp - April 3rd 2018
Stacy Véronneau
 
Infatuation Leads to Love — How Container Orchestration and Federation Enable...
Infatuation Leads to Love — How Container Orchestration and Federation Enable...Infatuation Leads to Love — How Container Orchestration and Federation Enable...
Infatuation Leads to Love — How Container Orchestration and Federation Enable...
Dana Gardner
 
SDN and NFV: Facts, Extensions, and Carrier Opportunities
SDN and NFV: Facts, Extensions, and Carrier OpportunitiesSDN and NFV: Facts, Extensions, and Carrier Opportunities
SDN and NFV: Facts, Extensions, and Carrier Opportunities
rjain51
 
SDN use cases_2014
SDN use cases_2014SDN use cases_2014
SDN use cases_2014
Nimit Shishodia
 

Similar to GPars 2014 (20)

RTI Connext 5.1.0
RTI Connext 5.1.0RTI Connext 5.1.0
RTI Connext 5.1.0
 
Emc vi pr hdfs data service technical overview
Emc vi pr hdfs data service technical overviewEmc vi pr hdfs data service technical overview
Emc vi pr hdfs data service technical overview
 
Emc vi pr hdfs data service technical overview
Emc vi pr hdfs data service technical overviewEmc vi pr hdfs data service technical overview
Emc vi pr hdfs data service technical overview
 
Application patterns
Application patternsApplication patterns
Application patterns
 
Why Go is an important programming language
Why Go is an important programming languageWhy Go is an important programming language
Why Go is an important programming language
 
Chris Swan's CloudExpo Europe presentation "Waves of adoption for Network Fun...
Chris Swan's CloudExpo Europe presentation "Waves of adoption for Network Fun...Chris Swan's CloudExpo Europe presentation "Waves of adoption for Network Fun...
Chris Swan's CloudExpo Europe presentation "Waves of adoption for Network Fun...
 
SDN Service Provider Use Cases
SDN Service Provider Use CasesSDN Service Provider Use Cases
SDN Service Provider Use Cases
 
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
Build Safe & Secure Distributed Systems - RTI Huntsville Roadshow- 2014 09 25
 
Cloud Computing and the Promise of Everything as a Service
Cloud Computing and the Promise of Everything as a ServiceCloud Computing and the Promise of Everything as a Service
Cloud Computing and the Promise of Everything as a Service
 
Druid: Sub-Second OLAP queries over Petabytes of Streaming Data
Druid: Sub-Second OLAP queries over Petabytes of Streaming DataDruid: Sub-Second OLAP queries over Petabytes of Streaming Data
Druid: Sub-Second OLAP queries over Petabytes of Streaming Data
 
Building a Common Message Solution with MongoDB at Vertafore
Building a Common Message Solution with MongoDB at VertaforeBuilding a Common Message Solution with MongoDB at Vertafore
Building a Common Message Solution with MongoDB at Vertafore
 
PLNOG14: SteelCentral NPM Solution - Tomasz Winiarski
PLNOG14: SteelCentral NPM Solution - Tomasz WiniarskiPLNOG14: SteelCentral NPM Solution - Tomasz Winiarski
PLNOG14: SteelCentral NPM Solution - Tomasz Winiarski
 
Hortonworks sqrrl webinar v5.pptx
Hortonworks sqrrl webinar v5.pptxHortonworks sqrrl webinar v5.pptx
Hortonworks sqrrl webinar v5.pptx
 
Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)
 
Accelerating SDN Applications with Open Source Network Overlays
Accelerating SDN Applications with Open Source Network OverlaysAccelerating SDN Applications with Open Source Network Overlays
Accelerating SDN Applications with Open Source Network Overlays
 
FusionLayer - Network provisioning, automation, and control for private datac...
FusionLayer - Network provisioning, automation, and control for private datac...FusionLayer - Network provisioning, automation, and control for private datac...
FusionLayer - Network provisioning, automation, and control for private datac...
 
OpenStack Ottawa MeetUp - April 3rd 2018
OpenStack Ottawa MeetUp - April 3rd 2018OpenStack Ottawa MeetUp - April 3rd 2018
OpenStack Ottawa MeetUp - April 3rd 2018
 
Infatuation Leads to Love — How Container Orchestration and Federation Enable...
Infatuation Leads to Love — How Container Orchestration and Federation Enable...Infatuation Leads to Love — How Container Orchestration and Federation Enable...
Infatuation Leads to Love — How Container Orchestration and Federation Enable...
 
SDN and NFV: Facts, Extensions, and Carrier Opportunities
SDN and NFV: Facts, Extensions, and Carrier OpportunitiesSDN and NFV: Facts, Extensions, and Carrier Opportunities
SDN and NFV: Facts, Extensions, and Carrier Opportunities
 
SDN use cases_2014
SDN use cases_2014SDN use cases_2014
SDN use cases_2014
 

More from Russel Winder

On Concurrency and Parallelism in the JVMverse
On Concurrency and Parallelism in the JVMverseOn Concurrency and Parallelism in the JVMverse
On Concurrency and Parallelism in the JVMverse
Russel Winder
 
The Case for Kotlin and Ceylon
The Case for Kotlin and CeylonThe Case for Kotlin and Ceylon
The Case for Kotlin and Ceylon
Russel Winder
 
On the Architectures of Microservices: the next layer
On the Architectures of Microservices: the next layerOn the Architectures of Microservices: the next layer
On the Architectures of Microservices: the next layer
Russel Winder
 
Fast Python? Don't Bother
Fast Python? Don't BotherFast Python? Don't Bother
Fast Python? Don't Bother
Russel Winder
 
Making Python computations fast
Making Python computations fastMaking Python computations fast
Making Python computations fast
Russel Winder
 
Tales from the Workshops
Tales from the WorkshopsTales from the Workshops
Tales from the Workshops
Russel Winder
 
Making Computations Execute Very Quickly
Making Computations Execute Very QuicklyMaking Computations Execute Very Quickly
Making Computations Execute Very Quickly
Russel Winder
 
Java is Dead, Long Live Ceylon, Kotlin, etc
Java is Dead,  Long Live Ceylon, Kotlin, etcJava is Dead,  Long Live Ceylon, Kotlin, etc
Java is Dead, Long Live Ceylon, Kotlin, etc
Russel Winder
 
Java is dead, long live Scala, Kotlin, Ceylon, etc.
Java is dead, long live Scala, Kotlin, Ceylon, etc.Java is dead, long live Scala, Kotlin, Ceylon, etc.
Java is dead, long live Scala, Kotlin, Ceylon, etc.
Russel Winder
 
Spocktacular testing
Spocktacular testingSpocktacular testing
Spocktacular testing
Russel Winder
 
Spocktacular Testing
Spocktacular TestingSpocktacular Testing
Spocktacular Testing
Russel Winder
 
Is Groovy static or dynamic
Is Groovy static or dynamicIs Groovy static or dynamic
Is Groovy static or dynamic
Russel Winder
 
Java is dead, long live Scala Kotlin Ceylon etc.
Java is dead, long live Scala Kotlin Ceylon etc.Java is dead, long live Scala Kotlin Ceylon etc.
Java is dead, long live Scala Kotlin Ceylon etc.
Russel Winder
 
Are Go and D threats to Python
Are Go and D threats to PythonAre Go and D threats to Python
Are Go and D threats to Python
Russel Winder
 
Is Groovy as fast as Java
Is Groovy as fast as JavaIs Groovy as fast as Java
Is Groovy as fast as Java
Russel Winder
 
Who needs C++ when you have D and Go
Who needs C++ when you have D and GoWho needs C++ when you have D and Go
Who needs C++ when you have D and Go
Russel Winder
 
Java 8: a New Beginning
Java 8: a New BeginningJava 8: a New Beginning
Java 8: a New Beginning
Russel Winder
 
GPars: Groovy Parallelism for Java
GPars: Groovy Parallelism for JavaGPars: Groovy Parallelism for Java
GPars: Groovy Parallelism for Java
Russel Winder
 
GroovyFX: or how to program JavaFX easily
GroovyFX: or how to program JavaFX easily GroovyFX: or how to program JavaFX easily
GroovyFX: or how to program JavaFX easily
Russel Winder
 
Switch to Python 3…now…immediately
Switch to Python 3…now…immediatelySwitch to Python 3…now…immediately
Switch to Python 3…now…immediately
Russel Winder
 

More from Russel Winder (20)

On Concurrency and Parallelism in the JVMverse
On Concurrency and Parallelism in the JVMverseOn Concurrency and Parallelism in the JVMverse
On Concurrency and Parallelism in the JVMverse
 
The Case for Kotlin and Ceylon
The Case for Kotlin and CeylonThe Case for Kotlin and Ceylon
The Case for Kotlin and Ceylon
 
On the Architectures of Microservices: the next layer
On the Architectures of Microservices: the next layerOn the Architectures of Microservices: the next layer
On the Architectures of Microservices: the next layer
 
Fast Python? Don't Bother
Fast Python? Don't BotherFast Python? Don't Bother
Fast Python? Don't Bother
 
Making Python computations fast
Making Python computations fastMaking Python computations fast
Making Python computations fast
 
Tales from the Workshops
Tales from the WorkshopsTales from the Workshops
Tales from the Workshops
 
Making Computations Execute Very Quickly
Making Computations Execute Very QuicklyMaking Computations Execute Very Quickly
Making Computations Execute Very Quickly
 
Java is Dead, Long Live Ceylon, Kotlin, etc
Java is Dead,  Long Live Ceylon, Kotlin, etcJava is Dead,  Long Live Ceylon, Kotlin, etc
Java is Dead, Long Live Ceylon, Kotlin, etc
 
Java is dead, long live Scala, Kotlin, Ceylon, etc.
Java is dead, long live Scala, Kotlin, Ceylon, etc.Java is dead, long live Scala, Kotlin, Ceylon, etc.
Java is dead, long live Scala, Kotlin, Ceylon, etc.
 
Spocktacular testing
Spocktacular testingSpocktacular testing
Spocktacular testing
 
Spocktacular Testing
Spocktacular TestingSpocktacular Testing
Spocktacular Testing
 
Is Groovy static or dynamic
Is Groovy static or dynamicIs Groovy static or dynamic
Is Groovy static or dynamic
 
Java is dead, long live Scala Kotlin Ceylon etc.
Java is dead, long live Scala Kotlin Ceylon etc.Java is dead, long live Scala Kotlin Ceylon etc.
Java is dead, long live Scala Kotlin Ceylon etc.
 
Are Go and D threats to Python
Are Go and D threats to PythonAre Go and D threats to Python
Are Go and D threats to Python
 
Is Groovy as fast as Java
Is Groovy as fast as JavaIs Groovy as fast as Java
Is Groovy as fast as Java
 
Who needs C++ when you have D and Go
Who needs C++ when you have D and GoWho needs C++ when you have D and Go
Who needs C++ when you have D and Go
 
Java 8: a New Beginning
Java 8: a New BeginningJava 8: a New Beginning
Java 8: a New Beginning
 
GPars: Groovy Parallelism for Java
GPars: Groovy Parallelism for JavaGPars: Groovy Parallelism for Java
GPars: Groovy Parallelism for Java
 
GroovyFX: or how to program JavaFX easily
GroovyFX: or how to program JavaFX easily GroovyFX: or how to program JavaFX easily
GroovyFX: or how to program JavaFX easily
 
Switch to Python 3…now…immediately
Switch to Python 3…now…immediatelySwitch to Python 3…now…immediately
Switch to Python 3…now…immediately
 

Recently uploaded

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 

Recently uploaded (20)

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 

GPars 2014

  • 1. GPars 2014 Dr Russel Winder russel@winder.org.uk @russel_winder http://www.russel.org.uk Copyright © 2014 Russel Winder 1
  • 2. This is a sales pitch… Copyright © 2014 Russel Winder 2
  • 3. This is a s✘ales pitch… Copyright © 2014 Russel Winder 3
  • 4. This is a sales pitch… Copyright © 2014 Russel Winder 4
  • 5. This is breaking news… Copyright © 2014 Russel Winder 5
  • 6. It's new… Copyright © 2014 Russel Winder 6
  • 7. It's improved… Copyright © 2014 Russel Winder 7
  • 8. It's… Copyright © 2014 Russel Winder 8
  • 9. Copyright © 2014 Russel Winder 9
  • 10. Thanks to GSoC 2014, Rafał Sławik built on a partial implementation by Alex Tkachman. Copyright © 2014 Russel Winder 10
  • 11. Remote Objects Copyright © 2014 Russel Winder 11
  • 12. GPars already has single JVM concurrency and parallelism. You can use it from Java as well as Groovy. Copyright © 2014 Russel Winder 12
  • 13. GPars now has remote objects. Realized by using Netty. Copyright © 2014 Russel Winder 13
  • 14. Actors Independent processes communicating via asynchronous exchange of messages. Dataflow Operators connected by channels with activity triggered by arrival of data on the channels. Data Parallelism Transform a sequence to another sequence where all individual actions happen at the same time. CSP Operators connected by channels with activity triggered by arrival of data on the channels. Copyright © 2014 Russel Winder 14
  • 15. Active Objects An object that is actually an actor but looks like a full service object. Agents A wrapper for some shared mutable state. Fork/Join An toolkit for tree structured concurrency and parallelism. Software Transactional Memory Wrappers for mutable values that uses transactions rather than locks. Copyright © 2014 Russel Winder 15
  • 16. Actors Independent processes communicating via asynchronous exchange of messages. Dataflow Operators connected by channels with activity triggered by arrival of data on the channels. Data Parallelism Transform a sequence to another sequence where all individual actions happen at the same time. CSP Operators connected by channels with activity triggered by arrival of data on the channels. Copyright © 2014 Russel Winder 16
  • 17. Data Parallelism Transform a sequence to another sequence where all individual actions happen at the same time. Copyright © 2014 Russel Winder 17
  • 18. Dataflow Operators connected by channels with activity triggered by arrival of data on the channels. Copyright © 2014 Russel Winder 18
  • 19. CSP Sequential processes communicating by sending messages on channels. Copyright © 2014 Russel Winder 19
  • 20. Actors Independent processes communicating via asynchronous exchange of messages. Copyright © 2014 Russel Winder 20
  • 21. Actors Independent processes communicating via asynchronous exchange of messages. Dataflow Operators connected by channels with activity triggered by arrival of data on the channels. Data Parallelism Transform a sequence to another sequence where all individual actions happen at the same time. CSP Operators connected by channels with activity triggered by arrival of data on the channels. Copyright © 2014 Russel Winder 21
  • 22. Copyright © 2014 Russel Winder 22
  • 23. Copyright © 2014 Russel Winder 23
  • 24. Copyright © 2014 Russel Winder 24
  • 25. Hadoop Copyright © 2014 Russel Winder 25
  • 26. Copyright © 2014 Russel Winder 26
  • 27. Copyright © 2014 Russel Winder 27
  • 28. Service Oriented Architecture Copyright © 2014 Russel Winder 28
  • 29. Services Copyright © 2014 Russel Winder 29
  • 30. Micro-Services Copyright © 2014 Russel Winder 30
  • 31. Pico-Services Copyright © 2014 Russel Winder 31
  • 32. No HTTP, Web, port 80, HTML, CSS.. Copyright © 2014 Russel Winder 32
  • 33. Copyright © 2014 Russel Winder 33
  • 34. GPars Dr Russel Winder russel@winder.org.uk @russel_winder http://www.russel.org.uk Copyright © 2014 Russel Winder 34