Skip to content

Commit 7e64b1d

Browse files
committed
default highlight
1 parent 0083d32 commit 7e64b1d

File tree

8 files changed

+60
-29
lines changed

8 files changed

+60
-29
lines changed

_quarto.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ format:
1919
logo: images/HITS_RGB_eng.jpg
2020
footer: "ML Workflow Orchestration (Bernd Doser, HITS)"
2121
slide-number: true
22-
highlight-style: a11y
22+
# highlight-style: a11y
2323
# code-block-height: 650px
2424
# width: 1300

flyte.qmd

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,26 +49,36 @@ def mean(values: List[float]) -> float:
4949

5050
## Flyte Workflows
5151

52-
- Workflows doesn’t perform computations it’s used to structure tasks
52+
Workflows are used to structure the task execution graph
5353

54-
```python
54+
<!-- ```python
5555
workflow_outputs = typing.NamedTuple(
5656
"WorkflowOutputs",
5757
simwords=Dict[str, float],
5858
distance=float,
5959
topics=Dict[int, List[str]],
6060
)
61+
``` -->
62+
63+
::: {style="font-size: 80%;"}
64+
``` {.python}
65+
@task
66+
def generate_processed_corpus() -> List[List[str]]:
6167
6268
@workflow
63-
def nlp_workflow(target_word: str = "computer") -> workflow_outputs:
69+
def nlp_workflow(target_word: str = "computer") -> [Dict[str, float], float, Dict[int, List[str]]]:
6470
corpus = generate_processed_corpus()
6571
model_wv = train_word2vec_model(training_data=corpus, hyperparams=Word2VecModelHyperparams())
6672
lda_topics = train_lda_model(corpus=corpus, hyperparams=LDAModelHyperparams())
6773
similar_words = word_similarities(model_ser=model_wv.model, word=target_word)
6874
distance = word_movers_distance(model_ser=model_wv.model)
6975
return similar_words, distance, lda_topics
7076
```
77+
:::
7178

79+
::: aside
80+
[Source](https://docs.flyte.org/en/latest/flytesnacks/examples/nlp_processing/word2vec_and_lda.html)
81+
:::
7282

7383
## Containerized Tasks
7484

@@ -77,7 +87,7 @@ A Flyte task operates within its own container and runs on a Kubernetes pod
7787
![](images/union_tasks.png){fig-align="center"}
7888

7989

80-
## ImageSpec
90+
## Container Image Specifications
8191

8292
- Customize the container image without a Dockerfile
8393
- Container image is build at registration and pushed to a container registry
@@ -101,7 +111,6 @@ custom_image = ImageSpec(
101111
- Clone and recover executions
102112

103113

104-
## Flyte Demo
114+
# [Flyte Demo](https://github.com/BerndDoser/flyte-mnist)
105115

106-
- [GitHub repo](https://github.com/BerndDoser/flyte-mnist)
107-
- [PyTorch MNIST Classifier](https://docs.flyte.org/en/latest/flytesnacks/examples/mnist_classifier/pytorch_single_node_and_gpu.html)
116+
<!-- - [PyTorch MNIST Classifier](https://docs.flyte.org/en/latest/flytesnacks/examples/mnist_classifier/pytorch_single_node_and_gpu.html) -->

hpc-ai.qmd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Infrastructure for Machine Learning Workflows
2-
## {background-image="images/ai_vs_hpc.png"}
2+
## {background-image="images/ai_vs_hpc.png" transition="fade"}
33

44
[The background image was generated with FLUX on fal.ai\
55
using the prompt 'Visualize two worlds showing the difference between HPC and AI infrastructure']{.top_white}
@@ -10,7 +10,7 @@ using the prompt 'Visualize two worlds showing the difference between HPC and AI
1010
::: {layout='[1,1]' layout-valign=center}
1111
::: n1
1212

13-
- SLURM
13+
- Slurm
1414
- MPI
1515
- File Storage
1616

images/flyte-test-setup.svg

Lines changed: 1 addition & 1 deletion
Loading

images/projectx.svg

Lines changed: 1 addition & 1 deletion
Loading

index.qmd

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
## Agenda
22

3-
- General Overview to Workflow Orchestration
3+
- Introduction to Workflow Orchestration
4+
5+
. . .
6+
47
- Solutions for Workflow Orchestration
58
- StreamFlow
69
- Flyte
10+
11+
. . .
12+
713
- Infrastructure for Machine Learning Workflows
814
- HPC vs AI/ML
915
- File vs Object Storage

streamflow.qmd

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
- Kubernetes
1111

1212
::: {.callout-note}
13-
[BioExcel Building Blocks](https://bioexcel.eu/biobb-new/) is a **showpiece** using CWL for biomolecular simulation.
13+
[BioExcel Building Blocks](https://bioexcel.eu/biobb-new/) is a great example using CWL for biomolecular simulation.
1414
:::
1515

1616

@@ -27,10 +27,13 @@ From [StreamFlow documentation](https://streamflow.di.unito.it/documentation/0.2
2727

2828
::: {layout='[1,1]'}
2929
::: n1
30+
::: {style="font-size: 80%;"}
3031
``` {.yaml filename="workflow.cwl"}
3132
{{< include code/workflow.cwl >}}
3233
```
3334
:::
35+
:::
36+
3437
::: n2
3538
- Declare the workflow in a YAML file
3639
- `inputs`
@@ -46,16 +49,21 @@ From [StreamFlow documentation](https://streamflow.di.unito.it/documentation/0.2
4649

4750
::: {layout='[1,1]'}
4851
::: n1
52+
::: {style="font-size: 80%;"}
4953
``` {.yaml filename="workflow.cwl"}
5054
{{< include code/workflow.cwl >}}
5155
```
5256
:::
57+
:::
58+
5359
::: n2
60+
::: {style="font-size: 80%;"}
5461
``` {.yaml filename="train.cwl"}
5562
{{< include code/train.cwl >}}
5663
```
5764
:::
5865
:::
66+
:::
5967

6068

6169
## CWL Implementations in Production
@@ -67,11 +75,13 @@ From [CWL Documentation](https://www.commonwl.org/implementations/)
6775
:::
6876

6977

70-
## Visualizing CWL
78+
## Visualizing CWL Graphs
7179

7280
![](images/rRNA_selection_cwl.svg){fig-align="center"}
7381

74-
[Try it out!](https://view.commonwl.org/){top=-100px}
82+
::: aside
83+
From [CWL Viewer](https://view.commonwl.org/)
84+
:::
7585

7686

7787
## StreamFlow Deployment
@@ -91,14 +101,13 @@ From [CWL Documentation](https://www.commonwl.org/implementations/)
91101
:::
92102

93103

94-
## StreamFlow: Cross-Facility Federated Learning
104+
## StreamFlow: Federated Learning
95105

96106
![](images/streamflow-xffl.webp){fig-align="center"}
97107

98-
99-
## StreamFlow Demo
100-
101-
- [GitHub repo to Seminar example](https://github.com/BerndDoser/streamflow-example)
102-
- [Example of the developers of StreamFlow](https://github.com/alpha-unito/streamflow-fl)
108+
::: aside
109+
[GitHub](https://github.com/alpha-unito/streamflow-fl)
110+
:::
103111

104112

113+
# [StreamFlow Demo](https://github.com/BerndDoser/streamflow-example)

workflows.qmd

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
1-
## Motivation by [SPACE CoE](https://www.space-coe.eu/)
1+
## Motivated by [SPACE CoE](https://www.space-coe.eu/)
22

33
![](images/SPACE_logo.png){.absolute top=-20 right=0 width=200}
44

55
::: {.fs34}
6-
**Goal**: Astrophysical Simulations for Exascale Computing\
7-
**Challenge**: Analyze large-scale simulation data of Petabytes\
6+
**Goal**: Astrophysical simulations for exascale computing\
7+
**Challenge**: Analyze large-size simulation data (~ Petabytes)\
88
**Solution**: Efficient ML-based workflows using dimensionality reduction
99
:::
1010

11-
::: {layout='[1,2.4,0.7]' layout-valign=center}
11+
::: {layout='[1,2.4,0.7]'}
1212
::: n1
13+
14+
**Input**
15+
1316
![](images/illustris.png)
1417

1518
::: {.fs20}
1619
::: {.callout-note icon=false}
1720

18-
## Simulation Data (~ PetaBytes)
21+
## Simulation Data (~ Petabytes)
1922

2023
Time snapshots storing particle positions, velocities, and other properties, e.g. from OpenGADGET (IllustrisTNG)
2124

@@ -24,10 +27,14 @@ Time snapshots storing particle positions, velocities, and other properties, e.g
2427
:::
2528

2629
::: n2
30+
**Workflow**
31+
2732
![](images/projectx.svg)
2833
:::
2934

3035
::: n3
36+
**Output**
37+
3138
![](images/P404_f2.png)
3239

3340
::: {.fs20}
@@ -51,14 +58,14 @@ K. L. Polsterer, B. Doser, A. Fehlner and S. Trujillo-Gomez [ADASS (2024)]().
5158

5259
- **Reproducibility**: Ensure your experiments are reproducible by tracking the code, data, model, and environment.
5360
- **Resource management**: Manage resources efficiently by running tasks in parallel and optimizing resource usage.
54-
- **Scalability**: Scale your workflows to handle large datasets and complex pipelines.
61+
- **Scalability**: Scale your workflows to handle large amount of data and complex pipelines.
5562
- **Monitoring**: Track the progress of workflows and monitor their performance and results.
5663
- **Collaboration**: Enable collaboration between team members by sharing code, data, and results.
5764

5865
:::
5966

6067

61-
## General Requirements for Workflows
68+
## Requirements on Workflows Orchestration
6269

6370
- Define node requirements (e.g. CPU, memory, GPU)
6471
- Control runtime environment with containers

0 commit comments

Comments
 (0)