Parallel Geospatial �Data Analysis & Visualization at WHOI
Katy Abbott & Anthony Meza
The Big Data “Problem”
“Three Vs” of big data: Volume, velocity and variety
Parallel Computing/High Performance Computing
Size of Neural Network
What is Parallel Computing? �Serial Computing
Traditionally, software has been written for serial computation�
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial##Overview
Problem
What is Parallel Computing? �Serial Computing
Traditionally, software has been written for serial computation�
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial##Overview
Problem
Problem Chunks
{
What is Parallel Computing? �Serial Computing
Traditionally, software has been written for serial computation�
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial##Overview
Problem
Problem Chunks
+
Processor
Operation
{
{
What is Parallel Computing? �Serial Computing
Traditionally, software has been written for serial computation�
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial##Overview
Problem
Problem Chunks
+
Processor
Operation
Modified Chunk
{
{
{
What is Parallel Computing? �Serial Computing
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial
Problem: Moving Apartments
What is Parallel Computing? �Serial Computing
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial
Problem: Moving Apartments
Problem Chunks: Moving Boxes
{
What is Parallel Computing? �Serial Computing
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial
Problem: Moving Apartments
Problem Chunks: Moving Boxes
{
+
Processor:�You
Operation: �Loading Boxes
{
{
What is Parallel Computing? �Serial Computing
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial
Problem: Moving Apartments
Problem Chunks: Moving Boxes
{
+
Processor:�You
Operation: �Loading Boxes
{
{
Modified Chunk: �Boxes in Truck
{
What is Parallel Computing? �Parallel Computing
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial##Overview
Parallel computing is using multiple processors to simultaneously operate on your problems/data
Problem
{
Problem Chunks
What is Parallel Computing? �Parallel Computing
Parallel computing is using multiple processors to simultaneously operate on your problems/data
Problem
Problem Chunks
{
+
+
+
+
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial##Overview
Parallel�Operations
{
What is Parallel Computing? �Parallel Computing
Parallel computing is using multiple processors to simultaneously operate on your problems/data
Problem
Problem Chunks
{
+
+
+
+
Modified Chunks
{
Source: https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial##Overview
Parallel�Operations
{
Toy Oceanographic Problem
time
SST
precip
8:00 AM
27.8 °C
9:00 AM
27.9 °C
0.06 mm
. . .
. . .
. . .
Oceanography Data
0.01 mm
Toy Oceanographic Problem
time
SST
precip
8:00 AM
27.8 °C
9:00 AM
27.9 °C
0.06 mm
. . .
. . .
. . .
Operation: Time mean
Oceanography Data
Mean�SST
Mean
precip
27.8 °C
0.03 mm
0.01 mm
Toy Oceanographic Problem
time
SST
precip
8:00 AM
27.8 °C
9:00 AM
27.9 °C
0.06 mm
. . .
. . .
. . .
Oceanography Data
Q1: How many processors would you use?
Q2: What would your chunks look like?
27.8 °C
0.03 mm
0.01 mm
Operation: Time mean
Mean�SST
Mean
precip
Why Python? (And not MATLAB/Julia/R etc.)
Why Python? (And not MATLAB/Julia/R etc.)
Introduction to xarray and Dask
Why use xarray?
Look Ma, one line climatology!
Look Ma, one line climatology!
What is Dask?
What is Dask?
What is Dask?
Chunking overview
time
x
y
Chunking overview
time
x
y
A
B
BREAK
BREAK
BREAK
Come back in 15 minutes for some hands-on practice with Poseidon!
(Please see Katy and Anthony during the break if you are having any issues with your Poseidon set-up)
Using Miniforge as Scientific Package Manager
Using Miniforge as Scientific Package Manager
HPC terminology
Cluster
HPC terminology
Cluster
node
HPC terminology
Cluster
login
compute
compute
compute
compute
gpu
node
HPC terminology
node:
HPC terminology
What if I want to submit a job with 1 step and 6 tasks that will be executed in parallel?
HPC terminology
What if I want to submit a job with 1 step and 6 tasks that will be executed in parallel?
HPC terminology
Poseidon Specifics
node
References
https://ar5iv.labs.arxiv.org/html/1908.03356
Tmux/screen
Within a session, you can split terminal windows, toggle between them and then detach from everything
Thanks for coming!
🚨🚨🚨 DON’T RUN ANYTHING ON THE LOG-IN NODE🚨🚨🚨