Commit 7ba242eb authored by Georg Siemund's avatar Georg Siemund
Browse files

Delete zarr_objectstorage_performancetest.ipynb

parent e87ff237
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import dask.array as dsa\n",
"import xarray\n",
"import intake\n",
"import zarr\n",
"import fsspec\n",
"import numpy as np\n",
"import pandas as pd\n",
"from contextlib import contextmanager\n",
"import time\n",
"import dask\n",
"import fsspec\n",
"import json"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"hardware = '256GB 24Core'"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#use intake to browse catalog\n",
"col_url = \"https://swift.dkrz.de/v1/dkrz_a44962e3ba914c309a7421573a6949a6/intake-esm/swift-cmip6.json\"\n",
"col = intake.open_esm_datastore(col_url)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"cat = col.search(variable_id=\"tasmax\", table_id=\"day\")\n",
"zarrpath = cat.unique(\"zarr_path\")[\"zarr_path\"][\"values\"][0]\n",
"fsmap = fsspec.get_mapper(zarrpath)\n",
"openzarr = xarray.open_zarr(fsmap, consolidated=True)\n",
"data = openzarr.tasmax.data\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"class DevNullStore:\n",
"\n",
" def __init__(self):\n",
" pass\n",
"\n",
" def __setitem__(*args, **kwargs):\n",
" pass"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"null_store = DevNullStore()\n",
"# this line produces no error but actually does nothing\n",
"null_store['foo'] = 'bar'"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%time dsa.store(data, null_store, lock=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Set up Cluster"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from dask.distributed import Client\n",
"#\n",
"memory_limit=\"48GB\"\n",
"threads = 5\n",
"nworker = 5\n",
"client = Client(processes=True, threads_per_worker=threads, n_workers=nworker, memory_limit=memory_limit)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"class DiagnosticTimer:\n",
" def __init__(self):\n",
" self.diagnostics = []\n",
"\n",
" @contextmanager\n",
" def time(self, **kwargs):\n",
" tic = time.time()\n",
" yield\n",
" toc = time.time()\n",
" kwargs[\"runtime\"] = toc - tic\n",
" self.diagnostics.append(kwargs)\n",
"\n",
" def dataframe(self):\n",
" return pd.DataFrame(self.diagnostics)\n",
"\n",
"diag_timer = DiagnosticTimer()\n",
"\n",
"chunksize = np.prod(data.chunksize) * data.dtype.itemsize"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def total_nthreads():\n",
" return sum([v for v in client.nthreads().values()])\n",
"\n",
"def total_ncores():\n",
" return sum([v for v in client.ncores().values()])\n",
"\n",
"def total_workers():\n",
" return len(client.ncores())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"diag_kwargs = dict(nbytes=data.nbytes, chunksize=chunksize,\n",
" cloud='swift', format='zarr', hardware=hardware)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"with diag_timer.time(nthreads=total_nthreads(),\n",
" ncores=total_ncores(),\n",
" nworkers=total_workers(),\n",
" **diag_kwargs):\n",
"\n",
" future = dsa.store(data, null_store, lock=False, compute=False)\n",
" dask.compute(future, retries=5)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"client.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df = diag_timer.dataframe()\n",
"df = df.reset_index(drop=True)\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Datenspeicherung in eine Json-Datei"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#df.to_json('/pf/b/b381359/zarr-in-swift-objectstorage/notebooks/zarr_performance.json')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"already = pd.read_json('/pf/b/b381359/zarr-in-swift-objectstorage/notebooks/zarr_performance.json')\n",
"already"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"update = already.append(df, ignore_index='true')\n",
"update"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"update.to_json('/pf/b/b381359/zarr-in-swift-objectstorage/notebooks/zarr_performance.json')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Throughput-Berechnung und Visualisierung"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>nthreads</th>\n",
" <th>ncores</th>\n",
" <th>nworkers</th>\n",
" <th>nbytes</th>\n",
" <th>chunksize</th>\n",
" <th>cloud</th>\n",
" <th>format</th>\n",
" <th>hardware</th>\n",
" <th>runtime</th>\n",
" <th>throughput_MBps</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>5GB 1Core</td>\n",
" <td>154.495057</td>\n",
" <td>59.959723</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>5GB 1Core</td>\n",
" <td>66.103309</td>\n",
" <td>140.136416</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>9</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>5GB 1Core</td>\n",
" <td>65.318598</td>\n",
" <td>141.819958</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>16</td>\n",
" <td>16</td>\n",
" <td>4</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>5GB 1Core</td>\n",
" <td>68.609839</td>\n",
" <td>135.016799</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>25</td>\n",
" <td>25</td>\n",
" <td>5</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>5GB 1Core</td>\n",
" <td>69.241626</td>\n",
" <td>133.784855</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>10GB 2Core</td>\n",
" <td>157.674033</td>\n",
" <td>58.750833</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>10GB 2Core</td>\n",
" <td>55.825154</td>\n",
" <td>165.937399</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>9</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>10GB 2Core</td>\n",
" <td>38.352534</td>\n",
" <td>241.535041</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>16</td>\n",
" <td>16</td>\n",
" <td>4</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>10GB 2Core</td>\n",
" <td>37.740102</td>\n",
" <td>245.454581</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>25</td>\n",
" <td>25</td>\n",
" <td>5</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>10GB 2Core</td>\n",
" <td>38.901415</td>\n",
" <td>238.127094</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>20GB 4Core</td>\n",
" <td>162.045562</td>\n",
" <td>57.165903</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>20GB 4Core</td>\n",
" <td>58.851281</td>\n",
" <td>157.404914</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>9</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>20GB 4Core</td>\n",
" <td>38.345927</td>\n",
" <td>241.576659</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>16</td>\n",
" <td>16</td>\n",
" <td>4</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>20GB 4Core</td>\n",
" <td>24.214650</td>\n",
" <td>382.556869</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>25</td>\n",
" <td>25</td>\n",
" <td>5</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>20GB 4Core</td>\n",
" <td>23.369606</td>\n",
" <td>396.390112</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>256GB 24Core</td>\n",
" <td>165.742089</td>\n",
" <td>55.890938</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>256GB 24Core</td>\n",
" <td>61.005581</td>\n",
" <td>151.846448</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>9</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>256GB 24Core</td>\n",
" <td>38.872968</td>\n",
" <td>238.301349</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>16</td>\n",
" <td>16</td>\n",
" <td>4</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>256GB 24Core</td>\n",
" <td>32.983231</td>\n",
" <td>280.854258</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>25</td>\n",
" <td>25</td>\n",
" <td>5</td>\n",
" <td>9263480832</td>\n",
" <td>8847360</td>\n",
" <td>swift</td>\n",
" <td>zarr</td>\n",
" <td>256GB 24Core</td>\n",
" <td>30.150028</td>\n",
" <td>307.246182</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" nthreads ncores nworkers nbytes chunksize cloud format \\\n",
"0 1 1 1 9263480832 8847360 swift zarr \n",
"1 4 4 2 9263480832 8847360 swift zarr \n",
"2 9 9 3 9263480832 8847360 swift zarr \n",
"3 16 16 4 9263480832 8847360 swift zarr \n",
"4 25 25 5 9263480832 8847360 swift zarr \n",
"5 1 1 1 9263480832 8847360 swift zarr \n",
"6 4 4 2 9263480832 8847360 swift zarr \n",
"7 9 9 3 9263480832 8847360 swift zarr \n",
"8 16 16 4 9263480832 8847360 swift zarr \n",
"9 25 25 5 9263480832 8847360 swift zarr \n",
"10 1 1 1 9263480832 8847360 swift zarr \n",
"11 4 4 2 9263480832 8847360 swift zarr \n",
"12 9 9 3 9263480832 8847360 swift zarr \n",
"13 16 16 4 9263480832 8847360 swift zarr \n",
"14 25 25 5 9263480832 8847360 swift zarr \n",
"15 1 1 1 9263480832 8847360 swift zarr \n",
"16 4 4 2 9263480832 8847360 swift zarr \n",
"17 9 9 3 9263480832 8847360 swift zarr \n",
"18 16 16 4 9263480832 8847360 swift zarr \n",
"19 25 25 5 9263480832 8847360 swift zarr \n",
"\n",
" hardware runtime throughput_MBps \n",
"0 5GB 1Core 154.495057 59.959723 \n",
"1 5GB 1Core 66.103309 140.136416 \n",
"2 5GB 1Core 65.318598 141.819958 \n",
"3 5GB 1Core 68.609839 135.016799 \n",
"4 5GB 1Core 69.241626 133.784855 \n",
"5 10GB 2Core 157.674033 58.750833 \n",
"6 10GB 2Core 55.825154 165.937399 \n",
"7 10GB 2Core 38.352534 241.535041 \n",
"8 10GB 2Core 37.740102 245.454581 \n",
"9 10GB 2Core 38.901415 238.127094 \n",
"10 20GB 4Core 162.045562 57.165903 \n",
"11 20GB 4Core 58.851281 157.404914 \n",
"12 20GB 4Core 38.345927 241.576659 \n",
"13 20GB 4Core 24.214650 382.556869 \n",
"14 20GB 4Core 23.369606 396.390112 \n",
"15 256GB 24Core 165.742089 55.890938 \n",
"16 256GB 24Core 61.005581 151.846448 \n",
"17 256GB 24Core 38.872968 238.301349 \n",
"18 256GB 24Core 32.983231 280.854258 \n",
"19 256GB 24Core 30.150028 307.246182 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},