{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Multi-Cloud Workflow with Pangeo\n",
"\n",
"\n",
"\n",
"This example demonstrates a workflow using analysis-ready data provided in two public clouds.\n",
"\n",
"* [LENS](https://registry.opendata.aws/ncar-cesm-lens/) (Hosted on AWS in the us-west-2 region)\n",
"* [ERA5](https://www.ecmwf.int/en/forecasts/datasets/reanalysis-datasets/era5) (Hosted on Google Cloud Platform in multiple regions)\n",
"\n",
"We'll perform a similar analysis on each of the datasets, a histogram of the total precipitation, compare the results. Notably, this computation reduces a large dataset to a small summary. The reduction can happen on a cluster in the cloud.\n",
"\n",
"By placing a compute cluster in the cloud next to the data, we avoid moving large amounts of data over the public internet. The large analysis-ready data only needs to move within a cloud region: from the machines storing the data in an object-store like `S3` to the machines performing the analysis. The compute cluster reduces the large amount of data to a small histogram summary. At just a handful of KBs, the summary statistics can easily be moved back to the local client, which might be running on a laptop. This also avoids costly egress charges from moving large amounts of data out of cloud regions."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import getpass\n",
"\n",
"import dask\n",
"from distributed import Client\n",
"from dask_gateway import Gateway, BasicAuth\n",
"import intake\n",
"import numpy as np\n",
"import s3fs\n",
"import xarray as xr\n",
"from xhistogram.xarray import histogram"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Create Dask Clusters"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We've deployed [Dask Gateway](https://gateway.dask.org/) on two Kubernetes clusters, one in AWS and one in GCP. We'll use these to create [Dask](https://dask.org/) clusters in the same cloud region as the data. We'll connect to both of them from the same interactive notebook session."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdin",
"output_type": "stream",
"text": [
" ····\n"
]
}
],
"source": [
"password = getpass.getpass()\n",
"auth = BasicAuth(\"pangeo\", password)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
],
"text/plain": [
"\n",
"dask.array\n",
"Coordinates:\n",
" * latitude (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n",
" * longitude (longitude) float32 0.0 0.25 0.5 0.75 ... 359.25 359.5 359.75\n",
" * time (time) datetime64[ns] 1990-01-01T02:30:00 ... 2005-12-31T20:30:00"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# convert to 6-hourly precip totals\n",
"tp_6hr = tp.coarsen(time=6).sum()\n",
"tp_6hr"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We'll bin this data into the following bins."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.00000000e+00, 1.00000000e-05, 1.26485522e-05, 1.59985872e-05,\n",
" 2.02358965e-05, 2.55954792e-05, 3.23745754e-05, 4.09491506e-05,\n",
" 5.17947468e-05, 6.55128557e-05, 8.28642773e-05, 1.04811313e-04,\n",
" 1.32571137e-04, 1.67683294e-04, 2.12095089e-04, 2.68269580e-04,\n",
" 3.39322177e-04, 4.29193426e-04, 5.42867544e-04, 6.86648845e-04,\n",
" 8.68511374e-04, 1.09854114e-03, 1.38949549e-03, 1.75751062e-03,\n",
" 2.22299648e-03, 2.81176870e-03, 3.55648031e-03, 4.49843267e-03,\n",
" 5.68986603e-03, 7.19685673e-03, 9.10298178e-03, 1.15139540e-02,\n",
" 1.45634848e-02, 1.84206997e-02, 2.32995181e-02, 2.94705170e-02,\n",
" 3.72759372e-02, 4.71486636e-02, 5.96362332e-02, 7.54312006e-02,\n",
" 9.54095476e-02, 1.20679264e-01, 1.52641797e-01, 1.93069773e-01,\n",
" 2.44205309e-01, 3.08884360e-01, 3.90693994e-01, 4.94171336e-01,\n",
" 6.25055193e-01, 7.90604321e-01, 1.00000000e+00])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tp_6hr_bins = np.concatenate([[0], np.logspace(-5, 0, 50)])\n",
"tp_6hr_bins"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The next cell applies the histogram to the `longitude` dimension and takes the mean over `time`.\n",
"We're still just building up the computation here, we haven't actually loaded the data or executed it yet."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
"
Array
Chunk
\n",
" \n",
" \n",
"
Bytes
288.40 kB
288.40 kB
\n",
"
Shape
(721, 50)
(721, 50)
\n",
"
Count
110889 Tasks
1 Chunks
\n",
"
Type
float64
numpy.ndarray
\n",
" \n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
"
\n",
"
"
],
"text/plain": [
"dask.array"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tp_hist = histogram(\n",
" tp_6hr.rename('tp_6hr'), bins=[tp_6hr_bins], dim=['longitude']\n",
").mean(dim='time')\n",
"tp_hist.data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In total, we're going from the ~1.5TB raw dataset down to a small 288 kB result that is the histogram summarizing the total precipitation. We've built up a large sequence of operations to do that reduction (over 110,000 individual tasks), and now it's time to actually execute it. There will be some delay between running the next cell, the scheduler receiving the task graph, and the cluster starting to process it, but work is happening in the background. After a minute or so, tasks will start appearing on the Dask dashboard.\n",
"\n",
"One thing to note: we request this result with the `gcp_client`, the client for the cluster in the same cloud region as the data."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"era5_tp_hist_ = gcp_client.compute(tp_hist, retries=5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`gcp_tp_hist_` is a `Future` pointing to the result on the cluster. The actual computation is happening in the background, and we'll call `.result()` to get the concrete result later on."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"Future: finalize status: pending, key: finalize-827454f3f45ccd1c7c22f0b3907c098c"
],
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"era5_tp_hist_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Because the Dask cluster is in adaptive mode, this computation has kicked off a chain of events: Dask has noticed that it suddenly has many tasks to compute, so it asks the cluster manager (Kubernetes in this case) for more workers. THe Kubernetes cluster then asks it's compute backend (Google Compute Engine in this case) for more virtual machines. As these machines come online, our workers will come to life and the cluster will start progressing on our computation."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## LENS on AWS\n",
"\n",
"This computation is very similar to the ERA5 computation. The primary difference is that the LENS dataset is an ensemble. We'll histogram a single member of that ensemble.\n",
"\n",
"The Intake catalog created by NCAR includes many things, so we'll use `intake-esm` to search for the URL we want."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
This data is part of the project 'Blind Evaluation of Lossy Data-Compression in LENS'. Please exercise caution before using this data for other purposes.
"
],
"text/plain": [
"dask.array"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lens_hist.data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that we're using the `aws_client`, because LENS is stored in an AWS region."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"lens_hist_ = aws_client.compute(lens_hist)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compare results\n",
"\n",
"Let's plot the histograms for both the ERA5 and LENS data. These are small results so it's safe to transfer the result from the cluster to the client machine for plotting."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"lens_tp_hist_ = lens_hist_.result()\n",
"era5_tp_hist_ = era5_tp_hist_.result()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For ERA5:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"era5_tp_hist_[: ,1:].plot(xscale='log');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And for LENS:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"lens_tp_hist_[: ,1:].plot(xscale='log');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cleanup\n",
"\n",
"Closing the clients will free all our resources."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"aws_client.close()\n",
"aws.close()\n",
"\n",
"gcp_client.close()\n",
"gcp.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Behind the Scenes\n",
"\n",
"We deployed some infrastructure to make this notebook runnable. In line with one of Pangeo's guiding principles, each of these technologies has an [open architechture](https://medium.com/pangeo/closed-platforms-vs-open-architectures-for-cloud-native-earth-system-analytics-1ad88708ebb6).\n",
"\n",
"\n",
"\n",
"From low-level to high-level\n",
"\n",
"* **Terraform** provides the tools for provisioning the cloud resources needed for the clusters.\n",
"* **Kubernetes** provides the container orchestration for deploying the Dask Clusters. We created kubernetes clusters in AWS's `us-west-2` and GCP's `us-central1` regsions.\n",
"* **Dask-Gatway** provides centralized, secure access to Dask Clusters. These clusters were deployed using [helm](https://helm.sh/) on two Kubernetes clusters.\n",
"* **Dask** provides scalable, distributed computation for analyzing these large datasets\n",
"* **xarray** provides high-level APIs and high-performance data structures for working with this data\n",
"* **Intake, gcsfs, s3fs** provide catalogs for data discover and libraries for loading that data\n",
"* **Jupyterlab** provides a user interface for interactive computing. The client laptop interacts with the clusters through Jupyterlab.\n",
"\n",
"\n",
"All of the resources for this demo are available at https://github.com/pangeo-data/multicloud-demo."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}