SlideShare a Scribd company logo
01—Introduction 
Dataflow 
The Forgotten Way 
Dr Russel Winder 
russel@winder.org.uk 
@russel_winder 
http://www.russel.org.uk 
Copyright © 2014 Russel Winder 1 
Introduction 
Copyright © 2014 Russel Winder 2 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–01
01—Introduction 
Russel Winder — 1/2 
● Ex: 
– Theoretical physicist 
– UNIX system programmer 
– Academic (UCL, KCL) 
– Start-up CTO 
● Current: 
– Independent consultant 
– Analyst 
– Author 
– Expert witness 
– Trainer 
Copyright © 2014 Russel Winder 3 
Russel Winder — 2/2 
● Groovy 
– Groovy 
– GPars 
– GroovyFX 
– Gant 
● Java 
● Python 
– SCons 
– PythonCSP 
● D 
● Go 
● Kotlin 
● Ceylon 
● Rust 
● C++ 
FOSS activity 
Copyright © 2014 Russel Winder 4 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–02
01—Introduction 
Attenders 
● Name. 
● Rank. 
● Serial number. 
● Your programming 
background. 
● Why is this workshop 
interesting for you? 
Copyright © 2014 Russel Winder 5 
So what is dataflow? 
Copyright © 2014 Russel Winder 6 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–03
01—Introduction 
Dataflow 
● Originally a computer 
hardware architecture: 
– Manchester dataflow 
machine. 
J. R. Gurd, C. C. Kirkham, 
and I. Watson, CACM, 28(1), 
1985-01 
● Originally a systems 
analysis technique: 
– Tom DeMarco, 
Structured Analysis and 
System Specification, 
1979. 
Copyright © 2014 Russel Winder 7 
Event-based. 
Channels 
aka 
Flows 
Processes 
Processes process when data is ready on the input 
channels, putting data on the output channels. 
Copyright © 2014 Russel Winder 8 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–04
01—Introduction 
Concurrency and Parallelism Models 
● Actors 
● Data parallelism 
● Communicating 
Sequential Processes 
(CSP) 
● Dataflow 
Copyright © 2014 Russel Winder 9 
Why is dataflow forgotten? 
● Shared memory 
-multithreading: 
– People indoctrinated 
into thinking threads 
had to be explicitly 
managed in code. 
– Increasingly, thread 
pools, and work stealing, 
seen as a better model. 
● Actors: 
– A good and useful high 
level concurrency and 
parallelism architecture, 
but… 
– Has a very specific 
asynchronous underlying 
model, useful for some 
solutions, not other. 
Copyright © 2014 Russel Winder 10 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–05
01—Introduction 
This Workshop 
Play† with dataflow using: 
– Groovy 
– GPars 
– Java 
To investigate how useful hiding threads under a 
reactive process system can be. 
† It is mandatory that we have fun in this workshop. 
Copyright © 2014 Russel Winder 11 
Environment 
● Editing: 
– Emacs, VIM, Sublime 
Text, Notepad++,… 
– Eclipse, IntelliJ IDEA, 
Netbeans,… 
● Languages: 
– Java 8† 
– Groovy 2.3.6 (GPars is 
included :-) 
● Build: 
– Manual command line 
– Gradle 
† Java 7 allowed if you really have to. 
Using whatever Groovy 
and Java add-ins… 
Copyright © 2014 Russel Winder 12 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–06
01—Introduction 
Time to ensure we are all 
ready to do stuff… 
Copyright © 2014 Russel Winder 13 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–07
02—Dataflow 
Dataflow 
The Forgotten Way 
Dr Russel Winder 
russel@winder.org.uk 
@russel_winder 
http://www.russel.org.uk 
Copyright © 2014 Russel Winder 1 
Dataflow 
Copyright © 2014 Russel Winder 2 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 02–01
Event-based. 
02—Dataflow 
Channels 
aka 
Flows 
Processes 
Processes process when data is ready on the input 
channels, putting data on the output channels. 
Copyright © 2014 Russel Winder 3 
We need a problem… 
Copyright © 2014 Russel Winder 4 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 02–02
02—Dataflow 
Calculating Means 
● Mean of a set of data is: 
x=1 
n 
xi 
nΣi 
=1 
Copyright © 2014 Russel Winder 5 
Code… 
Copyright © 2014 Russel Winder 6 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 02–03
02—Dataflow 
Time to try something 
for ourselves… 
Copyright © 2014 Russel Winder 7 
Calculating Mean and 
Standard Deviation 
● Mean of a set of data is: 
● Standard deviation is: 
x=1n 
n 
xi 
Σi 
=1 
s=√ 1 
n 
(xi−x)2 
n−1Σi 
=1 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 02–04
02—Dataflow 
Calculating Mean and 
Standard Deviation 
● Mean of a set of data is: 
● Standard deviation is: 
x=1n 
n 
xi 
Σi 
=1 
s=√ 1 
n 
xi 
n−1 ((Σi 
=1 
2)−n x2) 
Code… 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 02–05
05—Closing 
Dataflow 
The Forgotten Way 
Dr Russel Winder 
russel@winder.org.uk 
@russel_winder 
http://www.russel.org.uk 
Copyright © 2014 Russel Winder 1 
Closing 
Copyright © 2014 Russel Winder 2 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 05–01
Event-based. 
05—Closing 
Channels 
aka 
Flows 
Processes 
Processes process when data is ready on the input 
channels, putting data on the output channels. 
Copyright © 2014 Russel Winder 3 
Keep the data 
flowing. 
Copyright
c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 05–02

More Related Content

Viewers also liked

Latest Developments in Technology Enabled Learning
Latest Developments in Technology Enabled LearningLatest Developments in Technology Enabled Learning
Latest Developments in Technology Enabled Learning
Robert Todd
 
veena resume
veena resumeveena resume
veena resume
Maryadha Reddy
 
повышение двигательной активности дошкольников
повышение двигательной активности дошкольников повышение двигательной активности дошкольников
повышение двигательной активности дошкольников m873371
 
Jess
JessJess
'Bootiful' Code with Spring Boot - Josh Long
'Bootiful' Code with Spring Boot - Josh Long'Bootiful' Code with Spring Boot - Josh Long
'Bootiful' Code with Spring Boot - Josh Long
ploibl
 
The Full Stack Java Developer - Josh Long
The Full Stack Java Developer - Josh LongThe Full Stack Java Developer - Josh Long
The Full Stack Java Developer - Josh Long
ploibl
 
Numerical analysis of Vertical Axis Wind Turbine
Numerical analysis of Vertical Axis Wind TurbineNumerical analysis of Vertical Axis Wind Turbine
Numerical analysis of Vertical Axis Wind Turbine
hasan47
 
Vigas y columnas
Vigas y columnasVigas y columnas

Viewers also liked (8)

Latest Developments in Technology Enabled Learning
Latest Developments in Technology Enabled LearningLatest Developments in Technology Enabled Learning
Latest Developments in Technology Enabled Learning
 
veena resume
veena resumeveena resume
veena resume
 
повышение двигательной активности дошкольников
повышение двигательной активности дошкольников повышение двигательной активности дошкольников
повышение двигательной активности дошкольников
 
Jess
JessJess
Jess
 
'Bootiful' Code with Spring Boot - Josh Long
'Bootiful' Code with Spring Boot - Josh Long'Bootiful' Code with Spring Boot - Josh Long
'Bootiful' Code with Spring Boot - Josh Long
 
The Full Stack Java Developer - Josh Long
The Full Stack Java Developer - Josh LongThe Full Stack Java Developer - Josh Long
The Full Stack Java Developer - Josh Long
 
Numerical analysis of Vertical Axis Wind Turbine
Numerical analysis of Vertical Axis Wind TurbineNumerical analysis of Vertical Axis Wind Turbine
Numerical analysis of Vertical Axis Wind Turbine
 
Vigas y columnas
Vigas y columnasVigas y columnas
Vigas y columnas
 

Similar to Dataflow, the Forgotten Way - Russel Winder

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
 
Making Python computations fast
Making Python computations fastMaking Python computations fast
Making Python computations fast
Russel Winder
 
Analyzing Hadoop Data Using Sparklyr

Analyzing Hadoop Data Using Sparklyr
Analyzing Hadoop Data Using Sparklyr

Analyzing Hadoop Data Using Sparklyr

Cloudera, Inc.
 
SQL vs. NoSQL
SQL vs. NoSQLSQL vs. NoSQL
SQL vs. NoSQL
Guido Schmutz
 
SQL vs. NoSQL
SQL vs. NoSQLSQL vs. NoSQL
SQL vs. NoSQL
Guido Schmutz
 
Data Science and CDSW
Data Science and CDSWData Science and CDSW
Data Science and CDSW
Jason Hubbard
 
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
 
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
 
GPars: Parallelism the Right Way
GPars: Parallelism the Right WayGPars: Parallelism the Right Way
GPars: Parallelism the Right Way
Russel Winder
 
Connext DDS Professional 5.1.0 Overview
Connext DDS Professional 5.1.0 OverviewConnext DDS Professional 5.1.0 Overview
Connext DDS Professional 5.1.0 Overview
Real-Time Innovations (RTI)
 
An Introduction to Hadoop and Cloudera: Nashville Cloudera User Group, 10/23/14
An Introduction to Hadoop and Cloudera: Nashville Cloudera User Group, 10/23/14An Introduction to Hadoop and Cloudera: Nashville Cloudera User Group, 10/23/14
An Introduction to Hadoop and Cloudera: Nashville Cloudera User Group, 10/23/14
iwrigley
 
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
 
Big Data Analytics with Spark
Big Data Analytics with SparkBig Data Analytics with Spark
Big Data Analytics with Spark
DataStax Academy
 
OpenStack in Action 4! Julien Niedergang - SUSE Cloud: Openstack Ready for En...
OpenStack in Action 4! Julien Niedergang - SUSE Cloud: Openstack Ready for En...OpenStack in Action 4! Julien Niedergang - SUSE Cloud: Openstack Ready for En...
OpenStack in Action 4! Julien Niedergang - SUSE Cloud: Openstack Ready for En...
eNovance
 
Reference Management Mini Course 2015: Slides_2_1_1
Reference Management Mini Course 2015: Slides_2_1_1Reference Management Mini Course 2015: Slides_2_1_1
Reference Management Mini Course 2015: Slides_2_1_1
Dasapta Erwin Irawan
 
Gyan_resume
Gyan_resumeGyan_resume
Gyan_resume
Gyan Pandey
 
FESCA 2015 keynote
FESCA 2015 keynoteFESCA 2015 keynote
FESCA 2015 keynote
Steffen Zschaler
 
What it takes to bring Hadoop to a production-ready state
What it takes to bring Hadoop to a production-ready stateWhat it takes to bring Hadoop to a production-ready state
What it takes to bring Hadoop to a production-ready state
ClouderaUserGroups
 
The Green Lab - [04-A] Lab environment and tools
The Green Lab - [04-A] Lab environment and toolsThe Green Lab - [04-A] Lab environment and tools
The Green Lab - [04-A] Lab environment and tools
Giuseppe Procaccianti
 
Introduing spark
Introduing sparkIntroduing spark
Introduing spark
Taotao Li
 

Similar to Dataflow, the Forgotten Way - Russel Winder (20)

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
 
Making Python computations fast
Making Python computations fastMaking Python computations fast
Making Python computations fast
 
Analyzing Hadoop Data Using Sparklyr

Analyzing Hadoop Data Using Sparklyr
Analyzing Hadoop Data Using Sparklyr

Analyzing Hadoop Data Using Sparklyr

 
SQL vs. NoSQL
SQL vs. NoSQLSQL vs. NoSQL
SQL vs. NoSQL
 
SQL vs. NoSQL
SQL vs. NoSQLSQL vs. NoSQL
SQL vs. NoSQL
 
Data Science and CDSW
Data Science and CDSWData Science and CDSW
Data Science and CDSW
 
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.
 
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.
 
GPars: Parallelism the Right Way
GPars: Parallelism the Right WayGPars: Parallelism the Right Way
GPars: Parallelism the Right Way
 
Connext DDS Professional 5.1.0 Overview
Connext DDS Professional 5.1.0 OverviewConnext DDS Professional 5.1.0 Overview
Connext DDS Professional 5.1.0 Overview
 
An Introduction to Hadoop and Cloudera: Nashville Cloudera User Group, 10/23/14
An Introduction to Hadoop and Cloudera: Nashville Cloudera User Group, 10/23/14An Introduction to Hadoop and Cloudera: Nashville Cloudera User Group, 10/23/14
An Introduction to Hadoop and Cloudera: Nashville Cloudera User Group, 10/23/14
 
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
 
Big Data Analytics with Spark
Big Data Analytics with SparkBig Data Analytics with Spark
Big Data Analytics with Spark
 
OpenStack in Action 4! Julien Niedergang - SUSE Cloud: Openstack Ready for En...
OpenStack in Action 4! Julien Niedergang - SUSE Cloud: Openstack Ready for En...OpenStack in Action 4! Julien Niedergang - SUSE Cloud: Openstack Ready for En...
OpenStack in Action 4! Julien Niedergang - SUSE Cloud: Openstack Ready for En...
 
Reference Management Mini Course 2015: Slides_2_1_1
Reference Management Mini Course 2015: Slides_2_1_1Reference Management Mini Course 2015: Slides_2_1_1
Reference Management Mini Course 2015: Slides_2_1_1
 
Gyan_resume
Gyan_resumeGyan_resume
Gyan_resume
 
FESCA 2015 keynote
FESCA 2015 keynoteFESCA 2015 keynote
FESCA 2015 keynote
 
What it takes to bring Hadoop to a production-ready state
What it takes to bring Hadoop to a production-ready stateWhat it takes to bring Hadoop to a production-ready state
What it takes to bring Hadoop to a production-ready state
 
The Green Lab - [04-A] Lab environment and tools
The Green Lab - [04-A] Lab environment and toolsThe Green Lab - [04-A] Lab environment and tools
The Green Lab - [04-A] Lab environment and tools
 
Introduing spark
Introduing sparkIntroduing spark
Introduing spark
 

Recently uploaded

Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
OECD Directorate for Financial and Enterprise Affairs
 
IEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdfIEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdf
Claudio Gallicchio
 
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdfBRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
Robin Haunschild
 
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdfWhy Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Ben Linders
 
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussionArtificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
The remarkable life of Sir Mokshagundam Visvesvaraya.pptx
The remarkable life of Sir Mokshagundam Visvesvaraya.pptxThe remarkable life of Sir Mokshagundam Visvesvaraya.pptx
The remarkable life of Sir Mokshagundam Visvesvaraya.pptx
JiteshKumarChoudhary2
 
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussionArtificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
Carrer goals.pptx and their importance in real life
Carrer goals.pptx  and their importance in real lifeCarrer goals.pptx  and their importance in real life
Carrer goals.pptx and their importance in real life
artemacademy2
 
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
OECD Directorate for Financial and Enterprise Affairs
 
Disaster Management project for holidays homework and other uses
Disaster Management project for holidays homework and other usesDisaster Management project for holidays homework and other uses
Disaster Management project for holidays homework and other uses
RIDHIMAGARG21
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf
Frederic Leger
 
ASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdfASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdf
ToshihiroIto4
 
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
OECD Directorate for Financial and Enterprise Affairs
 
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
gpww3sf4
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
OECD Directorate for Financial and Enterprise Affairs
 
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij
 
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie WellsCollapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Rosie Wells
 
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussionPro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 

Recently uploaded (20)

Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
 
IEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdfIEEE CIS Webinar Sustainable futures.pdf
IEEE CIS Webinar Sustainable futures.pdf
 
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdfBRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
BRIC_2024_2024-06-06-11:30-haunschild_archival_version.pdf
 
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdfWhy Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdf
 
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussionArtificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – OECD – June 2024 OECD discussion
 
The remarkable life of Sir Mokshagundam Visvesvaraya.pptx
The remarkable life of Sir Mokshagundam Visvesvaraya.pptxThe remarkable life of Sir Mokshagundam Visvesvaraya.pptx
The remarkable life of Sir Mokshagundam Visvesvaraya.pptx
 
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussionArtificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
 
Carrer goals.pptx and their importance in real life
Carrer goals.pptx  and their importance in real lifeCarrer goals.pptx  and their importance in real life
Carrer goals.pptx and their importance in real life
 
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
 
Disaster Management project for holidays homework and other uses
Disaster Management project for holidays homework and other usesDisaster Management project for holidays homework and other uses
Disaster Management project for holidays homework and other uses
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
 
2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf
 
ASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdfASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdf
 
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
 
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
 
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
 
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie WellsCollapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
 
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussionPro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
 

Dataflow, the Forgotten Way - Russel Winder

  • 1. 01—Introduction Dataflow The Forgotten Way Dr Russel Winder russel@winder.org.uk @russel_winder http://www.russel.org.uk Copyright © 2014 Russel Winder 1 Introduction Copyright © 2014 Russel Winder 2 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–01
  • 2. 01—Introduction Russel Winder — 1/2 ● Ex: – Theoretical physicist – UNIX system programmer – Academic (UCL, KCL) – Start-up CTO ● Current: – Independent consultant – Analyst – Author – Expert witness – Trainer Copyright © 2014 Russel Winder 3 Russel Winder — 2/2 ● Groovy – Groovy – GPars – GroovyFX – Gant ● Java ● Python – SCons – PythonCSP ● D ● Go ● Kotlin ● Ceylon ● Rust ● C++ FOSS activity Copyright © 2014 Russel Winder 4 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–02
  • 3. 01—Introduction Attenders ● Name. ● Rank. ● Serial number. ● Your programming background. ● Why is this workshop interesting for you? Copyright © 2014 Russel Winder 5 So what is dataflow? Copyright © 2014 Russel Winder 6 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–03
  • 4. 01—Introduction Dataflow ● Originally a computer hardware architecture: – Manchester dataflow machine. J. R. Gurd, C. C. Kirkham, and I. Watson, CACM, 28(1), 1985-01 ● Originally a systems analysis technique: – Tom DeMarco, Structured Analysis and System Specification, 1979. Copyright © 2014 Russel Winder 7 Event-based. Channels aka Flows Processes Processes process when data is ready on the input channels, putting data on the output channels. Copyright © 2014 Russel Winder 8 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–04
  • 5. 01—Introduction Concurrency and Parallelism Models ● Actors ● Data parallelism ● Communicating Sequential Processes (CSP) ● Dataflow Copyright © 2014 Russel Winder 9 Why is dataflow forgotten? ● Shared memory -multithreading: – People indoctrinated into thinking threads had to be explicitly managed in code. – Increasingly, thread pools, and work stealing, seen as a better model. ● Actors: – A good and useful high level concurrency and parallelism architecture, but… – Has a very specific asynchronous underlying model, useful for some solutions, not other. Copyright © 2014 Russel Winder 10 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–05
  • 6. 01—Introduction This Workshop Play† with dataflow using: – Groovy – GPars – Java To investigate how useful hiding threads under a reactive process system can be. † It is mandatory that we have fun in this workshop. Copyright © 2014 Russel Winder 11 Environment ● Editing: – Emacs, VIM, Sublime Text, Notepad++,… – Eclipse, IntelliJ IDEA, Netbeans,… ● Languages: – Java 8† – Groovy 2.3.6 (GPars is included :-) ● Build: – Manual command line – Gradle † Java 7 allowed if you really have to. Using whatever Groovy and Java add-ins… Copyright © 2014 Russel Winder 12 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–06
  • 7. 01—Introduction Time to ensure we are all ready to do stuff… Copyright © 2014 Russel Winder 13 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 01–07
  • 8. 02—Dataflow Dataflow The Forgotten Way Dr Russel Winder russel@winder.org.uk @russel_winder http://www.russel.org.uk Copyright © 2014 Russel Winder 1 Dataflow Copyright © 2014 Russel Winder 2 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 02–01
  • 9. Event-based. 02—Dataflow Channels aka Flows Processes Processes process when data is ready on the input channels, putting data on the output channels. Copyright © 2014 Russel Winder 3 We need a problem… Copyright © 2014 Russel Winder 4 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 02–02
  • 10. 02—Dataflow Calculating Means ● Mean of a set of data is: x=1 n xi nΣi =1 Copyright © 2014 Russel Winder 5 Code… Copyright © 2014 Russel Winder 6 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 02–03
  • 11. 02—Dataflow Time to try something for ourselves… Copyright © 2014 Russel Winder 7 Calculating Mean and Standard Deviation ● Mean of a set of data is: ● Standard deviation is: x=1n n xi Σi =1 s=√ 1 n (xi−x)2 n−1Σi =1 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 02–04
  • 12. 02—Dataflow Calculating Mean and Standard Deviation ● Mean of a set of data is: ● Standard deviation is: x=1n n xi Σi =1 s=√ 1 n xi n−1 ((Σi =1 2)−n x2) Code… Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 02–05
  • 13. 05—Closing Dataflow The Forgotten Way Dr Russel Winder russel@winder.org.uk @russel_winder http://www.russel.org.uk Copyright © 2014 Russel Winder 1 Closing Copyright © 2014 Russel Winder 2 Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 05–01
  • 14. Event-based. 05—Closing Channels aka Flows Processes Processes process when data is ready on the input channels, putting data on the output channels. Copyright © 2014 Russel Winder 3 Keep the data flowing. Copyright c 2014 Russel Winder Printed for JAXLondon 2014 Workshop 2014-10-13 05–02