CINI HPC Summer School
16-20 June, 2025 - Naples, Italy
Programming Tools for �High-Performance Data Analysis
Domenico Talia and Paolo Trunfio
{talia,trunfio}@dimes.unical.it
University of Calabria & CINI lab HPC-KTT
Your
photo
Your
photo
Motivations and goals
2
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Motivations and goals
3
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Programming Models for Big Data
Programming Models
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Programming models for big data
Programming Models
5
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Programming models for big data
Programming Models
6
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Programming models for big data
Programming Models
7
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
The MapReduce model
Programming Models: MapReduce
8
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
The MapReduce model
Programming Models: MapReduce
9
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
The MapReduce model
map (k1, v1) → list(k2, v2)
reduce (k2, list(v2)) → list(v3)
Programming Models: MapReduce
10
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Parallelism in MapReduce
Programming Models: MapReduce
11
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Example: inverted index
Programming Models: MapReduce
12
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Example: inverted index
Programming Models: MapReduce
13
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
The workflow model
Programming Models: Workflows
14
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Workflow patterns
Programming Models: Workflows
15
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Directed Acyclic Graphs
Programming Models: Workflows
16
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Directed Acyclic Graphs
Programming Models: Workflows
17
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
The message-passing model
Programming Models: Message Passing
18
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Shared-memory vs Message-passing model
Programming Models: Message Passing
19
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
The BSP model
Programming Models: BSP
20
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
BSP computation
A BSP superstep
P0
P1
P2
P3
Pn
Programming Models: BSP
21
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
The SQL-like model
Programming Models: SQL-like
22
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Why use SQL on big data?
Programming Models: SQL-like
23
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
The PGAS model
Programming Models: PGAS
24
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
The PGAS model
Programming Models: PGAS
25
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Models for exascale systems
Programming Models: Exascale systems
26
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Requirements of Exascale Models
Programming Models: Exascale systems
27
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Models for exascale programming
Programming Models: Exascale systems
28
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Legion
Programming Models: Exascale systems
29
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Charm++
Programming Models: Exascale systems
30
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
DCEx
Programming Models: Exascale systems
31
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
X10
Programming Models: Exascale systems
32
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Chapel
Programming Models: Exascale systems
33
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
UPC++
Programming Models: Exascale systems
34
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Programming Tools for �Big Data Applications
Programming Tools
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Apache Hadoop
* https://hadoop.apache.org/
MapReduce-based Programming Tools: Apache Hadoop
36
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Software stack
MapReduce-based Programming Tools: Apache Hadoop
37
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Execution flow
MapReduce-based Programming Tools: Apache Hadoop
38
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Workflow-based programming tools
Workflow-based Programming Tools
39
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Apache Spark
* https://spark.apache.org/
Workflow-based Programming Tools: Apache Spark
40
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Software stack
Workflow-based Programming Tools: Apache Spark
41
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
RDDs
Workflow-based Programming Tools: Apache Spark
42
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Transformations and actions
Workflow-based Programming Tools: Apache Spark
43
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Data locality
Workflow-based Programming Tools: Apache Spark
44
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Apache Storm
* https://storm.apache.org/
Workflow-based Programming Tools: Apache Storm
45
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Data and computation abstractions
…
Workflow-based Programming Tools: Apache Storm
46
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Data and computation abstractions
Workflow-based Programming Tools: Apache Storm
47
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Architecture
Workflow-based Programming Tools: Apache Storm
48
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Apache Airflow
* https://airflow.apache.org/
Workflow-based Programming Tools: Apache Airflow
49
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Apache Airflow
Workflow-based Programming Tools: Apache Airflow
50
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Architecture
Workflow-based Programming Tools: Apache Airflow
51
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
BSP-based programming tools
BSP-based Programming Tools: Spark GraphX
52
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Spark GraphX
* https://spark.apache.org/graphx/
BSP-based Programming Tools: Spark GraphX
53
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Graph abstraction
Source: GraphX programming guide
BSP-based Programming Tools: Spark GraphX
54
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
SQL-Like programming tools
SQL-like Programming Tools
55
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Apache Hive
* https://hive.apache.org/
SQL-like Programming Tools: Apache Hive
56
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Main concepts
SQL-like Programming Tools: Apache Hive
57
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Architecture
SQL-like Programming Tools: Apache Hive
58
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Apache Pig
* https://pig.apache.org/
SQL-like Programming Tools: Apache Pig
59
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Main concepts
SQL-like Programming Tools: Apache Pig
60
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Architecture
SQL-like Programming Tools: Apache Pig
61
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Choosing the Right Framework to�Tame Big Data
Choosing the Right Framework
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Comparative analysis of the system features
Choosing the Right Framework
63
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Summary of system features
Choosing the Right Framework
64
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Main factors
Choosing the Right Framework
65
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Input data: Volume
Choosing the Right Framework
66
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Input data: Velocity
Choosing the Right Framework
67
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Input data: Variety
Choosing the Right Framework
68
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Application class: Batch
Choosing the Right Framework
69
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Application class: Stream
Choosing the Right Framework
70
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Application class: Graph-based
Choosing the Right Framework
71
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Application class: Query-based
Choosing the Right Framework
72
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Infrastructure: On-premise
Choosing the Right Framework
73
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Infrastructure: Cloud-based
Choosing the Right Framework
74
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Bibliography (1/4)
75
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Bibliography (2/4)
76
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Bibliography (3/4)
77
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Bibliography (4/4)
78
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy
Additional resources
https://bigdataprogramming.github.io
79
D. Talia, P. Trunfio
Programming Tools for High-Performance Data Analysis
Tutorial @ HPC Summer School 2025
June 18th, 2025, Naples, Italy