# Follow along!
* :book: Link to slides : https://hackmd.io/@samialabed/r244_tutorail20
* :computer: [Colab](https://colab.research.google.com/github/samialabed/r244_dataflow_tutorial/blob/main/Dataflow_programming_using_TensorFlow_Student_Copy.ipynb)
---
## R244 Dataflow programming using TensorFlow
* Sami Alabed (sa894@cam.ac.uk)
* Dan Andrei Iliescu (dai24@cam.ac.uk)
* Eiko Yoneki
---
## What is happening today
- Experience with dataflow paradigm using TensorFlow.
- Use DataFlow to program a mini map-reduce on TensorFlow.
- Various extensions depending on your interest.
- We will be available via Zoom and Slack.
:::warning
Are you on Slack?
:::
---
# Background
---
## DataFlow program
- Programs as a directed graph. **Nodes** a unit of computation, **Edges** data dependencies.
- Data driven allowing for greater parallelism.
- Easier scheduling.
- Portability across languages.
Note:
parallelism or dependency driving scheduling
manner, e.g. using multiple GPUs on a single machine or even distribute the execution across multiple machines.
Another key advantage is portability. The graph is a language-independent representation of our code.
---
## DataFlow program example
- Example: $(X+Y) * (Y/10)$
```graphviz
digraph hierarchy {
X -> ADD -> MUL -> OUT
Y -> ADD
Y -> DIV
10 -> DIV
DIV -> MUL
}
```
---
## MapReduce
![](https://i.imgur.com/8TIVbIN.png)
Note:
Most popular example of data flow programming that enabled Google.
Allow you to schedule different operations on different machines.
Of course MapReduce framework itself has many optimization to avoid pitfalls but this is the high-level overview.
---
# The tutorial
---
## Slack
* You all should be on Slack by now, the primary way to orchestrate questions flow.
* Put your questions on ```#help``` channel. Andrei or I will answer you.
---
## Zoom breakout
* We will also do breakout rooms, one for each one of you.
![](https://i.imgur.com/RFCFEX0.png)
---
## Colab environment
* Collaborative Jupyter notebook.
* Make a copy of [Colab Link](https://colab.research.google.com/github/samialabed/r244_dataflow_tutorial/blob/main/Dataflow_programming_using_TensorFlow_Student_Copy.ipynb)
* All information on the notebook
:::info
Make sure to make a copy of the notebook to save your progress!
:::
---
# Wrap up
- Follow the tutorial on Colab.
- If you have a question or finished early let us know in the slack #help channel.
- Now breaking into rooms - each one of you in a separate room.
- We will call you back to the main room in an hour to check how is everyone feeling.
- Please if you have any feedback on the session let me know :) I hope you enjoy it.
{"metaMigratedAt":"2023-06-15T14:20:02.699Z","metaMigratedFrom":"YAML","title":"R244 Dataflow programming using TensorFlow","breaks":"true","description":"View the slide with \"Slide Mode\".","slideOptions":"{\"spotlight\":{\"enabled\":false}}","contributors":"[{\"id\":\"166613b9-e278-45c1-a4ac-d1bf4b9db9d4\",\"add\":10867,\"del\":8014}]"}