Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save willirath/6b5c4654ca6be3774fa76acf4a266b96 to your computer and use it in GitHub Desktop.
Save willirath/6b5c4654ca6be3774fa76acf4a266b96 to your computer and use it in GitHub Desktop.
Combining Kernels when orchestrating Parcels experiments with Dask
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# How to use custom kernels with Parcels / dask?"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"removed 'output_data/dask_no_rand_shift_seed_000_agulhas.nc'\n",
"removed 'output_data/dask_with_rand_shift_seed_000_agulhas.nc'\n",
"removed 'output_data/serial_no_rand_shift_seed_000_agulhas.nc'\n",
"removed 'output_data/serial_with_rand_shift_seed_000_agulhas.nc'\n"
]
}
],
"source": [
"# some cleanup\n",
"!mkdir -p output_data/\n",
"!rm -fv output_data/*_agulhas*.nc"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/wrath/miniconda3/envs/py3_parcels_dask/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88\n",
" return f(*args, **kwds)\n",
"/home/wrath/miniconda3/envs/py3_parcels_dask/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88\n",
" return f(*args, **kwds)\n"
]
}
],
"source": [
"from parcels import (ParticleFile, ParticleSet,\n",
" JITParticle, AdvectionRK4,\n",
" timer, ErrorCode, FieldSet)\n",
"from datetime import timedelta\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def run_parcels(num_of_particles, seed=0, prefix=\"\", kernels=(AdvectionRK4, )):\n",
" \n",
" # Load the GlobCurrent data in the Agulhas region from the example_data\n",
" filenames = {'U': \"../parcels_examples_v1.1.1/GlobCurrent_example_data/20*.nc\",\n",
" 'V': \"../parcels_examples_v1.1.1/GlobCurrent_example_data/20*.nc\"}\n",
" variables = {'U': 'eastward_eulerian_current_velocity',\n",
" 'V': 'northward_eulerian_current_velocity'}\n",
" dimensions = {'lat': 'lat', 'lon': 'lon', 'time': 'time'}\n",
" fieldset = FieldSet.from_netcdf(filenames, variables, dimensions,\n",
" full_load=True,\n",
" time_periodic=True)\n",
"\n",
" def DeleteParticle(particle, fieldset, time, dt):\n",
" particle.delete()\n",
" \n",
" np.random.seed(seed)\n",
"\n",
" pset = ParticleSet(fieldset=fieldset,\n",
" pclass=JITParticle,\n",
" lon=np.random.uniform(15, 35, num_of_particles),\n",
" lat=np.random.uniform(-40, -30, num_of_particles ),\n",
" depth=np.array([0 for n in range(num_of_particles)]))\n",
"\n",
" output_file = ParticleFile(\n",
" name=(prefix + \"_agulhas\"),\n",
" particleset=pset,\n",
" outputdt=timedelta(hours=12))\n",
"\n",
" # build composite kernel\n",
" kernel = pset.Kernel(kernels[0])\n",
" for k in kernels[1:]:\n",
" kernel += k\n",
" \n",
" pset.execute(kernel,\n",
" runtime=timedelta(days=5),\n",
" dt=timedelta(seconds=300),\n",
" output_file=output_file,\n",
" recovery={\n",
" ErrorCode.ErrorOutOfBounds: DeleteParticle})"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"from parcels import random"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Overwriting _my_kernel.py\n"
]
}
],
"source": [
"%%file _my_kernel.py\n",
"\n",
"from parcels import random\n",
"import math\n",
"\n",
"def MyKernel(particle, fieldset, time, dt):\n",
" # Kernel for Roach effective Diffusion with 25th persent of diffusivity\n",
" alpha=0.001\n",
" rnd_lat = random.uniform(-1., 1.)\n",
" rnd_lon = random.uniform(-1., 1.)\n",
" # Diffusivities are defined above\n",
" particle.lat += rnd_lat * alpha\n",
" particle.lon += rnd_lon * alpha"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"from _my_kernel import MyKernel"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: Casting lon data to np.float32\n",
"WARNING: Casting lat data to np.float32\n",
"WARNING: Casting depth data to np.float32\n",
"INFO: Compiled JITParticleAdvectionRK4MyKernel ==> /tmp/parcels-1000/d1406f88b509cfd177d73cfdd8c9605a.so\n",
"INFO: Compiled JITParticleAdvectionRK4 ==> /tmp/parcels-1000/a7fb757d836161fd5a6fc1cf5f3f66d6.so\n"
]
}
],
"source": [
"# run serially for reference\n",
"for s in [0,]:\n",
" run_parcels(num_of_particles=int(1e2), seed=s,\n",
" prefix=\"output_data/serial_with_rand_shift_seed_{:03}\".format(s),\n",
" kernels=(AdvectionRK4, MyKernel));\n",
"\n",
" run_parcels(num_of_particles=int(1e2), seed=s,\n",
" prefix=\"output_data/serial_no_rand_shift_seed_{:03}\".format(s),\n",
" kernels=(AdvectionRK4, ));"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"import dask.bag as db\n",
"from dask.distributed import Client, wait"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dask.bag<from_se..., npartitions=1>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"seeds = db.from_sequence([0,])\n",
"seeds"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table style=\"border: 2px solid white;\">\n",
"<tr>\n",
"<td style=\"vertical-align: top; border: 0px solid white\">\n",
"<h3>Client</h3>\n",
"<ul>\n",
" <li><b>Scheduler: </b>tcp://127.0.0.1:32867\n",
" <li><b>Dashboard: </b><a href='http://127.0.0.1:8787/status' target='_blank'>http://127.0.0.1:8787/status</a>\n",
"</ul>\n",
"</td>\n",
"<td style=\"vertical-align: top; border: 0px solid white\">\n",
"<h3>Cluster</h3>\n",
"<ul>\n",
" <li><b>Workers: </b>1</li>\n",
" <li><b>Cores: </b>1</li>\n",
" <li><b>Memory: </b>500.00 MB</li>\n",
"</ul>\n",
"</td>\n",
"</tr>\n",
"</table>"
],
"text/plain": [
"<Client: scheduler='tcp://127.0.0.1:32867' processes=1 cores=1>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"client = Client(n_workers=1, threads_per_worker=1,\n",
" memory_limit=500e6)\n",
"client"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"runs = seeds.map(lambda s: \n",
" run_parcels(num_of_particles=int(1e2),\n",
" seed=s,\n",
" prefix=\"output_data/dask_with_rand_shift_seed_{:03d}\".format(s),\n",
" kernels=(AdvectionRK4, MyKernel)))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dask.bag<map-lam..., npartitions=1>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"runs"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"runs = runs.compute();"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"runs = seeds.map(lambda s: \n",
" run_parcels(num_of_particles=int(1e2),\n",
" seed=s,\n",
" prefix=\"output_data/dask_no_rand_shift_seed_{:03d}\".format(s),\n",
" kernels=(AdvectionRK4, )))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dask.bag<map-lam..., npartitions=1>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"runs"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"runs = runs.compute();"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"dask_no_rand_shift_seed_000_agulhas.nc\n",
"dask_with_rand_shift_seed_000_agulhas.nc\n",
"serial_no_rand_shift_seed_000_agulhas.nc\n",
"serial_with_rand_shift_seed_000_agulhas.nc\n"
]
}
],
"source": [
"!ls output_data/"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"from matplotlib import pyplot as plt\n",
"import xarray as xr"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (obs: 11, traj: 100)\n",
"Dimensions without coordinates: obs, traj\n",
"Data variables:\n",
" trajectory (traj, obs) int32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" time (traj, obs) datetime64[ns] dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" lat (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" lon (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" z (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
"Attributes:\n",
" feature_type: trajectory\n",
" Conventions: CF-1.6/CF-1.7\n",
" ncei_template_version: NCEI_NetCDF_Trajectory_Template_v2.0\n",
" parcels_version: 1.1.1\n",
" parcels_mesh: spherical"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds_dask_with = xr.open_mfdataset(\"output_data/dask_with_rand_shift_*_agulhas.nc\",\n",
" concat_dim=\"traj\")\n",
"ds_dask_with"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (obs: 11, traj: 100)\n",
"Dimensions without coordinates: obs, traj\n",
"Data variables:\n",
" trajectory (traj, obs) int32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" time (traj, obs) datetime64[ns] dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" lat (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" lon (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" z (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
"Attributes:\n",
" feature_type: trajectory\n",
" Conventions: CF-1.6/CF-1.7\n",
" ncei_template_version: NCEI_NetCDF_Trajectory_Template_v2.0\n",
" parcels_version: 1.1.1\n",
" parcels_mesh: spherical"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds_dask_no = xr.open_mfdataset(\"output_data/dask_no_rand_shift_*_agulhas.nc\",\n",
" concat_dim=\"traj\")\n",
"ds_dask_no"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (obs: 11, traj: 100)\n",
"Dimensions without coordinates: obs, traj\n",
"Data variables:\n",
" trajectory (traj, obs) int32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" time (traj, obs) datetime64[ns] dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" lat (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" lon (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" z (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
"Attributes:\n",
" feature_type: trajectory\n",
" Conventions: CF-1.6/CF-1.7\n",
" ncei_template_version: NCEI_NetCDF_Trajectory_Template_v2.0\n",
" parcels_version: 1.1.1\n",
" parcels_mesh: spherical"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds_serial_with = xr.open_mfdataset(\"output_data/serial_with_rand_shift_*_agulhas.nc\",\n",
" concat_dim=\"traj\")\n",
"ds_serial_with"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (obs: 11, traj: 100)\n",
"Dimensions without coordinates: obs, traj\n",
"Data variables:\n",
" trajectory (traj, obs) int32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" time (traj, obs) datetime64[ns] dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" lat (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" lon (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
" z (traj, obs) float32 dask.array<shape=(100, 11), chunksize=(100, 11)>\n",
"Attributes:\n",
" feature_type: trajectory\n",
" Conventions: CF-1.6/CF-1.7\n",
" ncei_template_version: NCEI_NetCDF_Trajectory_Template_v2.0\n",
" parcels_version: 1.1.1\n",
" parcels_mesh: spherical"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds_serial_no = xr.open_mfdataset(\"output_data/dask_no_rand_*_agulhas.nc\",\n",
" concat_dim=\"traj\")\n",
"ds_serial_no"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(ds_dask_with.isel(traj=1).lon, \n",
" ds_dask_with.isel(traj=1).lat);\n",
"plt.plot(ds_serial_with.isel(traj=1).lon + 0.02, \n",
" ds_serial_with.isel(traj=1).lat);"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(ds_dask_no.isel(traj=1).lon, \n",
" ds_dask_no.isel(traj=1).lat);\n",
"plt.plot(ds_serial_no.isel(traj=1).lon + 0.02, \n",
" ds_serial_no.isel(traj=1).lat);"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(ds_serial_with.isel(traj=1).lon, \n",
" ds_serial_with.isel(traj=1).lat);\n",
"plt.plot(ds_serial_no.isel(traj=1).lon, \n",
" ds_serial_no.isel(traj=1).lat);"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:py3_parcels_dask]",
"language": "python",
"name": "conda-env-py3_parcels_dask-py"
},
"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.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment