Skip to content

Instantly share code, notes, and snippets.

@quasiben
Created May 5, 2020 14:52
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save quasiben/98ee254920837313946f621e103d41f4 to your computer and use it in GitHub Desktop.
Save quasiben/98ee254920837313946f621e103d41f4 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Configure Client for NVLink "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import os"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"os.environ['UCX_TLS']='tcp,sockcm,cuda_copy,cuda_ipc'\n",
"os.environ['UCX_SOCKADDR_TLS_PRIORITY']='sockcm'\n",
"os.environ[\"UCX_RNDV_SCHEME\"] = \"get_zcopy\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create DASK Cluster on a DGX2"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"from dask.distributed import Client\n",
"from dask_cuda import LocalCUDACluster\n",
"from dask_cuda.initialize import initialize\n",
"from dask.utils import parse_bytes\n",
"from dask.distributed import performance_report\n",
"from dask.distributed import wait\n",
"from dask.distributed import get_task_stream\n",
"from collections import defaultdict\n",
"\n",
"\n",
"import cupy\n",
"import rmm\n",
"import cudf\n",
"\n",
"# Configurations\n",
"protocol = \"ucx\"\n",
"interface = \"enp134s0f1\" # DGX-2\n",
"enable_tcp_over_ucx = True\n",
"enable_nvlink = True\n",
"enable_infiniband = False\n",
"\n",
"initialize(\n",
" create_cuda_context=True,\n",
" enable_tcp_over_ucx=enable_tcp_over_ucx,\n",
" enable_infiniband=enable_infiniband,\n",
" enable_nvlink=enable_nvlink,\n",
")\n",
"\n",
"cluster = LocalCUDACluster(local_directory=\"/tmp/bzaitlen\", \n",
" protocol=protocol,\n",
" interface=interface,\n",
" enable_tcp_over_ucx=enable_tcp_over_ucx,\n",
" enable_infiniband=enable_infiniband,\n",
" enable_nvlink=enable_nvlink,\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"client = Client(cluster)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Configure GPU Memory Pool"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def setup_rmm_pool(client):\n",
" client.run(\n",
" cudf.set_allocator,\n",
" pool=True,\n",
" initial_pool_size= parse_bytes(\"26GB\"),\n",
" allocator=\"default\"\n",
" )\n",
" client.run(\n",
" cupy.cuda.set_allocator,\n",
" rmm.rmm_cupy_allocator\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"setup_rmm_pool(client)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Create Random Data on GPUs "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"import cupy\n",
"import dask.array as da\n",
"\n",
"# generate chunked dask arrays of many cupy random arrays\n",
"rs = da.random.RandomState(RandomState=cupy.random.RandomState) "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<tr>\n",
"<td>\n",
"<table>\n",
" <thead>\n",
" <tr><td> </td><th> Array </th><th> Chunk </th></tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr><th> Bytes </th><td> 200.00 GB </td> <td> 100.00 MB </td></tr>\n",
" <tr><th> Shape </th><td> (10000000, 20000) </td> <td> (20000, 5000) </td></tr>\n",
" <tr><th> Count </th><td> 2000 Tasks </td><td> 2000 Chunks </td></tr>\n",
" <tr><th> Type </th><td> uint8 </td><td> cupy.ndarray </td></tr>\n",
" </tbody>\n",
"</table>\n",
"</td>\n",
"<td>\n",
"<svg width=\"75\" height=\"170\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
"\n",
" <!-- Horizontal lines -->\n",
" <line x1=\"0\" y1=\"0\" x2=\"25\" y2=\"0\" style=\"stroke-width:2\" />\n",
" <line x1=\"0\" y1=\"0\" x2=\"25\" y2=\"0\" />\n",
" <line x1=\"0\" y1=\"0\" x2=\"25\" y2=\"0\" />\n",
" <line x1=\"0\" y1=\"0\" x2=\"25\" y2=\"0\" />\n",
" <line x1=\"0\" y1=\"0\" x2=\"25\" y2=\"0\" />\n",
" <line x1=\"0\" y1=\"1\" x2=\"25\" y2=\"1\" />\n",
" <line x1=\"0\" y1=\"1\" x2=\"25\" y2=\"1\" />\n",
" <line x1=\"0\" y1=\"1\" x2=\"25\" y2=\"1\" />\n",
" <line x1=\"0\" y1=\"1\" x2=\"25\" y2=\"1\" />\n",
" <line x1=\"0\" y1=\"2\" x2=\"25\" y2=\"2\" />\n",
" <line x1=\"0\" y1=\"2\" x2=\"25\" y2=\"2\" />\n",
" <line x1=\"0\" y1=\"2\" x2=\"25\" y2=\"2\" />\n",
" <line x1=\"0\" y1=\"2\" x2=\"25\" y2=\"2\" />\n",
" <line x1=\"0\" y1=\"3\" x2=\"25\" y2=\"3\" />\n",
" <line x1=\"0\" y1=\"3\" x2=\"25\" y2=\"3\" />\n",
" <line x1=\"0\" y1=\"3\" x2=\"25\" y2=\"3\" />\n",
" <line x1=\"0\" y1=\"3\" x2=\"25\" y2=\"3\" />\n",
" <line x1=\"0\" y1=\"4\" x2=\"25\" y2=\"4\" />\n",
" <line x1=\"0\" y1=\"4\" x2=\"25\" y2=\"4\" />\n",
" <line x1=\"0\" y1=\"4\" x2=\"25\" y2=\"4\" />\n",
" <line x1=\"0\" y1=\"4\" x2=\"25\" y2=\"4\" />\n",
" <line x1=\"0\" y1=\"5\" x2=\"25\" y2=\"5\" />\n",
" <line x1=\"0\" y1=\"5\" x2=\"25\" y2=\"5\" />\n",
" <line x1=\"0\" y1=\"5\" x2=\"25\" y2=\"5\" />\n",
" <line x1=\"0\" y1=\"5\" x2=\"25\" y2=\"5\" />\n",
" <line x1=\"0\" y1=\"6\" x2=\"25\" y2=\"6\" />\n",
" <line x1=\"0\" y1=\"6\" x2=\"25\" y2=\"6\" />\n",
" <line x1=\"0\" y1=\"6\" x2=\"25\" y2=\"6\" />\n",
" <line x1=\"0\" y1=\"6\" x2=\"25\" y2=\"6\" />\n",
" <line x1=\"0\" y1=\"6\" x2=\"25\" y2=\"6\" />\n",
" <line x1=\"0\" y1=\"7\" x2=\"25\" y2=\"7\" />\n",
" <line x1=\"0\" y1=\"7\" x2=\"25\" y2=\"7\" />\n",
" <line x1=\"0\" y1=\"7\" x2=\"25\" y2=\"7\" />\n",
" <line x1=\"0\" y1=\"7\" x2=\"25\" y2=\"7\" />\n",
" <line x1=\"0\" y1=\"8\" x2=\"25\" y2=\"8\" />\n",
" <line x1=\"0\" y1=\"8\" x2=\"25\" y2=\"8\" />\n",
" <line x1=\"0\" y1=\"8\" x2=\"25\" y2=\"8\" />\n",
" <line x1=\"0\" y1=\"8\" x2=\"25\" y2=\"8\" />\n",
" <line x1=\"0\" y1=\"9\" x2=\"25\" y2=\"9\" />\n",
" <line x1=\"0\" y1=\"9\" x2=\"25\" y2=\"9\" />\n",
" <line x1=\"0\" y1=\"9\" x2=\"25\" y2=\"9\" />\n",
" <line x1=\"0\" y1=\"9\" x2=\"25\" y2=\"9\" />\n",
" <line x1=\"0\" y1=\"10\" x2=\"25\" y2=\"10\" />\n",
" <line x1=\"0\" y1=\"10\" x2=\"25\" y2=\"10\" />\n",
" <line x1=\"0\" y1=\"10\" x2=\"25\" y2=\"10\" />\n",
" <line x1=\"0\" y1=\"10\" x2=\"25\" y2=\"10\" />\n",
" <line x1=\"0\" y1=\"11\" x2=\"25\" y2=\"11\" />\n",
" <line x1=\"0\" y1=\"11\" x2=\"25\" y2=\"11\" />\n",
" <line x1=\"0\" y1=\"11\" x2=\"25\" y2=\"11\" />\n",
" <line x1=\"0\" y1=\"11\" x2=\"25\" y2=\"11\" />\n",
" <line x1=\"0\" y1=\"12\" x2=\"25\" y2=\"12\" />\n",
" <line x1=\"0\" y1=\"12\" x2=\"25\" y2=\"12\" />\n",
" <line x1=\"0\" y1=\"12\" x2=\"25\" y2=\"12\" />\n",
" <line x1=\"0\" y1=\"12\" x2=\"25\" y2=\"12\" />\n",
" <line x1=\"0\" y1=\"12\" x2=\"25\" y2=\"12\" />\n",
" <line x1=\"0\" y1=\"13\" x2=\"25\" y2=\"13\" />\n",
" <line x1=\"0\" y1=\"13\" x2=\"25\" y2=\"13\" />\n",
" <line x1=\"0\" y1=\"13\" x2=\"25\" y2=\"13\" />\n",
" <line x1=\"0\" y1=\"13\" x2=\"25\" y2=\"13\" />\n",
" <line x1=\"0\" y1=\"14\" x2=\"25\" y2=\"14\" />\n",
" <line x1=\"0\" y1=\"14\" x2=\"25\" y2=\"14\" />\n",
" <line x1=\"0\" y1=\"14\" x2=\"25\" y2=\"14\" />\n",
" <line x1=\"0\" y1=\"14\" x2=\"25\" y2=\"14\" />\n",
" <line x1=\"0\" y1=\"15\" x2=\"25\" y2=\"15\" />\n",
" <line x1=\"0\" y1=\"15\" x2=\"25\" y2=\"15\" />\n",
" <line x1=\"0\" y1=\"15\" x2=\"25\" y2=\"15\" />\n",
" <line x1=\"0\" y1=\"15\" x2=\"25\" y2=\"15\" />\n",
" <line x1=\"0\" y1=\"16\" x2=\"25\" y2=\"16\" />\n",
" <line x1=\"0\" y1=\"16\" x2=\"25\" y2=\"16\" />\n",
" <line x1=\"0\" y1=\"16\" x2=\"25\" y2=\"16\" />\n",
" <line x1=\"0\" y1=\"16\" x2=\"25\" y2=\"16\" />\n",
" <line x1=\"0\" y1=\"17\" x2=\"25\" y2=\"17\" />\n",
" <line x1=\"0\" y1=\"17\" x2=\"25\" y2=\"17\" />\n",
" <line x1=\"0\" y1=\"17\" x2=\"25\" y2=\"17\" />\n",
" <line x1=\"0\" y1=\"17\" x2=\"25\" y2=\"17\" />\n",
" <line x1=\"0\" y1=\"18\" x2=\"25\" y2=\"18\" />\n",
" <line x1=\"0\" y1=\"18\" x2=\"25\" y2=\"18\" />\n",
" <line x1=\"0\" y1=\"18\" x2=\"25\" y2=\"18\" />\n",
" <line x1=\"0\" y1=\"18\" x2=\"25\" y2=\"18\" />\n",
" <line x1=\"0\" y1=\"18\" x2=\"25\" y2=\"18\" />\n",
" <line x1=\"0\" y1=\"19\" x2=\"25\" y2=\"19\" />\n",
" <line x1=\"0\" y1=\"19\" x2=\"25\" y2=\"19\" />\n",
" <line x1=\"0\" y1=\"19\" x2=\"25\" y2=\"19\" />\n",
" <line x1=\"0\" y1=\"19\" x2=\"25\" y2=\"19\" />\n",
" <line x1=\"0\" y1=\"20\" x2=\"25\" y2=\"20\" />\n",
" <line x1=\"0\" y1=\"20\" x2=\"25\" y2=\"20\" />\n",
" <line x1=\"0\" y1=\"20\" x2=\"25\" y2=\"20\" />\n",
" <line x1=\"0\" y1=\"20\" x2=\"25\" y2=\"20\" />\n",
" <line x1=\"0\" y1=\"21\" x2=\"25\" y2=\"21\" />\n",
" <line x1=\"0\" y1=\"21\" x2=\"25\" y2=\"21\" />\n",
" <line x1=\"0\" y1=\"21\" x2=\"25\" y2=\"21\" />\n",
" <line x1=\"0\" y1=\"21\" x2=\"25\" y2=\"21\" />\n",
" <line x1=\"0\" y1=\"22\" x2=\"25\" y2=\"22\" />\n",
" <line x1=\"0\" y1=\"22\" x2=\"25\" y2=\"22\" />\n",
" <line x1=\"0\" y1=\"22\" x2=\"25\" y2=\"22\" />\n",
" <line x1=\"0\" y1=\"22\" x2=\"25\" y2=\"22\" />\n",
" <line x1=\"0\" y1=\"23\" x2=\"25\" y2=\"23\" />\n",
" <line x1=\"0\" y1=\"23\" x2=\"25\" y2=\"23\" />\n",
" <line x1=\"0\" y1=\"23\" x2=\"25\" y2=\"23\" />\n",
" <line x1=\"0\" y1=\"23\" x2=\"25\" y2=\"23\" />\n",
" <line x1=\"0\" y1=\"24\" x2=\"25\" y2=\"24\" />\n",
" <line x1=\"0\" y1=\"24\" x2=\"25\" y2=\"24\" />\n",
" <line x1=\"0\" y1=\"24\" x2=\"25\" y2=\"24\" />\n",
" <line x1=\"0\" y1=\"24\" x2=\"25\" y2=\"24\" />\n",
" <line x1=\"0\" y1=\"24\" x2=\"25\" y2=\"24\" />\n",
" <line x1=\"0\" y1=\"25\" x2=\"25\" y2=\"25\" />\n",
" <line x1=\"0\" y1=\"25\" x2=\"25\" y2=\"25\" />\n",
" <line x1=\"0\" y1=\"25\" x2=\"25\" y2=\"25\" />\n",
" <line x1=\"0\" y1=\"25\" x2=\"25\" y2=\"25\" />\n",
" <line x1=\"0\" y1=\"26\" x2=\"25\" y2=\"26\" />\n",
" <line x1=\"0\" y1=\"26\" x2=\"25\" y2=\"26\" />\n",
" <line x1=\"0\" y1=\"26\" x2=\"25\" y2=\"26\" />\n",
" <line x1=\"0\" y1=\"26\" x2=\"25\" y2=\"26\" />\n",
" <line x1=\"0\" y1=\"27\" x2=\"25\" y2=\"27\" />\n",
" <line x1=\"0\" y1=\"27\" x2=\"25\" y2=\"27\" />\n",
" <line x1=\"0\" y1=\"27\" x2=\"25\" y2=\"27\" />\n",
" <line x1=\"0\" y1=\"27\" x2=\"25\" y2=\"27\" />\n",
" <line x1=\"0\" y1=\"28\" x2=\"25\" y2=\"28\" />\n",
" <line x1=\"0\" y1=\"28\" x2=\"25\" y2=\"28\" />\n",
" <line x1=\"0\" y1=\"28\" x2=\"25\" y2=\"28\" />\n",
" <line x1=\"0\" y1=\"28\" x2=\"25\" y2=\"28\" />\n",
" <line x1=\"0\" y1=\"29\" x2=\"25\" y2=\"29\" />\n",
" <line x1=\"0\" y1=\"29\" x2=\"25\" y2=\"29\" />\n",
" <line x1=\"0\" y1=\"29\" x2=\"25\" y2=\"29\" />\n",
" <line x1=\"0\" y1=\"29\" x2=\"25\" y2=\"29\" />\n",
" <line x1=\"0\" y1=\"30\" x2=\"25\" y2=\"30\" />\n",
" <line x1=\"0\" y1=\"30\" x2=\"25\" y2=\"30\" />\n",
" <line x1=\"0\" y1=\"30\" x2=\"25\" y2=\"30\" />\n",
" <line x1=\"0\" y1=\"30\" x2=\"25\" y2=\"30\" />\n",
" <line x1=\"0\" y1=\"30\" x2=\"25\" y2=\"30\" />\n",
" <line x1=\"0\" y1=\"31\" x2=\"25\" y2=\"31\" />\n",
" <line x1=\"0\" y1=\"31\" x2=\"25\" y2=\"31\" />\n",
" <line x1=\"0\" y1=\"31\" x2=\"25\" y2=\"31\" />\n",
" <line x1=\"0\" y1=\"31\" x2=\"25\" y2=\"31\" />\n",
" <line x1=\"0\" y1=\"32\" x2=\"25\" y2=\"32\" />\n",
" <line x1=\"0\" y1=\"32\" x2=\"25\" y2=\"32\" />\n",
" <line x1=\"0\" y1=\"32\" x2=\"25\" y2=\"32\" />\n",
" <line x1=\"0\" y1=\"32\" x2=\"25\" y2=\"32\" />\n",
" <line x1=\"0\" y1=\"33\" x2=\"25\" y2=\"33\" />\n",
" <line x1=\"0\" y1=\"33\" x2=\"25\" y2=\"33\" />\n",
" <line x1=\"0\" y1=\"33\" x2=\"25\" y2=\"33\" />\n",
" <line x1=\"0\" y1=\"33\" x2=\"25\" y2=\"33\" />\n",
" <line x1=\"0\" y1=\"34\" x2=\"25\" y2=\"34\" />\n",
" <line x1=\"0\" y1=\"34\" x2=\"25\" y2=\"34\" />\n",
" <line x1=\"0\" y1=\"34\" x2=\"25\" y2=\"34\" />\n",
" <line x1=\"0\" y1=\"34\" x2=\"25\" y2=\"34\" />\n",
" <line x1=\"0\" y1=\"35\" x2=\"25\" y2=\"35\" />\n",
" <line x1=\"0\" y1=\"35\" x2=\"25\" y2=\"35\" />\n",
" <line x1=\"0\" y1=\"35\" x2=\"25\" y2=\"35\" />\n",
" <line x1=\"0\" y1=\"35\" x2=\"25\" y2=\"35\" />\n",
" <line x1=\"0\" y1=\"36\" x2=\"25\" y2=\"36\" />\n",
" <line x1=\"0\" y1=\"36\" x2=\"25\" y2=\"36\" />\n",
" <line x1=\"0\" y1=\"36\" x2=\"25\" y2=\"36\" />\n",
" <line x1=\"0\" y1=\"36\" x2=\"25\" y2=\"36\" />\n",
" <line x1=\"0\" y1=\"36\" x2=\"25\" y2=\"36\" />\n",
" <line x1=\"0\" y1=\"37\" x2=\"25\" y2=\"37\" />\n",
" <line x1=\"0\" y1=\"37\" x2=\"25\" y2=\"37\" />\n",
" <line x1=\"0\" y1=\"37\" x2=\"25\" y2=\"37\" />\n",
" <line x1=\"0\" y1=\"37\" x2=\"25\" y2=\"37\" />\n",
" <line x1=\"0\" y1=\"38\" x2=\"25\" y2=\"38\" />\n",
" <line x1=\"0\" y1=\"38\" x2=\"25\" y2=\"38\" />\n",
" <line x1=\"0\" y1=\"38\" x2=\"25\" y2=\"38\" />\n",
" <line x1=\"0\" y1=\"38\" x2=\"25\" y2=\"38\" />\n",
" <line x1=\"0\" y1=\"39\" x2=\"25\" y2=\"39\" />\n",
" <line x1=\"0\" y1=\"39\" x2=\"25\" y2=\"39\" />\n",
" <line x1=\"0\" y1=\"39\" x2=\"25\" y2=\"39\" />\n",
" <line x1=\"0\" y1=\"39\" x2=\"25\" y2=\"39\" />\n",
" <line x1=\"0\" y1=\"40\" x2=\"25\" y2=\"40\" />\n",
" <line x1=\"0\" y1=\"40\" x2=\"25\" y2=\"40\" />\n",
" <line x1=\"0\" y1=\"40\" x2=\"25\" y2=\"40\" />\n",
" <line x1=\"0\" y1=\"40\" x2=\"25\" y2=\"40\" />\n",
" <line x1=\"0\" y1=\"41\" x2=\"25\" y2=\"41\" />\n",
" <line x1=\"0\" y1=\"41\" x2=\"25\" y2=\"41\" />\n",
" <line x1=\"0\" y1=\"41\" x2=\"25\" y2=\"41\" />\n",
" <line x1=\"0\" y1=\"41\" x2=\"25\" y2=\"41\" />\n",
" <line x1=\"0\" y1=\"42\" x2=\"25\" y2=\"42\" />\n",
" <line x1=\"0\" y1=\"42\" x2=\"25\" y2=\"42\" />\n",
" <line x1=\"0\" y1=\"42\" x2=\"25\" y2=\"42\" />\n",
" <line x1=\"0\" y1=\"42\" x2=\"25\" y2=\"42\" />\n",
" <line x1=\"0\" y1=\"42\" x2=\"25\" y2=\"42\" />\n",
" <line x1=\"0\" y1=\"43\" x2=\"25\" y2=\"43\" />\n",
" <line x1=\"0\" y1=\"43\" x2=\"25\" y2=\"43\" />\n",
" <line x1=\"0\" y1=\"43\" x2=\"25\" y2=\"43\" />\n",
" <line x1=\"0\" y1=\"43\" x2=\"25\" y2=\"43\" />\n",
" <line x1=\"0\" y1=\"44\" x2=\"25\" y2=\"44\" />\n",
" <line x1=\"0\" y1=\"44\" x2=\"25\" y2=\"44\" />\n",
" <line x1=\"0\" y1=\"44\" x2=\"25\" y2=\"44\" />\n",
" <line x1=\"0\" y1=\"44\" x2=\"25\" y2=\"44\" />\n",
" <line x1=\"0\" y1=\"45\" x2=\"25\" y2=\"45\" />\n",
" <line x1=\"0\" y1=\"45\" x2=\"25\" y2=\"45\" />\n",
" <line x1=\"0\" y1=\"45\" x2=\"25\" y2=\"45\" />\n",
" <line x1=\"0\" y1=\"45\" x2=\"25\" y2=\"45\" />\n",
" <line x1=\"0\" y1=\"46\" x2=\"25\" y2=\"46\" />\n",
" <line x1=\"0\" y1=\"46\" x2=\"25\" y2=\"46\" />\n",
" <line x1=\"0\" y1=\"46\" x2=\"25\" y2=\"46\" />\n",
" <line x1=\"0\" y1=\"46\" x2=\"25\" y2=\"46\" />\n",
" <line x1=\"0\" y1=\"47\" x2=\"25\" y2=\"47\" />\n",
" <line x1=\"0\" y1=\"47\" x2=\"25\" y2=\"47\" />\n",
" <line x1=\"0\" y1=\"47\" x2=\"25\" y2=\"47\" />\n",
" <line x1=\"0\" y1=\"47\" x2=\"25\" y2=\"47\" />\n",
" <line x1=\"0\" y1=\"48\" x2=\"25\" y2=\"48\" />\n",
" <line x1=\"0\" y1=\"48\" x2=\"25\" y2=\"48\" />\n",
" <line x1=\"0\" y1=\"48\" x2=\"25\" y2=\"48\" />\n",
" <line x1=\"0\" y1=\"48\" x2=\"25\" y2=\"48\" />\n",
" <line x1=\"0\" y1=\"48\" x2=\"25\" y2=\"48\" />\n",
" <line x1=\"0\" y1=\"49\" x2=\"25\" y2=\"49\" />\n",
" <line x1=\"0\" y1=\"49\" x2=\"25\" y2=\"49\" />\n",
" <line x1=\"0\" y1=\"49\" x2=\"25\" y2=\"49\" />\n",
" <line x1=\"0\" y1=\"49\" x2=\"25\" y2=\"49\" />\n",
" <line x1=\"0\" y1=\"50\" x2=\"25\" y2=\"50\" />\n",
" <line x1=\"0\" y1=\"50\" x2=\"25\" y2=\"50\" />\n",
" <line x1=\"0\" y1=\"50\" x2=\"25\" y2=\"50\" />\n",
" <line x1=\"0\" y1=\"50\" x2=\"25\" y2=\"50\" />\n",
" <line x1=\"0\" y1=\"51\" x2=\"25\" y2=\"51\" />\n",
" <line x1=\"0\" y1=\"51\" x2=\"25\" y2=\"51\" />\n",
" <line x1=\"0\" y1=\"51\" x2=\"25\" y2=\"51\" />\n",
" <line x1=\"0\" y1=\"51\" x2=\"25\" y2=\"51\" />\n",
" <line x1=\"0\" y1=\"52\" x2=\"25\" y2=\"52\" />\n",
" <line x1=\"0\" y1=\"52\" x2=\"25\" y2=\"52\" />\n",
" <line x1=\"0\" y1=\"52\" x2=\"25\" y2=\"52\" />\n",
" <line x1=\"0\" y1=\"52\" x2=\"25\" y2=\"52\" />\n",
" <line x1=\"0\" y1=\"53\" x2=\"25\" y2=\"53\" />\n",
" <line x1=\"0\" y1=\"53\" x2=\"25\" y2=\"53\" />\n",
" <line x1=\"0\" y1=\"53\" x2=\"25\" y2=\"53\" />\n",
" <line x1=\"0\" y1=\"53\" x2=\"25\" y2=\"53\" />\n",
" <line x1=\"0\" y1=\"54\" x2=\"25\" y2=\"54\" />\n",
" <line x1=\"0\" y1=\"54\" x2=\"25\" y2=\"54\" />\n",
" <line x1=\"0\" y1=\"54\" x2=\"25\" y2=\"54\" />\n",
" <line x1=\"0\" y1=\"54\" x2=\"25\" y2=\"54\" />\n",
" <line x1=\"0\" y1=\"54\" x2=\"25\" y2=\"54\" />\n",
" <line x1=\"0\" y1=\"55\" x2=\"25\" y2=\"55\" />\n",
" <line x1=\"0\" y1=\"55\" x2=\"25\" y2=\"55\" />\n",
" <line x1=\"0\" y1=\"55\" x2=\"25\" y2=\"55\" />\n",
" <line x1=\"0\" y1=\"55\" x2=\"25\" y2=\"55\" />\n",
" <line x1=\"0\" y1=\"56\" x2=\"25\" y2=\"56\" />\n",
" <line x1=\"0\" y1=\"56\" x2=\"25\" y2=\"56\" />\n",
" <line x1=\"0\" y1=\"56\" x2=\"25\" y2=\"56\" />\n",
" <line x1=\"0\" y1=\"56\" x2=\"25\" y2=\"56\" />\n",
" <line x1=\"0\" y1=\"57\" x2=\"25\" y2=\"57\" />\n",
" <line x1=\"0\" y1=\"57\" x2=\"25\" y2=\"57\" />\n",
" <line x1=\"0\" y1=\"57\" x2=\"25\" y2=\"57\" />\n",
" <line x1=\"0\" y1=\"57\" x2=\"25\" y2=\"57\" />\n",
" <line x1=\"0\" y1=\"58\" x2=\"25\" y2=\"58\" />\n",
" <line x1=\"0\" y1=\"58\" x2=\"25\" y2=\"58\" />\n",
" <line x1=\"0\" y1=\"58\" x2=\"25\" y2=\"58\" />\n",
" <line x1=\"0\" y1=\"58\" x2=\"25\" y2=\"58\" />\n",
" <line x1=\"0\" y1=\"59\" x2=\"25\" y2=\"59\" />\n",
" <line x1=\"0\" y1=\"59\" x2=\"25\" y2=\"59\" />\n",
" <line x1=\"0\" y1=\"59\" x2=\"25\" y2=\"59\" />\n",
" <line x1=\"0\" y1=\"59\" x2=\"25\" y2=\"59\" />\n",
" <line x1=\"0\" y1=\"60\" x2=\"25\" y2=\"60\" />\n",
" <line x1=\"0\" y1=\"60\" x2=\"25\" y2=\"60\" />\n",
" <line x1=\"0\" y1=\"60\" x2=\"25\" y2=\"60\" />\n",
" <line x1=\"0\" y1=\"60\" x2=\"25\" y2=\"60\" />\n",
" <line x1=\"0\" y1=\"60\" x2=\"25\" y2=\"60\" />\n",
" <line x1=\"0\" y1=\"61\" x2=\"25\" y2=\"61\" />\n",
" <line x1=\"0\" y1=\"61\" x2=\"25\" y2=\"61\" />\n",
" <line x1=\"0\" y1=\"61\" x2=\"25\" y2=\"61\" />\n",
" <line x1=\"0\" y1=\"61\" x2=\"25\" y2=\"61\" />\n",
" <line x1=\"0\" y1=\"62\" x2=\"25\" y2=\"62\" />\n",
" <line x1=\"0\" y1=\"62\" x2=\"25\" y2=\"62\" />\n",
" <line x1=\"0\" y1=\"62\" x2=\"25\" y2=\"62\" />\n",
" <line x1=\"0\" y1=\"62\" x2=\"25\" y2=\"62\" />\n",
" <line x1=\"0\" y1=\"63\" x2=\"25\" y2=\"63\" />\n",
" <line x1=\"0\" y1=\"63\" x2=\"25\" y2=\"63\" />\n",
" <line x1=\"0\" y1=\"63\" x2=\"25\" y2=\"63\" />\n",
" <line x1=\"0\" y1=\"63\" x2=\"25\" y2=\"63\" />\n",
" <line x1=\"0\" y1=\"64\" x2=\"25\" y2=\"64\" />\n",
" <line x1=\"0\" y1=\"64\" x2=\"25\" y2=\"64\" />\n",
" <line x1=\"0\" y1=\"64\" x2=\"25\" y2=\"64\" />\n",
" <line x1=\"0\" y1=\"64\" x2=\"25\" y2=\"64\" />\n",
" <line x1=\"0\" y1=\"65\" x2=\"25\" y2=\"65\" />\n",
" <line x1=\"0\" y1=\"65\" x2=\"25\" y2=\"65\" />\n",
" <line x1=\"0\" y1=\"65\" x2=\"25\" y2=\"65\" />\n",
" <line x1=\"0\" y1=\"65\" x2=\"25\" y2=\"65\" />\n",
" <line x1=\"0\" y1=\"66\" x2=\"25\" y2=\"66\" />\n",
" <line x1=\"0\" y1=\"66\" x2=\"25\" y2=\"66\" />\n",
" <line x1=\"0\" y1=\"66\" x2=\"25\" y2=\"66\" />\n",
" <line x1=\"0\" y1=\"66\" x2=\"25\" y2=\"66\" />\n",
" <line x1=\"0\" y1=\"66\" x2=\"25\" y2=\"66\" />\n",
" <line x1=\"0\" y1=\"67\" x2=\"25\" y2=\"67\" />\n",
" <line x1=\"0\" y1=\"67\" x2=\"25\" y2=\"67\" />\n",
" <line x1=\"0\" y1=\"67\" x2=\"25\" y2=\"67\" />\n",
" <line x1=\"0\" y1=\"67\" x2=\"25\" y2=\"67\" />\n",
" <line x1=\"0\" y1=\"68\" x2=\"25\" y2=\"68\" />\n",
" <line x1=\"0\" y1=\"68\" x2=\"25\" y2=\"68\" />\n",
" <line x1=\"0\" y1=\"68\" x2=\"25\" y2=\"68\" />\n",
" <line x1=\"0\" y1=\"68\" x2=\"25\" y2=\"68\" />\n",
" <line x1=\"0\" y1=\"69\" x2=\"25\" y2=\"69\" />\n",
" <line x1=\"0\" y1=\"69\" x2=\"25\" y2=\"69\" />\n",
" <line x1=\"0\" y1=\"69\" x2=\"25\" y2=\"69\" />\n",
" <line x1=\"0\" y1=\"69\" x2=\"25\" y2=\"69\" />\n",
" <line x1=\"0\" y1=\"70\" x2=\"25\" y2=\"70\" />\n",
" <line x1=\"0\" y1=\"70\" x2=\"25\" y2=\"70\" />\n",
" <line x1=\"0\" y1=\"70\" x2=\"25\" y2=\"70\" />\n",
" <line x1=\"0\" y1=\"70\" x2=\"25\" y2=\"70\" />\n",
" <line x1=\"0\" y1=\"71\" x2=\"25\" y2=\"71\" />\n",
" <line x1=\"0\" y1=\"71\" x2=\"25\" y2=\"71\" />\n",
" <line x1=\"0\" y1=\"71\" x2=\"25\" y2=\"71\" />\n",
" <line x1=\"0\" y1=\"71\" x2=\"25\" y2=\"71\" />\n",
" <line x1=\"0\" y1=\"72\" x2=\"25\" y2=\"72\" />\n",
" <line x1=\"0\" y1=\"72\" x2=\"25\" y2=\"72\" />\n",
" <line x1=\"0\" y1=\"72\" x2=\"25\" y2=\"72\" />\n",
" <line x1=\"0\" y1=\"72\" x2=\"25\" y2=\"72\" />\n",
" <line x1=\"0\" y1=\"72\" x2=\"25\" y2=\"72\" />\n",
" <line x1=\"0\" y1=\"73\" x2=\"25\" y2=\"73\" />\n",
" <line x1=\"0\" y1=\"73\" x2=\"25\" y2=\"73\" />\n",
" <line x1=\"0\" y1=\"73\" x2=\"25\" y2=\"73\" />\n",
" <line x1=\"0\" y1=\"73\" x2=\"25\" y2=\"73\" />\n",
" <line x1=\"0\" y1=\"74\" x2=\"25\" y2=\"74\" />\n",
" <line x1=\"0\" y1=\"74\" x2=\"25\" y2=\"74\" />\n",
" <line x1=\"0\" y1=\"74\" x2=\"25\" y2=\"74\" />\n",
" <line x1=\"0\" y1=\"74\" x2=\"25\" y2=\"74\" />\n",
" <line x1=\"0\" y1=\"75\" x2=\"25\" y2=\"75\" />\n",
" <line x1=\"0\" y1=\"75\" x2=\"25\" y2=\"75\" />\n",
" <line x1=\"0\" y1=\"75\" x2=\"25\" y2=\"75\" />\n",
" <line x1=\"0\" y1=\"75\" x2=\"25\" y2=\"75\" />\n",
" <line x1=\"0\" y1=\"76\" x2=\"25\" y2=\"76\" />\n",
" <line x1=\"0\" y1=\"76\" x2=\"25\" y2=\"76\" />\n",
" <line x1=\"0\" y1=\"76\" x2=\"25\" y2=\"76\" />\n",
" <line x1=\"0\" y1=\"76\" x2=\"25\" y2=\"76\" />\n",
" <line x1=\"0\" y1=\"77\" x2=\"25\" y2=\"77\" />\n",
" <line x1=\"0\" y1=\"77\" x2=\"25\" y2=\"77\" />\n",
" <line x1=\"0\" y1=\"77\" x2=\"25\" y2=\"77\" />\n",
" <line x1=\"0\" y1=\"77\" x2=\"25\" y2=\"77\" />\n",
" <line x1=\"0\" y1=\"78\" x2=\"25\" y2=\"78\" />\n",
" <line x1=\"0\" y1=\"78\" x2=\"25\" y2=\"78\" />\n",
" <line x1=\"0\" y1=\"78\" x2=\"25\" y2=\"78\" />\n",
" <line x1=\"0\" y1=\"78\" x2=\"25\" y2=\"78\" />\n",
" <line x1=\"0\" y1=\"78\" x2=\"25\" y2=\"78\" />\n",
" <line x1=\"0\" y1=\"79\" x2=\"25\" y2=\"79\" />\n",
" <line x1=\"0\" y1=\"79\" x2=\"25\" y2=\"79\" />\n",
" <line x1=\"0\" y1=\"79\" x2=\"25\" y2=\"79\" />\n",
" <line x1=\"0\" y1=\"79\" x2=\"25\" y2=\"79\" />\n",
" <line x1=\"0\" y1=\"80\" x2=\"25\" y2=\"80\" />\n",
" <line x1=\"0\" y1=\"80\" x2=\"25\" y2=\"80\" />\n",
" <line x1=\"0\" y1=\"80\" x2=\"25\" y2=\"80\" />\n",
" <line x1=\"0\" y1=\"80\" x2=\"25\" y2=\"80\" />\n",
" <line x1=\"0\" y1=\"81\" x2=\"25\" y2=\"81\" />\n",
" <line x1=\"0\" y1=\"81\" x2=\"25\" y2=\"81\" />\n",
" <line x1=\"0\" y1=\"81\" x2=\"25\" y2=\"81\" />\n",
" <line x1=\"0\" y1=\"81\" x2=\"25\" y2=\"81\" />\n",
" <line x1=\"0\" y1=\"82\" x2=\"25\" y2=\"82\" />\n",
" <line x1=\"0\" y1=\"82\" x2=\"25\" y2=\"82\" />\n",
" <line x1=\"0\" y1=\"82\" x2=\"25\" y2=\"82\" />\n",
" <line x1=\"0\" y1=\"82\" x2=\"25\" y2=\"82\" />\n",
" <line x1=\"0\" y1=\"83\" x2=\"25\" y2=\"83\" />\n",
" <line x1=\"0\" y1=\"83\" x2=\"25\" y2=\"83\" />\n",
" <line x1=\"0\" y1=\"83\" x2=\"25\" y2=\"83\" />\n",
" <line x1=\"0\" y1=\"83\" x2=\"25\" y2=\"83\" />\n",
" <line x1=\"0\" y1=\"84\" x2=\"25\" y2=\"84\" />\n",
" <line x1=\"0\" y1=\"84\" x2=\"25\" y2=\"84\" />\n",
" <line x1=\"0\" y1=\"84\" x2=\"25\" y2=\"84\" />\n",
" <line x1=\"0\" y1=\"84\" x2=\"25\" y2=\"84\" />\n",
" <line x1=\"0\" y1=\"84\" x2=\"25\" y2=\"84\" />\n",
" <line x1=\"0\" y1=\"85\" x2=\"25\" y2=\"85\" />\n",
" <line x1=\"0\" y1=\"85\" x2=\"25\" y2=\"85\" />\n",
" <line x1=\"0\" y1=\"85\" x2=\"25\" y2=\"85\" />\n",
" <line x1=\"0\" y1=\"85\" x2=\"25\" y2=\"85\" />\n",
" <line x1=\"0\" y1=\"86\" x2=\"25\" y2=\"86\" />\n",
" <line x1=\"0\" y1=\"86\" x2=\"25\" y2=\"86\" />\n",
" <line x1=\"0\" y1=\"86\" x2=\"25\" y2=\"86\" />\n",
" <line x1=\"0\" y1=\"86\" x2=\"25\" y2=\"86\" />\n",
" <line x1=\"0\" y1=\"87\" x2=\"25\" y2=\"87\" />\n",
" <line x1=\"0\" y1=\"87\" x2=\"25\" y2=\"87\" />\n",
" <line x1=\"0\" y1=\"87\" x2=\"25\" y2=\"87\" />\n",
" <line x1=\"0\" y1=\"87\" x2=\"25\" y2=\"87\" />\n",
" <line x1=\"0\" y1=\"88\" x2=\"25\" y2=\"88\" />\n",
" <line x1=\"0\" y1=\"88\" x2=\"25\" y2=\"88\" />\n",
" <line x1=\"0\" y1=\"88\" x2=\"25\" y2=\"88\" />\n",
" <line x1=\"0\" y1=\"88\" x2=\"25\" y2=\"88\" />\n",
" <line x1=\"0\" y1=\"89\" x2=\"25\" y2=\"89\" />\n",
" <line x1=\"0\" y1=\"89\" x2=\"25\" y2=\"89\" />\n",
" <line x1=\"0\" y1=\"89\" x2=\"25\" y2=\"89\" />\n",
" <line x1=\"0\" y1=\"89\" x2=\"25\" y2=\"89\" />\n",
" <line x1=\"0\" y1=\"90\" x2=\"25\" y2=\"90\" />\n",
" <line x1=\"0\" y1=\"90\" x2=\"25\" y2=\"90\" />\n",
" <line x1=\"0\" y1=\"90\" x2=\"25\" y2=\"90\" />\n",
" <line x1=\"0\" y1=\"90\" x2=\"25\" y2=\"90\" />\n",
" <line x1=\"0\" y1=\"90\" x2=\"25\" y2=\"90\" />\n",
" <line x1=\"0\" y1=\"91\" x2=\"25\" y2=\"91\" />\n",
" <line x1=\"0\" y1=\"91\" x2=\"25\" y2=\"91\" />\n",
" <line x1=\"0\" y1=\"91\" x2=\"25\" y2=\"91\" />\n",
" <line x1=\"0\" y1=\"91\" x2=\"25\" y2=\"91\" />\n",
" <line x1=\"0\" y1=\"92\" x2=\"25\" y2=\"92\" />\n",
" <line x1=\"0\" y1=\"92\" x2=\"25\" y2=\"92\" />\n",
" <line x1=\"0\" y1=\"92\" x2=\"25\" y2=\"92\" />\n",
" <line x1=\"0\" y1=\"92\" x2=\"25\" y2=\"92\" />\n",
" <line x1=\"0\" y1=\"93\" x2=\"25\" y2=\"93\" />\n",
" <line x1=\"0\" y1=\"93\" x2=\"25\" y2=\"93\" />\n",
" <line x1=\"0\" y1=\"93\" x2=\"25\" y2=\"93\" />\n",
" <line x1=\"0\" y1=\"93\" x2=\"25\" y2=\"93\" />\n",
" <line x1=\"0\" y1=\"94\" x2=\"25\" y2=\"94\" />\n",
" <line x1=\"0\" y1=\"94\" x2=\"25\" y2=\"94\" />\n",
" <line x1=\"0\" y1=\"94\" x2=\"25\" y2=\"94\" />\n",
" <line x1=\"0\" y1=\"94\" x2=\"25\" y2=\"94\" />\n",
" <line x1=\"0\" y1=\"95\" x2=\"25\" y2=\"95\" />\n",
" <line x1=\"0\" y1=\"95\" x2=\"25\" y2=\"95\" />\n",
" <line x1=\"0\" y1=\"95\" x2=\"25\" y2=\"95\" />\n",
" <line x1=\"0\" y1=\"95\" x2=\"25\" y2=\"95\" />\n",
" <line x1=\"0\" y1=\"96\" x2=\"25\" y2=\"96\" />\n",
" <line x1=\"0\" y1=\"96\" x2=\"25\" y2=\"96\" />\n",
" <line x1=\"0\" y1=\"96\" x2=\"25\" y2=\"96\" />\n",
" <line x1=\"0\" y1=\"96\" x2=\"25\" y2=\"96\" />\n",
" <line x1=\"0\" y1=\"96\" x2=\"25\" y2=\"96\" />\n",
" <line x1=\"0\" y1=\"97\" x2=\"25\" y2=\"97\" />\n",
" <line x1=\"0\" y1=\"97\" x2=\"25\" y2=\"97\" />\n",
" <line x1=\"0\" y1=\"97\" x2=\"25\" y2=\"97\" />\n",
" <line x1=\"0\" y1=\"97\" x2=\"25\" y2=\"97\" />\n",
" <line x1=\"0\" y1=\"98\" x2=\"25\" y2=\"98\" />\n",
" <line x1=\"0\" y1=\"98\" x2=\"25\" y2=\"98\" />\n",
" <line x1=\"0\" y1=\"98\" x2=\"25\" y2=\"98\" />\n",
" <line x1=\"0\" y1=\"98\" x2=\"25\" y2=\"98\" />\n",
" <line x1=\"0\" y1=\"99\" x2=\"25\" y2=\"99\" />\n",
" <line x1=\"0\" y1=\"99\" x2=\"25\" y2=\"99\" />\n",
" <line x1=\"0\" y1=\"99\" x2=\"25\" y2=\"99\" />\n",
" <line x1=\"0\" y1=\"99\" x2=\"25\" y2=\"99\" />\n",
" <line x1=\"0\" y1=\"100\" x2=\"25\" y2=\"100\" />\n",
" <line x1=\"0\" y1=\"100\" x2=\"25\" y2=\"100\" />\n",
" <line x1=\"0\" y1=\"100\" x2=\"25\" y2=\"100\" />\n",
" <line x1=\"0\" y1=\"100\" x2=\"25\" y2=\"100\" />\n",
" <line x1=\"0\" y1=\"101\" x2=\"25\" y2=\"101\" />\n",
" <line x1=\"0\" y1=\"101\" x2=\"25\" y2=\"101\" />\n",
" <line x1=\"0\" y1=\"101\" x2=\"25\" y2=\"101\" />\n",
" <line x1=\"0\" y1=\"101\" x2=\"25\" y2=\"101\" />\n",
" <line x1=\"0\" y1=\"102\" x2=\"25\" y2=\"102\" />\n",
" <line x1=\"0\" y1=\"102\" x2=\"25\" y2=\"102\" />\n",
" <line x1=\"0\" y1=\"102\" x2=\"25\" y2=\"102\" />\n",
" <line x1=\"0\" y1=\"102\" x2=\"25\" y2=\"102\" />\n",
" <line x1=\"0\" y1=\"102\" x2=\"25\" y2=\"102\" />\n",
" <line x1=\"0\" y1=\"103\" x2=\"25\" y2=\"103\" />\n",
" <line x1=\"0\" y1=\"103\" x2=\"25\" y2=\"103\" />\n",
" <line x1=\"0\" y1=\"103\" x2=\"25\" y2=\"103\" />\n",
" <line x1=\"0\" y1=\"103\" x2=\"25\" y2=\"103\" />\n",
" <line x1=\"0\" y1=\"104\" x2=\"25\" y2=\"104\" />\n",
" <line x1=\"0\" y1=\"104\" x2=\"25\" y2=\"104\" />\n",
" <line x1=\"0\" y1=\"104\" x2=\"25\" y2=\"104\" />\n",
" <line x1=\"0\" y1=\"104\" x2=\"25\" y2=\"104\" />\n",
" <line x1=\"0\" y1=\"105\" x2=\"25\" y2=\"105\" />\n",
" <line x1=\"0\" y1=\"105\" x2=\"25\" y2=\"105\" />\n",
" <line x1=\"0\" y1=\"105\" x2=\"25\" y2=\"105\" />\n",
" <line x1=\"0\" y1=\"105\" x2=\"25\" y2=\"105\" />\n",
" <line x1=\"0\" y1=\"106\" x2=\"25\" y2=\"106\" />\n",
" <line x1=\"0\" y1=\"106\" x2=\"25\" y2=\"106\" />\n",
" <line x1=\"0\" y1=\"106\" x2=\"25\" y2=\"106\" />\n",
" <line x1=\"0\" y1=\"106\" x2=\"25\" y2=\"106\" />\n",
" <line x1=\"0\" y1=\"107\" x2=\"25\" y2=\"107\" />\n",
" <line x1=\"0\" y1=\"107\" x2=\"25\" y2=\"107\" />\n",
" <line x1=\"0\" y1=\"107\" x2=\"25\" y2=\"107\" />\n",
" <line x1=\"0\" y1=\"107\" x2=\"25\" y2=\"107\" />\n",
" <line x1=\"0\" y1=\"108\" x2=\"25\" y2=\"108\" />\n",
" <line x1=\"0\" y1=\"108\" x2=\"25\" y2=\"108\" />\n",
" <line x1=\"0\" y1=\"108\" x2=\"25\" y2=\"108\" />\n",
" <line x1=\"0\" y1=\"108\" x2=\"25\" y2=\"108\" />\n",
" <line x1=\"0\" y1=\"108\" x2=\"25\" y2=\"108\" />\n",
" <line x1=\"0\" y1=\"109\" x2=\"25\" y2=\"109\" />\n",
" <line x1=\"0\" y1=\"109\" x2=\"25\" y2=\"109\" />\n",
" <line x1=\"0\" y1=\"109\" x2=\"25\" y2=\"109\" />\n",
" <line x1=\"0\" y1=\"109\" x2=\"25\" y2=\"109\" />\n",
" <line x1=\"0\" y1=\"110\" x2=\"25\" y2=\"110\" />\n",
" <line x1=\"0\" y1=\"110\" x2=\"25\" y2=\"110\" />\n",
" <line x1=\"0\" y1=\"110\" x2=\"25\" y2=\"110\" />\n",
" <line x1=\"0\" y1=\"110\" x2=\"25\" y2=\"110\" />\n",
" <line x1=\"0\" y1=\"111\" x2=\"25\" y2=\"111\" />\n",
" <line x1=\"0\" y1=\"111\" x2=\"25\" y2=\"111\" />\n",
" <line x1=\"0\" y1=\"111\" x2=\"25\" y2=\"111\" />\n",
" <line x1=\"0\" y1=\"111\" x2=\"25\" y2=\"111\" />\n",
" <line x1=\"0\" y1=\"112\" x2=\"25\" y2=\"112\" />\n",
" <line x1=\"0\" y1=\"112\" x2=\"25\" y2=\"112\" />\n",
" <line x1=\"0\" y1=\"112\" x2=\"25\" y2=\"112\" />\n",
" <line x1=\"0\" y1=\"112\" x2=\"25\" y2=\"112\" />\n",
" <line x1=\"0\" y1=\"113\" x2=\"25\" y2=\"113\" />\n",
" <line x1=\"0\" y1=\"113\" x2=\"25\" y2=\"113\" />\n",
" <line x1=\"0\" y1=\"113\" x2=\"25\" y2=\"113\" />\n",
" <line x1=\"0\" y1=\"113\" x2=\"25\" y2=\"113\" />\n",
" <line x1=\"0\" y1=\"114\" x2=\"25\" y2=\"114\" />\n",
" <line x1=\"0\" y1=\"114\" x2=\"25\" y2=\"114\" />\n",
" <line x1=\"0\" y1=\"114\" x2=\"25\" y2=\"114\" />\n",
" <line x1=\"0\" y1=\"114\" x2=\"25\" y2=\"114\" />\n",
" <line x1=\"0\" y1=\"114\" x2=\"25\" y2=\"114\" />\n",
" <line x1=\"0\" y1=\"115\" x2=\"25\" y2=\"115\" />\n",
" <line x1=\"0\" y1=\"115\" x2=\"25\" y2=\"115\" />\n",
" <line x1=\"0\" y1=\"115\" x2=\"25\" y2=\"115\" />\n",
" <line x1=\"0\" y1=\"115\" x2=\"25\" y2=\"115\" />\n",
" <line x1=\"0\" y1=\"116\" x2=\"25\" y2=\"116\" />\n",
" <line x1=\"0\" y1=\"116\" x2=\"25\" y2=\"116\" />\n",
" <line x1=\"0\" y1=\"116\" x2=\"25\" y2=\"116\" />\n",
" <line x1=\"0\" y1=\"116\" x2=\"25\" y2=\"116\" />\n",
" <line x1=\"0\" y1=\"117\" x2=\"25\" y2=\"117\" />\n",
" <line x1=\"0\" y1=\"117\" x2=\"25\" y2=\"117\" />\n",
" <line x1=\"0\" y1=\"117\" x2=\"25\" y2=\"117\" />\n",
" <line x1=\"0\" y1=\"117\" x2=\"25\" y2=\"117\" />\n",
" <line x1=\"0\" y1=\"118\" x2=\"25\" y2=\"118\" />\n",
" <line x1=\"0\" y1=\"118\" x2=\"25\" y2=\"118\" />\n",
" <line x1=\"0\" y1=\"118\" x2=\"25\" y2=\"118\" />\n",
" <line x1=\"0\" y1=\"118\" x2=\"25\" y2=\"118\" />\n",
" <line x1=\"0\" y1=\"119\" x2=\"25\" y2=\"119\" />\n",
" <line x1=\"0\" y1=\"119\" x2=\"25\" y2=\"119\" />\n",
" <line x1=\"0\" y1=\"119\" x2=\"25\" y2=\"119\" />\n",
" <line x1=\"0\" y1=\"119\" x2=\"25\" y2=\"119\" />\n",
" <line x1=\"0\" y1=\"120\" x2=\"25\" y2=\"120\" style=\"stroke-width:2\" />\n",
"\n",
" <!-- Vertical lines -->\n",
" <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"120\" style=\"stroke-width:2\" />\n",
" <line x1=\"6\" y1=\"0\" x2=\"6\" y2=\"120\" />\n",
" <line x1=\"12\" y1=\"0\" x2=\"12\" y2=\"120\" />\n",
" <line x1=\"19\" y1=\"0\" x2=\"19\" y2=\"120\" />\n",
" <line x1=\"25\" y1=\"0\" x2=\"25\" y2=\"120\" style=\"stroke-width:2\" />\n",
"\n",
" <!-- Colored Rectangle -->\n",
" <polygon points=\"0.000000,0.000000 25.412617,0.000000 25.412617,120.000000 0.000000,120.000000\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
"\n",
" <!-- Text -->\n",
" <text x=\"12.706308\" y=\"140.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >20000</text>\n",
" <text x=\"45.412617\" y=\"60.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(-90,45.412617,60.000000)\">10000000</text>\n",
"</svg>\n",
"</td>\n",
"</tr>\n",
"</table>"
],
"text/plain": [
"dask.array<randint, shape=(10000000, 20000), dtype=uint8, chunksize=(20000, 5000), chunktype=cupy.ndarray>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x = rs.randint(0, 3, size=(10_000_000, 20_000), \n",
" chunks=(20_000, 5_000), dtype=\"uint8\")\n",
"x"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 5.47 s, sys: 810 ms, total: 6.28 s\n",
"Wall time: 31 s\n"
]
}
],
"source": [
"%%time\n",
"x = x.persist()\n",
"_ = wait(x);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Calculate SVD"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 6.82 s, sys: 655 ms, total: 7.47 s\n",
"Wall time: 13.5 s\n"
]
},
{
"data": {
"text/plain": [
"array([[ 0.00708035, 0.0070814 , 0.00706951, ..., 0.00705772,\n",
" 0.00706385, 0.00706919],\n",
" [-0.00828586, 0.00272798, -0.00012425, ..., -0.0008114 ,\n",
" 0.00578989, 0.00011516],\n",
" [-0.00212376, 0.0038137 , -0.00507415, ..., -0.00657831,\n",
" 0.00651364, 0.00707903],\n",
" ...,\n",
" [ 0.00490506, 0.0027471 , 0.01441292, ..., -0.00598521,\n",
" -0.0035699 , -0.00508925],\n",
" [-0.00202074, 0.00021128, 0.00283297, ..., -0.00494039,\n",
" 0.00225633, 0.00758967],\n",
" [ 0.00480698, 0.00153497, -0.01142091, ..., -0.00982944,\n",
" 0.01104207, -0.0008731 ]])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%time\n",
"u, s, v = da.linalg.svd_compressed(x, k=10, seed=rs)\n",
"v.compute()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"with performance_report(filename=\"dask-large-svd-report.html\"):\n",
" u, s, v = da.linalg.svd_compressed(x, k=10, seed=rs)\n",
" v.compute()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%time\n",
"with get_task_stream() as data:\n",
" u, s, v = da.linalg.svd_compressed(x, k=10, seed=rs)\n",
" v.compute();"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"timespent = defaultdict(int)\n",
"\n",
"for d in data.data:\n",
" for q in d['startstops']:\n",
" start = q['start']\n",
" stop = q['stop']\n",
" compute = q['action']\n",
" timespent[compute] += stop-start\n",
"timespent"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:20200501]",
"language": "python",
"name": "conda-env-20200501-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.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment