Skip to content

Instantly share code, notes, and snippets.

@tom-butler
Created October 1, 2019 05:45
Show Gist options
  • Save tom-butler/55ed9792038977a3357c08f0aa564934 to your computer and use it in GitHub Desktop.
Save tom-butler/55ed9792038977a3357c08f0aa564934 to your computer and use it in GitHub Desktop.
dask-gateway
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Dask Gateway Example\n",
"In this example we'll connect to the dask gateway, create a new cluster run some work on it, then shut it down again.\n",
"\n",
"Fist off we'll connect to the dask gateway and setup the default options"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"from dask_gateway.client import Gateway\n",
"gateway = Gateway(\n",
" \"http://<elb address>\",\n",
" proxy_address=\"tls://172.20.208.109:8786\"\n",
")\n",
"options = gateway.cluster_options()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To prove it works we'll get a list of the clusters currently running on the gateway"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gateway.list_clusters()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setting Options\n",
"\n",
"Change the image to: daskgateway/dask-gateway:latest, adjust the cores of the scheduler and workers"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f8f7f5ebec164a8796f9c0dc52db1783",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Box(children=(Box(children=(HTML(value='<h2>Cluster Options</h2>'), Box(children=(HTML(value=\"<p style='font-w…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"options"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We then use these options when creating a new cluster"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"cluster = gateway.new_cluster(cluster_options=options)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "733e2d5040544c369de5792d315c8a82",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"VBox(children=(HTML(value='<h2>GatewayCluster</h2>'), HBox(children=(HTML(value='\\n<div>\\n<style scoped>\\n …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"cluster.scale(2)\n",
"cluster"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"client = cluster.get_client()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-0.0016103949304014827"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import dask.array as da\n",
"a = da.random.normal(size=(1000, 1000), chunks=(500, 500))\n",
"a.mean().compute()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"cluster.close()"
]
}
],
"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.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment