From a550bbfea7c3c259b27aa533d6f16fc80d4eec7c Mon Sep 17 00:00:00 2001 From: syelman Date: Tue, 25 Jul 2023 15:08:17 +0200 Subject: [PATCH 01/15] update notebooks --- .gitignore | 3 + anndata_dask_array.ipynb | 11 +- concat-on-disk.ipynb | 427 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 436 insertions(+), 5 deletions(-) create mode 100644 concat-on-disk.ipynb diff --git a/.gitignore b/.gitignore index 900c3b1..7a3570b 100644 --- a/.gitignore +++ b/.gitignore @@ -108,3 +108,6 @@ ENV/ *.h5ad mydask.png *.zarr + +# Concat on disk tutorial +tmpdata \ No newline at end of file diff --git a/anndata_dask_array.ipynb b/anndata_dask_array.ipynb index 7a7c352..f19405c 100644 --- a/anndata_dask_array.ipynb +++ b/anndata_dask_array.ipynb @@ -294,7 +294,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "" ] @@ -413,7 +413,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA24AAANYCAYAAAC8cr7XAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzde1zP9///8XvnlITK+VByTplQUYlGauQQasyZsDnN2Jh9N5vZh9nHabY5ZJNTKOdDZSGnig50ICIVsRxKpVI6vX5/7KfPp4/Diur57vW+Xy+XLpd596r3rUnPHq/366AiSZIEIiIiIiIiUlRFqqILiIiIiIiI6M04uBERERERESk4Dm5EREREREQKTl10AFFlhIaG4t69e6IzFFqrVq1gY2MjOoOIiGohSZLg5+cnOkPh2draonnz5qIzSMmo8OIkVJuMGDECBw4cEJ2h0Nzd3bF3717RGUREVAuVlJRAXZ379f/Jvn37MGLECNEZpFx4cRKqfdzd3SFJEt9e8ebm5ib6r4eIiGRg3759wtc0RXwrLi4W/VdDSoyDGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4Eb0jkpLS0UnEBEREZHMcXAjegs3b97E3LlzYWxsDAMDAwwePBinTp0SnUVERCQ77dq1g6enp+gMIuE4uBFVUn5+PoYMGYI//vgDAwcOxMcff4xbt27B1dUV586dE51HREQkG97e3khMTBSdQaQQ1EUHENU2X331FRISEuDv7w8XFxcAwNy5c9G1a1dMnDgRSUlJgguJiIhqr3v37uG7775DREQEYmJiROcQKQy+4kZUSd7e3rCwsCgb2gCgcePGGDhwIJKTk3Hp0iWBdURERLVbTk4Obt68CX19ffTs2VN0DpHC4OBGVAnp6enIzMxE//79X3pf+/btAQCRkZE1nUVERCQbnTp1wtmzZ3H27Fn4+PiIziFSGBzciCohISEBANC0adOX3tehQwcAwKNHj2q0iYiIiIjkj4MbUSW8OEG6YcOGL72vdevWAICsrKwabSIiIiIi+ePgRlQJWlpaAIAnT5689L68vDwAQIMGDWq0iYiIiIjkj4MbUSU0adIEAF555cgXw5yRkVGNNhERERGR/HFwI6qE9u3bQ0VF5ZWD24tLFltbW9d0FhER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wL1799C8eXPZUZ7Rpk0bTJgwQXYMS6Jl4WYmdDod1Go1WrRogSpVqsiOY5b27duHLVu2YNCgQbKjlKkNGzbg7bffRs+ePWVHMUsJCQmIiIiAXq+XHYXI5vF89WI8X9muQYMG4dSpU2ZZMJmD8PBwdOzYERs3bpQdxZJouTiJmfn888+tvjApjYLC1lYoFArs3btXdgyztGHDBgwfPlx2DCL6fzxfPR/PV7atffv2LEyeg2Pd0uE9bkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhZuV+uabb3Dy5MlCv6bX6426r8K2d+XKFXz66adG3xeVnCmPhcLwWCCi4nrR+crY2HeRJTFl2ygM24Z5YOFmhfbt24cff/wRvr6+htcuX76MyZMno1atWnB3d0fv3r1x8ODBUu+jqO3Vrl0bgYGBWL58+Uv9LPRyTHEsPKlevXoYN27cU6/xWCCi4ijsfPWkws4vJcW+iyyRKdpGUdtj2zAPLNysTF5eHiZOnIjJkyfDxcUFAJCdnY2+ffti1apV6NGjByZMmIC4uDj06dMHx44dK/E+irM9hUKBv//97/j8889x//59o/6MVDymOBae9OuvvyI+Pv6Z13ksEFFRCjtfPel555eSYN9FlsgUbaM422PbMBOCzEJ+fr4AILZs2fJS2/npp5+ERqMR9+7dM7w2depUAUDs3bvX8FpiYqKoUqWK8Pb2LvE+iru9/Px8UaNGDTFx4sRS/jR/MtbvxxKsX79eKBSKl96OKY6FW7duiXfffVc0a9ZMABAAxLvvvvvM+4x5LBjr90NEL68sz1fFPb8Ul4y+i+cr2zVw4EAxZMiQl96OKdqGjL7cWL8fG5PHK25WZs6cOQgICEDlypUNr/36669o2rQpevbsaXitSpUq6NGjB65du4YzZ86UaB/F3Z5KpcLgwYOxatUqpKenv+RPRiVlimMhPT0dly9fRvny5fHaa6899308FojoRQo7XxX3/FJc7LvIEpmibbAvtxws3KzIhQsXcO3aNTRp0sTw2sOHD5GSkoI33njjmffXr18fABAWFlbsfZR0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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA24AAANYCAYAAAC8cr7XAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzde1zP9///8XvnlITK+VByTplQUYlGauQQasyZsDnN2Jh9N5vZh9nHabY5ZJNTKOdDZSGnig50ICIVsRxKpVI6vX5/7KfPp4/Diur57vW+Xy+XLpd596r3rUnPHq/366AiSZIEIiIiIiIiUlRFqqILiIiIiIiI6M04uBERERERESk4Dm5EREREREQKTl10AFFlhIaG4t69e6IzFFqrVq1gY2MjOoOIiGohSZLg5+cnOkPh2draonnz5qIzSMmo8OIkVJuMGDECBw4cEJ2h0Nzd3bF3717RGUREVAuVlJRAXZ379f/Jvn37MGLECNEZpFx4cRKqfdzd3SFJEt9e8ebm5ib6r4eIiGRg3759wtc0RXwrLi4W/VdDSoyDGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4Eb0jkpLS0UnEBEREZHMcXAjegs3b97E3LlzYWxsDAMDAwwePBinTp0SnUVERCQ77dq1g6enp+gMIuE4uBFVUn5+PoYMGYI//vgDAwcOxMcff4xbt27B1dUV586dE51HREQkG97e3khMTBSdQaQQ1EUHENU2X331FRISEuDv7w8XFxcAwNy5c9G1a1dMnDgRSUlJgguJiIhqr3v37uG7775DREQEYmJiROcQKQy+4kZUSd7e3rCwsCgb2gCgcePGGDhwIJKTk3Hp0iWBdURERLVbTk4Obt68CX19ffTs2VN0DpHC4OBGVAnp6enIzMxE//79X3pf+/btAQCRkZE1nUVERCQbnTp1wtmzZ3H27Fn4+PiIziFSGBzciCohISEBANC0adOX3tehQwcAwKNHj2q0iYiIiIjkj4MbUSW8OEG6YcOGL72vdevWAICsrKwabSIiIiIi+ePgRlQJWlpaAIAnT5689L68vDwAQIMGDWq0iYiIiIjkj4MbUSU0adIEAF555cgXw5yRkVGNNhERERGR/HFwI6qE9u3bQ0VF5ZWD24tLFltbW9d0FhER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wL1799C8eXPZUZ7Rpk0bTJgwQXYMS6Jl4WYmdDod1Go1WrRogSpVqsiOY5b27duHLVu2YNCgQbKjlKkNGzbg7bffRs+ePWVHMUsJCQmIiIiAXq+XHYXI5vF89WI8X9muQYMG4dSpU2ZZMJmD8PBwdOzYERs3bpQdxZJouTiJmfn888+tvjApjYLC1lYoFArs3btXdgyztGHDBgwfPlx2DCL6fzxfPR/PV7atffv2LEyeg2Pd0uE9bkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhZuV+uabb3Dy5MlCv6bX6426r8K2d+XKFXz66adG3xeVnCmPhcLwWCCi4nrR+crY2HeRJTFl2ygM24Z5YOFmhfbt24cff/wRvr6+htcuX76MyZMno1atWnB3d0fv3r1x8ODBUu+jqO3Vrl0bgYGBWL58+Uv9LPRyTHEsPKlevXoYN27cU6/xWCCi4ijsfPWkws4vJcW+iyyRKdpGUdtj2zAPLNysTF5eHiZOnIjJkyfDxcUFAJCdnY2+ffti1apV6NGjByZMmIC4uDj06dMHx44dK/E+irM9hUKBv//97/j8889x//59o/6MVDymOBae9OuvvyI+Pv6Z13ksEFFRCjtfPel555eSYN9FlsgUbaM422PbMBOCzEJ+fr4AILZs2fJS2/npp5+ERqMR9+7dM7w2depUAUDs3bvX8FpiYqKoUqWK8Pb2LvE+iru9/Px8UaNGDTFx4sRS/jR/MtbvxxKsX79eKBSKl96OKY6FW7duiXfffVc0a9ZMABAAxLvvvvvM+4x5LBjr90NEL68sz1fFPb8Ul4y+i+cr2zVw4EAxZMiQl96OKdqGjL7cWL8fG5PHK25WZs6cOQgICEDlypUNr/36669o2rQpevbsaXitSpUq6NGjB65du4YzZ86UaB/F3Z5KpcLgwYOxatUqpKenv+RPRiVlimMhPT0dly9fRvny5fHaa6899308FojoRQo7XxX3/FJc7LvIEpmibbAvtxws3KzIhQsXcO3aNTRp0sTw2sOHD5GSkoI33njjmffXr18fABAWFlbsfZR0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", "text/plain": [ "" ] @@ -443,7 +443,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "" ] @@ -698,7 +698,7 @@ "outputs": [ { "data": { - "image/png": "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SajCwYMHzY033mg8Ho958MEHzbFjx1yXhFOQn59v+vTpY2rXrm1efvllNgIxjLyZWMib8YG8mVjIm/GDvJlYyJvxg7yZWMib8YG8mVgSJG/G15CurKzMPPfccyY1NdVcccUVvDdzAtmxY4cZMGCASUtLMy+//LLrcvAT+/btM1deeaXxer3mqaeeMqWlpa5LQoR8+OGHplWrViYjI8N88cUXrsvBT2RnZ5szzjjDtGnTxixYsMB1OYiQkpIS8+c//9mkpKSYX/7yl+bgwYOuS8KPkDcTF3kztpE3Exd5M7aRNxMTeTO2kTcTF3kztpE3E1ec5834GdIdPnzYjBgxwni9XvP8889zJ1AC8vv95plnnjEpKSnmxhtvNEVFRa5LgjHmyy+/NO3atTNnnnmmyc7Odl0OomD37t1m0KBBpnbt2uaNN95wXQ7+f//+979NWlqayczMNIWFha7LQRQsWrTItG7d2nTq1Mnk5eW5LgeGvJkMyJuxibyZ+MibsYm8mfjIm7GHvJn4yJuxibyZ+OI4b8bHkG7jxo3m3HPPNc2aNePOriTw6aefmhYtWpguXbqYdevWuS4nqU2ePNmcdtpppl+/fub77793XQ6iqKyszIwZM8bUqlXL3HLLLXxAvENHjx41d9xxh/F4PGb06NHG7/e7LglRtGfPHnP55ZebOnXqmDfffNN1OUmNvJlcyJuxg7yZPMibsYO8mVzIm7GDvJlcyJuxg7yZPOI0b8b+kO799983DRo0ML169TIFBQWuy4El+fn55vzzzzeNGjUyH330ketykk5paan53e9+Zzwej3nkkUeMz+dzXRIseeuttwL/5+7atct1OUln586d5oILLjCNGjUyc+fOdV0OLCkpKTEPPPCAkWQeffRRflDmAHkzOZE33SJvJi/yplvkzeRE3nSPvJmcyJtukTeTV5zlzdge0r366qvG6/WaX//613xwcRI6evSoufHGG01qamq8vUQ1rhUVFZn/+Z//MbVr1+aDi5PUhg0bTMeOHU1GRoZZu3at63KSRm5urjnzzDNNly5d+ODiJDVhwgSTlpZmRowYES93eyUE8mZyI2+6Qd4EedMN8ibIm26QN5MbedMN8ibiKG/G5pCurKzMPPHEE8bj8ZgnnniC92dOYj/+t/Dggw9yt1eUff/99+bCCy80TZo0MYsWLXJdDhzat2+f6devn6lfv7758MMPXZeT8BYsWGAaNmxoLrnkErN3717X5cChpUuXmmbNmplevXqZ3bt3uy4noZE3UY68aRd5E+XIm3aRN1GOvGkPeRPlyJt2kTdRLk7yZuwN6Y4fP25Gjhxp0tPTzeTJk12Xgxgxbtw4k5qaam666SZTUlLiupyEtGHDBpORkWE6derEXZUwxpy42+u6664zaWlp/H8cRW+++aZJTU01N998szl+/LjrchAD1q9fb9q3b286dOhgNm/e7LqchETeRDDkzegjb+KnyJt2kDfxU+TN6CNvIhjyZvSRN/FTcZA3p9RSDDl69Kh++ctf6qOPPtL8+fN10003uS4JMeK2227TBx98oHfeeUfDhw/X8ePHXZeUUPLy8tS/f3+1atVKOTk56tixo+uSEANq166tqVOn6sEHH9Stt96q//znP65LSjj/+te/dPvtt+uPf/yjJk6cqLS0NNclIQZ06dJFOTk5aty4sfr166d169a5LimhkDdRFfJmdJE3EQx5M/rImwiGvBld5E1UhbwZXeRNBBMXedP1mLBcUVGRGThwoGncuLFZtmyZ63IQo7744gvTtGlTc9lll5nDhw+7LichrFq1yjRr1sz069ePP1NUacyYMcbj8Zh//vOfrktJGP/4xz+MJPPUU0+5LgUx6siRI+byyy83TZo0McuXL3ddTkIgbyIU5M3II28iFOTNyCNvojrkzcgjbyIU5M3II28iFDGaN2Pj7S4PHDhgLr74YtOyZUuTm5vruhzEuNWrV5vmzZubvn37mkOHDrkuJ64tWbLENGzY0AwdOpQPjUa1XnjhBePxeMzTTz/tupS495e//MV4PB7zyiuvuC4FMa58k9+oUSOTnZ3tupy4Rt5EOMibkUPeRDjIm5FD3kSoyJuRQ95EOMibkUPeRDhiMG9O8RhjjMtX8hUVFWnQoEEqKCjQxx9/rM6dO7ssB3Fi3bp1GjhwoDp06KB58+apbt26rkuKO8uXL9cVV1yhgQMHatq0abztCULy+uuv695779Wzzz6rP/3pT67LiUtPP/20nnrqKY0dO1a3336763IQB44dO6aRI0dq8eLFWrhwoS644ALXJcUd8iZqgrx56sibqAny5qkjbyJc5M1TR95ETZA3Tx15EzURY3kzy+mQ7ujRo7rqqqu0Zs0aLVq0SOecc46rUhCHNm3apH79+qlbt26aO3euateu7bqkuJGbm6sBAwbo5z//ud59912lp6e7Lglx5NVXX9X999+vf/7zn3rkkUdclxNX/vd//1cPP/ywXnvtNd19992uy0EcKSkp0TXXXKMVK1bo008/Vbdu3VyXFDfImzgV5M2aI2/iVJA3a468iZoib9YceROngrxZc+RNnIoYyptZtVxduaSkRCNHjtSXX36p+fPns4AhbGeffbbmz5+vL7/8Utddd518Pp/rkuLCpk2bNHjwYPXs2VPvvPMOCxjCdt999+mll17So48+qrFjx7ouJ26MGzdODz/8sP7xj3/wAxOELS0tTbNmzVK3bt30i1/8SKrH2wAAIABJREFUQhs2bHBdUlwgb+JUkTdrhryJU0XerBnyJk4FebNmyJs4VeTNmiFv4lTFUt508kq6srIyXX/99Zo/f74WLlyon//857ZLQALJycnRoEGD9Mtf/lITJ06Ux+NxXVLMKigo0MUXX6yMjAzNnz+fl9HjlPzlL3/R3/72N82YMUPXXnut63Ji2tSpU3XzzTfr6aef1p///GfX5SCOHT58WFdccYV2796tnJwctW7d2nVJMYu8iUgib4aOvIlIIm+GjryJSCFvho68iUgib4aOvIlIioG86ebtLh999FG98sormj9/vvr372/78khACxYs0FVXXaXRo0frr3/9q+tyYtLhw4fVt29fGWO0ZMkSNWzY0HVJSAD333+/3nzzTX3yySfq3bu363Ji0uLFi3XFFVfo/vvv1wsvvOC6HCSA/fv3q0+fPjrttNO0aNEi1atXz3VJMYm8iUgjb1aPvIloIG9Wj7yJSCNvhoa8iUgjb1aPvIlocJw37Q/pxo4dq7vvvlsTJkzQLbfcYvPSSHDjxo3THXfcoddee0333HOP63Jiis/nU2ZmpvLy8pSTk6O2/x979x1Xdd33cfwNKKRoKkPFkbiV4UBQEBeKA82FKzVTc5Q56sq6smxny9QrR2apaWXuUrLAPVlOFBUVwUUpmuBCRRB+9x/eYAgi4/y+n3M47+fjcT8e94X4+346+em84Hfk1KolPRKVEBkZGejXrx/CwsIQHh6O+vXrS49kVOLj4+Hj44NWrVph/fr1sLKykh6JSoizZ8/Cx8cHHh4e+P3331GqVCnpkYwKe5P0wt58PPYm6YW9mT/2JumFvZk/9ibphb35eOxN0otw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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABukAAAGSCAYAAADuECwWAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdeXiU5dn//8+QSQKy7yAqYRNEQKpVUBDEIosGnyqLu61b3arWWsu39rAu1ZZqXZ7HVg+LB7KGHTdUEFERSAABNWEXCBBRlrAnAplMrt8f/DI1ZkJmwsx1zfJ+Hcf8wZ3hvs8AJ9fnynnPjMcYYwQAAAAAAAAAAADAlqxarisAAAAAAAAAAAAAkg1DOgAAAAAAAAAAAMAyhnQAAAAAAAAAAACAZV7XBcSa7Oxsffvtt67LiGlnnXWWevfu7boMJBBjjGbOnOm6jJjXp08ftWnTxnUZSCAFBQXKyclxXUZM83g8GjlypOsykGDIm9UjbyLSyJuhIW8i0sib1SNvIhrIm9UjbyLSyJuhIW9W5jHGGNdFxJLhw4drzpw5rsuIaaNGjdL06dNdl4EE4vf75fVyz0B1Zs2apeHDh7suAwlk2rRpuuGGG1yXEdM8Ho/Kyspcl4EEQ96sHnkTkUbeDA15E5FG3qweeRPRQN6sHnkTkUbeDA15s5Is3u4yiFGjRskYwyPI49prr3X914MENmvWLOf/xmPxUVpa6vqvBgnM4/E4/zceq4+pU6e6/utBAiNvVv0gbyKayJvBH+RNRBN5s+oHeRPRRN6s+kHeRDSRN4M/yJtVY0gHAAAAAAAAAAAAWMaQDgAAAAAAAAAAALCMIR0AAAAAAAAAAABgGUM6AAAAAAAAAAAAwDKGdAAAAAAAAAAAAIBlDOkAAAAAAAAAAAAAyxjSAQAAAAAAAAAAAJYxpAMAAAAAAAAAAAAsY0gHAAAAAAAAAAAAWMaQDgAAAAAAAAAAALCMIR0AAAAAAAAAAABgGUM6AAAAAAAAAAAAwDKGdAAAAAAAAAAAAIBlDOmi7JlnnlF2dnbQr5WVlUX0WsHOt2XLFj366KMRvxYQy2z2XTD0HZLVyXov0ljzgP+y2XvB0HtIRifru6KiooheizUP+C+bvRcMvYdkVVXvlZaWyu/3R/RarHvACTb7Lhj6zh6GdFH04Ycf6qWXXlL37t0DxzZt2qSHHnpIGRkZatq0qTIzM7Vw4cIaX6O687Vv317z58/X66+/fkrfCxAvbPTdj3Xq1El33XVXhWP0HZJRsN77sWC9Ei7WPKAyG71X3fnoPSSbYH23evVqDR48WE2aNFH9+vXVqlUr3X333Tp8+HCNrsGaB1Rmo/d+jDUPOCFY702ZMkWXXHKJ6tevr9q1a6tLly7617/+VeMf5rPuARXZ6LsfY81ziyFdlJSUlOiBBx7QQw89pPr160uSjh49qquvvlrjxo3T4MGDde+99+qbb77RsGHD9Pnnn4d9jVDO5/F49Pjjj+uxxx7Tnj17Ivo9ArHGRt/92Pjx47V58+ZKx+k7JJtgvfdjVfVKOFjzgMps9F4o56P3kEyC9d3KlSt1+eWXa9WqVbrxxhv1+OOPq2HDhvrPf/6jgQMHhv2DE9Y8oDIbvfdjrHnACcF6b+LEibrlllt04MABPfTQQ7rvvvtUVFSkBx54QH/729/CvgbrHlCRjb77Mda8GGBQwbXXXmtGjRp1yud59dVXTVpamtm9e3fg2MMPP2wkmQ8++CBwbNeuXaZly5amXbt2YV8j1POVlpaaM844wzzwwAM1/G7+K1J/PsCPlZaWGklm1qxZp3QeG31XUFBg7rzzTnPeeecZSUaSufPOOys9L5J9F6k/H+Cnpk6dajwezymfJ1jvhdoroXKx5kXqzwf4qWjmzUj3not1j7yJaIhm3vzVr35l0tLSzJdfflnhub/4xS+MJDNjxoywruFizSNvIlqimTcj3Xsu1jzyJqIlmnmzR48e5uyzzzaHDh0KHNu5c6dJS0szrVq1Cvsa/HwTiSKaeTPSfcfPN2PKFF5JFyXPP/+8hgwZohYtWgSOjR8/Xj169NDQoUMDx1q2bKnBgwcrPz9fy5cvD+saoZ4vJSVFI0aM0Lhx43TkyJFT/M6A2GWj744cOaJNmzapYcOGuvDCC6t8Hn2HZBKs90LtlVCx5gGV2eg91j2gomB9l52drZ49e6pnz54VnnvbbbdJklasWBHWNVjzgMps9B5rHlDZT3vv0KFDWrNmjYYOHaoGDRoEnnf66afr8ssv1/79++Xz+cK6BuseUJGNvmPNiy0M6aJg7dq1ys/PV7du3QLHCgsLdeDAAQ0cOLDS888++2xJJ96qIVThnq9r164qLi6O2OdwAbHGRt9J0jnnnKNFixZp0aJFysrKOulz6Tskg2C9J4XXK9VhzQMqs9F74Z6P3kOiC9Z3Pp9PgwcP1m9/+9tKzy8oKJAkNWnSJORrsOYBldnoPYk1D/ipYL3n9Xr1+eefa/To0RWee+jQIeXm5mrQoEFKTU0N+Rqse0BFNvpOYs2LNQzpomDBggWSpI4dOwaObdy4UZLUunXrSs/v3LmzJIX13q7hnq/82EcffRTyNYB4YqPvwkXfIRkE671IY80DKrPRe+Gi95DogvVdamqqXnnlFd1yyy0Vnrtnzx79+9//VmpqqjIzM0O+BmseUJmN3gsXvYdkEKz36tatqz59+gTWqZdfflkPP/ywLrzwQvn9fv3pT38K6xqse0BFNvouXPRd9HldF5CItm3bJqliM5V/+GKwO7natm0rSTp48GDI1wj3fOXNtGHDhpCvAcQTG30XLvoOySBY70Uaax5QmY3eCxe9h0QXat/NnTtXd9xxh/bu3auXX35Z3bt3D/karHlAZTZ6L1z0HpJBKL335z//WT/88IMk6dxzz1WdOnXCugbrHlCRjb4LF30XfbySLgr27t0rqWIzpaenS5L2799f6fnFxcWSpMaNG4d8jXDP17JlSzVq1Ei7d+8O+RpAPLHRd+Gi75AMgvVepLHmAZXZ6L1w0XtIdNX13ZYtW3T11Vdr2LBhatCggT766CM9+OCDYV2DNQ+ozEbvhYveQzIIJW8WFxdr06ZNGjdunPbt26devXpp165dIV+DdQ+oyEbfhYu+iz6GdFFw9OhRSarwXrCtWrWSJG3durXS88sXoubNm4d8jZqcr3bt2iGfH4g3NvquJug7JLpgvRdprHlAZTZ6ryboPSSyk/Xd5MmT1bNnT3322Wd67rnntGbNmqCfr1Md1jygMhu9VxP0HhJdsN4zxqisrKzC8zp16qTbbrtNY8aMkc/n0wcffBDyNVj3gIps9F1N0HfRxZAuCspfol3+vsrSiQ879Xg8QRedr7/+WpLUq1evkK8R7vmKi4u1a9euqA8kAFds9F246Dskg2C9F2mseUBlNnovXPQeEl1VfTd37lzdeuut6tGjh9asWaNHH3008MqAcLHmAZXZ6L1w0XtIBsF6b8yYMUpJSQk6EGjWrJkkqaCgIORrsO4BFdnou3DRd9HHkC4KLrjgAkkVm+n0009Xv3799Pnnn2vLli2B4z6fT1lZWWrTpk3g94Ui3POVP6dNmzY1/r6AWGaj78JF3yEZBOu9SGPNAyqz0XvhoveQ6Krqu8cee0wNGzbUrFmzdNZZZ53SNVjzgMps9F646D0kg2C9V/5ZjwsWLKj0/LFjx0qSzjvvvJCvwboHVGSj78JF30UfQ7oo6N+/v6TgAdLn82nUqFGaM2eOPv30Uw0bNkxbt27V2LFj5fF4JEkvvfSSvF6vnn766ZNeJ9TzSf9tpgEDBkTyWwVihq2+Cwd9h2RQVe+FijUPqBlbvRcOeg+JLljfHThwQGvWrFH79u31wgsv6A9/+EOlx9y5cyWx5gE1Zav3wkHvIRkE670rr7xS3bt31yuvvKKnnnpKy5Yt0+zZs3X99dfrvffe04UXXqjMzExJrHtATdjqu3DQd9HndV1AIuratatat25d6YcmgwYN0qRJk3TnnXdq+PDhkqRGjRrpxRdf1NChQwPPKysrk9/vlzHmpNcJ9XzSicb2eDyVjgOJwlbfhYO+QzKoqvdCxZoH1Iyt3gsHvYdEF6zvli5dKmOMVq9erdWrVwf9fR6PR5mZmax5QA3Z6r1w0HtIBsF6r1atWnr77bd1880368knn9STTz4Z+Nq1116r//u//5PXe+LHzax7QPhs9V046LvoY0gXJffcc49eeOEFFRUVqV69eoHj119/vUaMGKGVK1eqrKxMvXr1UkpKSoXf+8gjj+jYsWNq3759tdcJ5XySNH36dF1zzTW8LBUJzVbflevYseNJFz36Dsmiqt4rd7JeYc0Das5W74VyPoneQ3L4ad9lZmaG/EMQ1jyg5mz1XjnWPOCEYHmzffv2WrJkifLz87VhwwbVqVNHnTt3rtQPrHtAzdjqu3Ksee7xdpdR8tvf/lapqamaNGlSpa95vV717t1bl1xySdAFZ/PmzRo3bpz69u0b0rWqO9/SpUuVm5urJ554IvxvBIgjNvuuOvQdksnJeq86rHlAzdnsverQe0gWrHmAG6x5gBtV9V6tWrXUoUMHXXXVVbr88suD/vCedQ+oGZt9Vx36zg6GdFHSpEkTPf/883ruuefk8/nC+r1btmzRe++9pzPPPDMitTz77LO699571aNHj4icD4hV9B3gBr0HuEHvAfbRd4Ab9B7gBr0H2EffJR+GdFF022236eKLL9bChQvD+n2DBw9W165dI1LDtm3bdOjQIT3zzDMROR8Q6+g7wA16D3CD3gPso+8AN+g9wA16D7CPvksufCZdlGVlZTm9fkZGhpYuXeq0BsA2+g5wg94D3KD3APvoO8ANeg9wg94D7KPvkgevpAMAAAAAAAAAAAAsY0gHAAAAAAAAAAAAWMaQDgAAAAAAAAAAALCMIR0AAAAAAAAAAABgGUM6AAAAAAAAAAAAwDKGdAAAAAAAAAAAAIBlDOkAAAAAAAAAAAAAyxjSAQAAAAAAAAAAAJYxpAMAAAAAAAAAAAAsY0gHAAAAAAAAAAAAWMaQDgAAAAAAAAAAALCMIR0AAAAAAAAAAABgGUO6GHf48GEVFRW5LgNIOjt37nRdApCU6D3APvIm4AZrHuAGvQfYR94E3GDNiw9e1wXEooKCAs2YMcN1GZKkzz77TF6vV3379nVdiqQTjd22bVvXZSBBZWdny+/3uy5DkvTCCy/o3nvv1Wmnnea6FBljXJeABBcra15xcbHGjh2r3/3ud65LkSQtW7bMdQlIYOTNqpE3EU3kzeDIm4i2WFnzyJtIJuTNqpE3EU3kzeDIm1VjSBdETk6OcnJyXJdRwSuvvOK6hAAWMUTLiy++6LqEClasWOG6BCDqjDG67rrrXJdRQSytwR6Px3UJSFDkzZMjbyJayJuAfeTNkyNvIlrImydH3kS0kDcRLo9hhBmz9u7dq9atW0uSvvvuO7Vo0cJxRUByeO2113TffffpF7/4hT7++GPX5QBJo1+/flq8eLHeeOMN3XHHHa7LAZICeRNwg7wJuEHeBOwjbwJukDfjRhafSRfDpk+fHrijas6cOY6rAZLH5MmT5fF49Nlnn2nPnj2uywGSwnfffaelS5fK4/Fo4sSJrssBkgZ5E3CDvAnYR94E3CBvAm6QN+MHQ7oYNmHCBPn9fhljCJCAJQUFBcrJyZExRh6PJ2bevx1IdNOmTVOtWrVkjNHixYv5cGPAEvImYB95E3CDvAm4Qd4E7CNvxheGdDFq+/btWrVqlYwxKisr07Jly7R9+3bXZQEJb+rUqUpJSZEk+f1+AiRgycSJEwMfrJySkqKZM2c6rghIfORNwA3yJuAGeROwj7wJuEHejC8M6WLUlClT5PV6A7/2er0ESMCCH2/cjDFauXKl8vPzHVcFJLYtW7YoNzdX5R+T6/f7NWHCBMdVAYmPvAm4Qd4E7CNvAm6QNwE3yJvxhSFdjJo4caJ8Pl/g16WlpUy8gSjbsGGD1q5dG9i4SScC5PTp0x1WBSS+n27cjDH66quv9M033zisCkh85E3APvIm4AZ5E3CDvAnYR96MPwzpYtC6deu0cePGCseMMcrLy9O6descVQUkvqysLKWmplY45vP5uMMSiLJJkyZV2LhJUmpqqqZNm+aoIiDxkTcBN8ibgBvkTcA+8ibgBnkz/jCki0GTJ0+u1EjSiQDJhzwC0RNs4yaduANlzZo1DioCEt/q1au1efPmSsd9Pp/Gjx9vvyAgSZA3ATfIm4B95E3ADfIm4AZ5M/4wpIsxxpgqG8nn82ncuHEVXqoKIDJWrFihbdu2Bf1aWlqapk6darcgIElMnTpVaWlpQb+2detWffXVV5YrAhIfeRNwg7wJuEHeBOwjbwJukDfjE0O6GJOTk6Nvv/22yq8XFBRo1apVFisCksPUqVOD3uElSSUlJRo/fjwBEogwY4ymTJmikpKSoF8nQALRQd4E3CBvAvaRNwE3yJuAG+TN+MSQLsac7A4v6cRLwgmQQGSVlZVpypQpQe/wKvfdd99p+fLlFqsCEt/ixYv1/fffV/n1kpISTZw4UWVlZRarAhIfeROwj7wJuEHeBNwgbwL2kTfjF0O6GOL3+5WVlVXlHV7SiZeET5w4UX6/32JlQGL77LPPtHfv3pM+hzssgcirbuMmSbt27dLSpUstVQQkPvIm4AZ5E3CDvAnYR94E3CBvxi+GdDFk4cKF2r9/v1JTU5Wenq709HSlpaUpLS0t8OvU1FQVFhbq888/d10ukDCmTZsmSYE+K++1H/deaWmpsrKyCJBAhPh8Pk2fPl1+v7/CmvfjNTA9PV2SCJBABJE3ATfIm4B95E3ADfIm4AZ5M355XReA/0pPT9eYMWMqHJs8ebJq1aqlG2+8scJxr5e/OiBSLrjgAnXo0CHw67KyMj322GO6+eab1a1btwrP3b9/v5o3b267RCDh7Nu3T6NHj65w7Ouvv9a0adP097//vcLxJk2a2CwNSGjkTcAN8iZgH3kTcIO8CbhB3oxfHsMnBca0ESNGyOv1BibhAKLP7/fL6/Vq1qxZGj58uOtygKQxbdo03XTTTdzRBVhG3gTsI28CbpA3ATfIm4B95M24kcXbXQIAAAAAAAAAAACWMaQDAAAAAAAAAAAALGNIBwAAAAAAAAAAAFjGkA4AAAAAAAAAAACwjCEdAAAAAAAAAAAAYBlDOgAAAAAAAAAAAMAyhnQAAAAAAAAAAACAZQzpAAAAAAAAAAAAAMsY0gEAAAAAAAAAAACWMaQDAAAAAAAAAAAALGNIBwAAAAAAAAAAAFjGkA4AAAAAAAAAAACwjCEdAAAAAAAAAAAAYBlDOgAAAAAAAAAAAMAyhnQAAAAAAAAAAACAZQzpAAAAAAAAAAAAAMsY0gEAAAAAAAAAAACWMaQDAAAAAAAAAAAALGNIBwAAAAAAAAAAAFjGkA4AAAAAAAAAAACwjCEdAAAAAAAAAAAAYBlDOgAAAAAAAAAAAMAyhnQAAAAAAAAAAACAZQzpAAAAAAAAAAAAAMsY0gEAAAAAAAAAAACWMaQDAAAAAAAAAAAALGNIBwAAAAAAAAAAAFjGkA4AAAAAAAAAAACwjCEdAAAAAAAAAAAAYBlDOgAAAAAAAAAAAMAyhnQAAAAAAAAAAACAZV7XBcSa7Oxsffvtt67LCNi7d69SUlI0Y8YM16UEnHXWWerdu7frMpBAjDGaOXOm6zICysrKVLduXa1YsUJ+v991OQF9+vRRmzZtXJeBBFJQUKCcnBzXZQSsXLlSdevWjak1z+PxaOTIka7LQIIhb1aPvIlII2+GhryJSCNvVo+8iWggb1aPvIlII2+GhrxZmccYY1wXEUuGDx+uOXPmuC4jpo0aNUrTp093XQYSiN/vl9fLPQPVmTVrloYPH+66DCSQadOm6YYbbnBdRkzzeDwqKytzXQYSDHmzeuRNRBp5MzTkTUQaebN65E1EA3mzeuRNRBp5MzTkzUqyeLvLIEaNGiVjDI8gj2uvvdb1Xw8S2KxZs5z/G4/FR2lpqeu/GiQwj8fj/N94rD6mTp3q+q8HCYy8WfWDvIloIm8Gf5A3EU3kzaof5E1EE3mz6gd5E9FE3gz+IG9WjSEdAAAAAAAAAAAAYBlDOgAAAAAAAAAAAMAyhnQAAAAAAAAAAACAZQzpAAAAAAAAAAAAAMsY0gEAAAAAAAAAAACWMaQDAAAAAAAAAAAALGNIBwAAAAAAAAAAAFjGkA4AAAAAAAAAAACwjCEdAAAAAAAAAAAAYBlDOgAAAAAAAAAAAMAyhnQAAAAAAAAAAACAZQzpAAAAAAAAAAAAAMsY0gEAAAAAAAAAAACWMaSLsmeeeUbZ2dlBv1ZWVhbRawU735YtW/Too49G/FpALLPZd8HQd0hWJ+u9SGPNA/7LZu8FQ+8hGbHPA9xgrwe4wV4PsI99XvJgSBdFH374oV566SV17949cGzTpk166KGHlJGRoaZNmyozM1MLFy6s8TWqO1/79u01f/58vf7666f0vQDxwkbf/VinTp101113VThG3yEZBeu9HwvWK+FizQMqs9F71Z2P3kOyYZ8HuMFeD3CDvR5gH/u85MKQLkpKSkr0wAMP6KGHHlL9+vUlSUePHtXVV1+tcePGafDgwbr33nv1zTffaNiwYfr888/DvkYo5/N4PHr88cf12GOPac+ePRH9HoFYY6Pvfmz8+PHavHlzpeP0HZJNsN77sap6JRyseUBlNnovlPPRe0gm7PMAN9jrAW6w1wPsY5+XhAwquPbaa82oUaNO+TyvvvqqSUtLM7t37w4ce/jhh40k88EHHwSO7dq1y7Rs2dK0a9cu7GuEer7S0lJzxhlnmAceeKCG381/RerPB/ix0tJSI8nMmjXrlM5jo+8KCgrMnXfeac477zwjyUgyd955Z6XnRbLvIvXnA/zU1KlTjcfjOeXzBOu9UHslVC7WvEj9+QA/Fc28Genec7HukTcRDfGUN12seeRNREs082Yi7PXIm4iWeMqb/HwTiSKaeTMR9nnkzSpN4ZV0UfL8889ryJAhatGiReDY+PHj1aNHDw0dOjRwrGXLlho8eLDy8/O1fPnysK4R6vlSUlI0YsQIjRs3TkeOHDnF7wyIXTb67siRI9q0aZMaNmyoCy+8sMrn0XdIJsF6L9ReCRVrHlCZjd5j3QMqYp8HuMFeD3CDvR5gH/u85MOQLgrWrl2r/Px8devWLXCssLBQBw4c0MCBAys9/+yzz5YkrVy5MuRrhHu+rl27qri4OGLvzQ7EGht9J0nnnHOOFi1apEWLFikrK+ukz6XvkAyC9Z4UXq9UhzUPqMxG74V7PnoPiY59HuAGez3ADfZ6gH3s85ITQ7ooWLBggSSpY8eOgWMbN26UJLVu3brS8zt37ixJYb23a7jnKz/20UcfhXwNIJ7Y6Ltw0XdIBsF6L9JY84DKbPReuOg9JDr2eYAb7PUAN9jrAfaxz0tODOmiYNu2bZIqNlP5hy82adKk0vPbtm0rSTp48GDI1wj3fOXNtGHDhpCvAcQTG30XLvoOySBY70Uaax5QmY3eCxe9h0THPg9wg70e4AZ7PcA+9nnJiSFdFOzdu1dSxWZKT0+XJO3fv7/S84uLiyVJjRs3Dvka4Z6vZcuWatSokXbv3h3yNYB4YqPvwkXfIRkE671IY80DKrPRe+Gi95Do2OcBbrDXA9xgrwfYxz4vOTGki4KjR49KklJTUwPHWrVqJUnaunVrpeeXL0TNmzcP+Ro1OV/t2rVDPj8Qb2z0XU3Qd0h0wXov0ljzgMps9F5N0HtIZOzzADfY6wFusNcD7GOfl5wY0kVB+Uu0y99XWTrxYacejyfoovP1119Lknr16hXyNcI9X3FxsXbt2hX1kAq4YqPvwkXfIRkE671IY80DKrPRe+Gi95Do2OcBbrDXA9xgrwfYxz4vOTGki4ILLrhAUsVmOv3009WvXz99/vnn2rJlS+C4z+dTVlaW2rRpE/h9oQj3fOXPadOmTY2/LyCW2ei7cNF3SAbBei/SWPOAymz0XrjoPSQ69nmAG+z1ADfY6wH2sc9LTgzpoqB///6SKjfTY489Jp/Pp1GjRmnOnDn69NNPNWzYMG3dulVjx46Vx+ORJL300kvyer16+umnT3qdUM8n/beZBgwYEMlvFYgZtvouHPQdkkFVvRcq1jygZmz1XjjoPSQ69nmAG+z1ADfY6wH2sc9LTl7XBSSirl27qnXr1pWaadCgQZo0aZLuvPNODR8+XJLUqFEjvfjiixo6dGjgeWVlZfL7/TLGnPQ6oZ5POtHYHo+n0nEgUdjqu3DQd0gGVfVeqFjzgJqx1XvhoPeQ6NjnAW6w1wPcYK8H2Mc+LzkxpIuSe+65Ry+88IKKiopUr169wPHrr79eI0aM0MqVK1VWVqZevXopJSWlwu995JFHdOzYMbVv377a64RyPkmaPn26rrnmGl6WioRmq+/KdezY8aSLHn2HZFFV75U7Wa+w5gE1Z6v3QjmfRO8hObDPA9xgrwe4wV4PsI99XvLh7S6j5Le//a1SU1M1adKkSl/zer3q3bu3LrnkkqALzubNmzVu3Dj17ds3pGtVd76lS5cqNzdXTzzxRPjfCBBHbPZddeg7JJOT9V51WPOAmrPZe9Wh95As2OcBbrDXA9xgrwfYxz4v+TCki5ImTZro+eef13PPPSefzxfW792yZYvee+89nXnmmRGp5dlnn9W9996rHj16ROR8QKyi7wA36D3ADXoPsI++A9yg9wA36D3APvou+TCki6LbbrtNF198sRYuXBjW7xs8eLC6du0akRq2bdumQ4cO6ZlnnonI+YBYR98BbtB7gBv0HmAffQe4Qe8BbtB7gH30XXLhM+miLCsry+n1MzIytHTpUqc1ALbRd4Ab9B7gBr0H2EffAW7Qe4Ab9B5gH32XPHglHQAAAAAAAAAAAGAZQzoAAAAAAAAAAADAMoZ0AAAAAAAAAAAAgGUM6QAAAAAAAAAAAADLGNIBAAAAAAAAAAAAljGkAwAAAAAAAAAAACxjSAcAAAAAAAAAAABYxpAOAAAAAAAAAAAAsIwhHQAAAAAAAAAAAGAZQxubcyYAACAASURBVDoAAAAAAAAAAADAMoZ0AAAAAAAAAAAAgGUM6QAAAAAAAAAAAADLGNLFuNLSUvn9ftdlAEmnpKTEdQlAUqL3APvIm4AbrHmAG/QeYB95E3CDNS8+eF0XEIsKCgo0Y8YM12VIkr766it5vV5169bNdSmSpJ07d6pt27auy0CCys7OjpnQlpWVpeuuu04pKSmuS5ExxnUJSHCxsub5/X7NmjVL1113netSJEnLli1zXQISGHmzauRNRBN5MzjyJqItVtY88iaSCXmzauRNRBN5MzjyZtUY0gWRk5OjnJwc12XELBYxRMuLL77ouoQK3nnnHdclAFFnjImZH1KUmzNnjusSAjwej+sSkKDImydH3kS0kDcB+8ibJ0feRLSQN0+OvIloIW8iXB7DCDNmHTt2TM2aNZPH41FhYaHS09NdlwQkhbfeekvXXnutbr31Vk2YMMF1OUDSuOGGGzRt2jTNnTtXV111letygKRA3gTcIG8CbpA3AfvIm4Ab5M24kcVn0sWwuXPn6ocfflBxcbHmzZvnuhwgaWRlZUmSZs2apWPHjjmuBkgOxcXFevvttyVJU6ZMcVwNkDzIm4Ab5E3APvIm4AZ5E3CDvBk/GNLFsEmTJiklJUUpKSkESMCSI0eO6L333pMkHT16VO+//77jioDk8O677+r48eOSTtztVVxc7LgiIDmQNwH7yJuAG+RNwA3yJmAfeTO+MKSLUYcPH9a8efNUWlqq0tJSvfPOOzp8+LDrsoCE9/bbb8vn80mSUlJSNHnyZMcVAclh8uTJqlXrRCwpKSkJhEkA0UPeBNwgbwJukDcB+8ibgBvkzfjCkC5GzZ49W6WlpYFfl5aW6t1333VYEZAcJk+eHPjg7tLSUr3//vs6dOiQ46qAxHbgwAF99NFH8vv9kiSPx0OABCwgbwJukDcB+8ibgBvkTcAN8mZ8YUgXoyZNmhRoJIkACdhQWFiohQsXBjZuklRWVqa33nrLYVVA4ps5c6bKysoCv/b7/Zo/f7727dvnsCog8ZE3AfvIm4Ab5E3ADfImYB95M/4wpItBe/bs0aJFiyo0kt/v18cff6w9e/Y4rAxIbDNmzAh6fNKkSZYrAZJLsB4zxmjOnDkOqgGSA3kTcIO8CbhB3gTsI28CbpA34w9Duhg0bdq0wPuk/5jH49Hs2bMdVAQkh4kTJ8oYU+GY3+/XZ599pt27dzuqCkhs3333nbKzsyvc2Syd+KHJxIkTHVUFJD7yJuAGeROwj7wJuEHeBNwgb8YfhnQxaOLEiRXuMilXVlZGgASipKCgQCtWrKi0cZOkWrVqVXkXCoBTM3Xq1KAbt7KyMi1dulQ7d+50UBWQ+MibgH3kTcAN8ibgBnkTsI+8GZ8Y0sWYrVu3avXq1ZWm3dKJRWz58uXatm2b/cKABJeVlaWUlJSgX/P7/QRIIEqq2rhJktfrJUACUUDeBNwgbwJukDcB+8ibgBvkzfjEkC7GTJ06VV6vt8qve71ezZw502JFQHI42cbNGKNVq1YpPz/fclVAYtu8ebNyc3ODbtwkqbS0VBMmTLBcFZD4yJuAG+RNwD7yJuAGeRNwg7wZnxjSxZhJkybJ5/NV+XWfz0eABCJsw4YNWrduXZUbN+lEgJw6darFqoDEN3nyZKWmplb5dWOMvv76a23atMliVUDiI28C9pE3ATfIm4Ab5E3APvJm/GJIF0Py8vK0cePGap+3du1abdiwwUJFQHLIysqq9jk+n4+XhAMRNnny5JNu3MpNmzbNQjVAciBvAm6QNwE3yJuAfeRNwA3yZvyq+nXHsC4vL08DBgyo8MGO33zzjTwejzp27Bg4VqtWLeXm5qpLly4uygQSzp49e9S/f/8Kx1asWKFOnTqpcePGgWNer1e7du1Sq1atbJcIJJxvv/1Wbdu21RlnnBE4tn//fm3evFkXXXRRhefu3r3bdnlAwiJvAm6QNwH7yJuAG+RNwA3yZvzymJO9/hHOjRgxQl6vl7u6AIv8fr+8Xq9mzZql4cOHuy4HSBrTpk3TTTfdVOX7pwOIDvImYB95E3CDvAm4Qd4E7CNvxo0s3u4SAAAAAAAAAAAAsIwhHQAAAAAAAAAAAGAZQzoAAAAAAAAAAADAMoZ0AAAAAAAAAAAAgGUM6QAAAAAAAAAAAADLGNIBAAAAAAAAAAAAljGkAwAAAAAAAAAAACxjSAcAAAAAAAAAAABYxpAOAAAAAAAAAAAAsIwhHQAAAAAAAAAAAGAZQzoAAAAAAAAAAADAMoZ0AAAAAAAAAAAAgGUM6QAAAAAAAAAAAADLGNIBAAAAAAAAAAAAljGkAwAAAAAAAAAAACxjSAcAAAAAAAAAAABYxpAOAAAAAAAAAAAAsIwhHQAAAAAAAAAAAGAZQzoAAAAAAAAAAADAMoZ0AAAAAAAAAAAAgGUM6QAAAAAAAAAAAADLGNIBAAAAAAAAAAAAljGkAwAAAAAAAAAAACxjSAcAAAAAAAAAAABYxpAOAAAAAAAAAAAAsIwhHQAAAAAAAAAAAGAZQzoAAAAAAAAAAADAMoZ0AAAAAAAAAAAAgGUM6QAAAAAAAAAAAADLGNIBAAAAAAAAAAAAljGkAwAAAAAAAAAAACzzGGOM6yKSjd/v1/fff6/vv/9e+/btq/A4fvy4jhw5otLSUhlj9Mknn8jj8WjAgAHyeDzyer2qX7++0tPT1bRp0wqP1q1bq3Xr1kpJSXH9LQIx6ejRo9q+fXulvtu3b5/8fr8OHTokSTp27Jhmz56tiy66SJ06dZIknXbaaUpPT1f9+vXVtGlTNW/ePNB7p59+upo2beryWwNiWmFhob7//nsVFhZq37592rt3r/bt26eioiIdP35cP/zwgyRpw4YNWr16tYYPH6709HRJUqNGjVSrVi01a9as0rrXtm1b1a5d2+W3BsQs8ibgBnkTcIO8CdhH3gTcIG8mnCyGdFG0fft25eXlKS8vT1u2bNG2bduUn5+vgoIC+Xy+wPPS0tICzZCenq4GDRooJSVFHo9HjRo1kiQdOHBA0okF8PDhwzp+/Lj27dunwsLCSuc688wz1a5dO2VkZKhDhw7q0aOHunfvrjPPPNPuHwDggM/n0/r165WXl6e1a9cqPz9f27Zt07Zt27Rr164Kz61bt25gI+b1etWgQQNJJ/qobt26KikpUXFxsaQTC+CxY8d05MgRFRYWav/+/RXO1aBBA2VkZCgjI0Pt2rVTly5d1L17d3Xv3j1wXiCRHTp0SLm5ucrLy9PGjRsr9N6RI0cqPLdp06Zq1qyZ6tWrpzp16gR+8FGvXj2lpqaquLhYJSUlkqTDhw/L5/MFAmd5T5Zr3bp1oO8yMjLUrVs3de/eXZ07d1Zqaqqdbx5wiLwJ2EfeBNwgbwJukDcB+8ibSYUhXaR8++23Wrp0qbKzs/Xll18qLy9PBw8elCS1bdtWnTp1qvAPvG3btmrdurWaN2+u+vXrn9K1Dx8+HLhrrHyhLG/ab775Rjt27JAkNW7cWD169FDPnj3Vp08f9enTR6effvopf++AK36/X2vWrNGSJUu0bNky5ebmav369fL5fEpNTVXnzp3Vvn17tWvXLhDs2rZtG7hL5FTuiPT7/YFN3Lfffhvou/z8fOXn52vDhg2BO1fatWun7t276+c//7n69u2riy66SHXr1o3UHwNgXVFRkZYvX66lS5fqiy++UF5enrZv3y7pxJ3IXbp0Ufv27Suse23atAmExlq1av5u28eOHdO+ffu0Z88ebd++vULfbd26VZs2bZLP51NaWpq6du2qHj16qHfv3urbt6/OPffcU7o24Bp5E7CPvAm4Qd4E3CBvAvaRN5MeQ7qa2rFjh+bNm6dFixZpyZIl2rFjh7xer3r27KkLLrhA5513XmDK3LBhQ6e1Hjx4ULm5uVqzZo1yc3O1cuVKff311yotLVVGRob69Omjyy67TEOGDNEZZ5zhtFbgZMrKyrRy5UrNnz9fS5YsUU5Ojo4cOaKGDRuqd+/e6tmzZ+DOqi5duji/q3Hbtm2Bu81yc3O1bNkybd++PfB/RZ8+fTRw4EANGDCARQ0xraioSAsXLtTChQu1dOlS5ebmqrS0VO3atVOvXr0Ca163bt3Utm1bp7WWlJQE7jbLy8vTl19+qeXLl+vw4cNq2LChLr74YvXt21eDBw/W+eefzw9RENPIm4B95E3ADfIm4AZ5E7CPvImfYEgXqpKSEn3++eeaN2+ePvzwQ61bt05169ZVv379dMkll6hPnz5xNT0uKirSihUrtGTJEmVnZ2vx4sX64Ycf1L17dw0ZMkRDhgzRpZde6vw/AaCwsDDQdx999JEKCwt15pln6rLLLgv0Xjzdrbhz584KfffVV18pLS1N/fr105AhQ3TllVeqS5curssEtHbtWn3wwQeaN2+elixZotLSUv3sZz/TpZdeqj59+uiSSy6Jm7sV/X6/1q5dq8WLFysnJ0efffaZdu7cqRYtWmjw4MEaMmSIBg8ezHuvwznyJuAGeRNwg7wJ2EfeBNwgb+IkGNKdjN/vV05OjmbOnKlp06Zpz549at++vQYOHKjMzEwNGjQo8EHD8a60tFTLli3T3Llz9fHHH2vVqlVq3LixMjMzNXLkSA0ZMoQFDdYcOHBA7733nmbOnKn58+fLGKNevXpp2LBhGjhwoM4//3x5PB7XZUZEYWGhPv30U3388cd69913tWvXLnXt2lUjR47U9ddfz4IGq/Lz8zVjxgxNmDBB69evV9OmTXX55ZcH1r14+SFJKLZu3ar33ntPc+fO1eLFi1VaWqrevXtr5MiRuvHGG9W8eXPXJSJJkDfJm3CDvEnehBvkTfIm7CNvkjfhBnmTvBkihnTBfPHFFxo3bpxmzZqlwsJCXXjhhRo1apRGjBihjIwM1+VZsXXrVs2cOVMzZszQ6tWr1aJFC40cOVK33367zj//fNflIQEdP35cb7/9tiZOnKgFCxYoJSVFV155pUaNGqWrrrpK9erVc11i1Pn9fmVnZ2v69OmaPXu2du3apZ49e+qmm27SrbfeqhYtWrguEQlo165dGj9+vLKyspSXl6fTTz9dI0aM0KhRo3TxxRfHzV1cp+Lw4cOaO3euZsyYoXnz5kmSBg0apF/96le6+uqr2cQhKsib5E3YR94kb8IN8iZ5E26QN8mbsI+8Sd6sgSwZGGOMOXDggPnXv/5lzjvvPCPJdOvWzfz97383W7ZscV2ac5s2bTLPPPOMOeecc4wkc8EFF5jXXnvNHDp0yHVpSADr1683v//9702zZs1MSkqKyczMNJMnTzaHDx92XZpTpaWl5pNPPjF33323adSokUlLSzMjR4408+fPN36/33V5iHN+v9988MEH5pprrjGpqammSZMm5r777jOLFi1K+n9fBw8eNBMmTDBDhw41KSkppmXLluaPf/yj2bRpk+vSkADIm1UjbyKayJvBkTcRTeTNqpE3EU3kzaqRNxFN5M3gyJshmZL0Q7q1a9eaO++805x22mmmbt265rbbbjPZ2dmuy4pZixcvNrfeequpU6eOqVu3rvnNb35jNmzY4LosxBm/32/eeust079/fyPJZGRkmL/+9a/m22+/dV1aTPrhhx/MhAkTTN++fY0k065dO/PCCy8QJBG2AwcOmH/84x/mrLPOMh6Px1x22WVm8uTJ5ujRo65Li0k7duwwTz75ZODP6/LLLzfvvfeeKSsrc10a4gx5MzzkTUQCeTM85E1ECnkzPORNRAp5MzzkTUQCeTM85M0qJe+Q7uOPPzZXXnml8Xg8pnPnzubVV181Bw8edF1W3Ci/M6dTp06mVq1aZtiwYeazzz5zXRZiXHFxsXn11VcD/24yMzPNvHnzuHMiDOvXrzcPPfSQqV+/vmnYsKH5wx/+YHbs2OG6LMS4/Px887vf/c7Ur1/fNGjQwPz+9783GzdudF1W3Ci/E7w8N5xzzjnmP//5Dz9sQrXIm6eGvImaIG+eOvImaoK8eWrIm6gp8uapIW+iJsibp468WUFyDenKysrMO++8Y372s58ZSaZ///7m3XffpYFOQfkdA+UT8Isuusi8//77rstCjDly5Ih59tlnTbNmzUzt2rXNb37zG7N+/XrXZcW1AwcOmDFjxpg2bdqY1NRU86tf/Yq3r0AlGzduNDfeeKPxer3mrLPOMv/85z+5Q+kUrVmzxtx+++0mPT3dtGjRwjz33HOmuLjYdVmIIeTNyCNvIhTkzcgjbyIU5M3II2+iOuTNyCNvIhTkzcgjbxpjkmlI9+GHH5oLL7zQeDwec80115iVK1e6LinhLFu2zAwbNsxIMhdffLH5+OOPXZcEx4qLi83zzz9vmjdvbho0aGAef/xxs3v3btdlJZTjx4+b8ePHm06dOpnU1FRz1113me3bt7suC45t3brV/PrXvzZer9ecc845ZsqUKaakpMR1WQnl+++/N6NHjzb16tUzrVq1Mi+//DJ3OoO8aQF5Ez9F3ow+8iaCIW9GH3kTwZA3o4+8iZ8ib0ZfkufNxB/SLV261PTp08dIMldddZVZtWqV65IS3vLly83gwYONJHPZZZeZFStWuC4Jlvl8PvPqq6+a1q1bm7p165rRo0ebwsJC12UlNJ/PZ8aNG2cyMjJMenq6eeCBB8zevXtdlwXLdu3aZe6++26TmppqOnbsaCZOnGhKS0tdl5XQdu/ebX7/+9+bOnXqmDPOOMOMHTuWO1iTEHnTPvImyJv2kTdhDHnTBfImjCFvukDeBHnTviTNm4k7pNuxY4e54YYbjMfjMQMGDDA5OTmuS0o6ixcvNpdeeqnxeDzm1ltvNTt37nRdEixYsGCB6datm0lLSzMPPfSQ2bVrl+uSksrx48fNa6+9Zlq3bm0aN25sXn75Ze5oTQLHjx83zz33nGnQoIE544wzzBtvvGF8Pp/rspLKd999Z+6//36TmppqevbsyecYJAnypnvkzeRE3nSLvJmcyJvukTeTE3nTPfJmciJvupVkeTPxhnTFxcXmiSeeMKeddprp0KGDmTNnjuuSkt6MGTNMRkaGqVevnnnmmWd4e4YE9c0335irr77aSDLDhg0zmzZtcl1SUjty5Ij505/+ZGrXrm26dOliPvjgA9clIUrefvtt07FjR1OnTh3zl7/8xRQVFbkuKamtW7fODBkyxEgyI0aMMFu3bnVdEqKAvBl7yJvJgbwZW8ibyYO8GVvIm8mBvBl7yJvJgbwZW5IkbybWkG7RokXm7LPPNnXr1jVPPPEE/1nGkOPHj5uXX37ZNGjQwHTo0IH3c04gPp/PjBkzxtSuXdt07tyZD9aNMTt27DC33HKL8Xg8JjMz0xQUFLguCRHy3XffmeHDhxtJJjMz0+Tn57suCT+yYMECc+6555o6deqYJ554IpHv+Eo65M3YRd5MXOTN2EbeTFzkzdhG3kxc5M3YRd5MXOTN2JbgeTMxhnT79u0zv/71rwMfmsrLjmPXjh07TGZmpvF4POauu+4yBw4ccF0STsGKFStMjx49TJ06dcyYMWN4u5MYNn/+fNOuXTvTuHFj88Ybb5iysjLXJaGGysrKzGuvvWYaNmxoOnbsaD755BPXJaEKJSUl5q9//atJT083559/vlm9erXrknAKyJvxg7yZWMib8YO8mTjIm/GDvJlYyJvxg7yZWMib8SNB82b8D+lmz55tWrZsaVq3bm1mz57tuhyEaNq0aaZly5bm9NNPN++++67rchCmo0ePmkceecSkpKSYAQMGmG+++cZ1SQhBUVGRefjhhwN/b9wJG382b95sLr30UuP1es3o0aPNDz/84LokhGD9+vWBv7f/9//+nzl+/LjrkhAm8mZ8Im/GN/JmfCJvxj/yZnwib8Y/8mZ8Im/GN/JmfErAvBm/Q7ojR46YO+64w0gyd9xxB3csxKF9+/aZW2+91Ugy99xzjykuLnZdEkKQl5dnunfvbho0aJBIdywklRUrVphu3bqZhg0bmsmTJ7suByF68803Tf369U3Pnj25QzYOld+RXq9ePfOzn/3MrF+/3nVJCAF5M/6RN+MTeTP+kTfjE3kzvpE34xN5M/6RN+MTeTP+JVDejM8h3YoVK8zZZ59tGjVqZKZOneq6HJyi2bNnm6ZNm5ouXbqYVatWuS4HVSgrKzOvv/66Oe2000yvXr24uyTOHT161IwePdrUqlXLjBw50uzfv991SajCwYMHzY033mg8Ho958MEHzbFjx1yXhFOQn59v+vTpY2rXrm1efvllNgIxjLyZWMib8YG8mVjIm/GDvJlYyJvxg7yZWMib8YG8mVgSJG/G15CurKzMPPfccyY1NdVcccUVvDdzAtmxY4cZMGCASUtLMy+//LLrcvAT+/btM1deeaXxer3mqaeeMqWlpa5LQoR8+OGHplWrViYjI8N88cUXrsvBT2RnZ5szzjjDtGnTxixYsMB1OYiQkpIS8+c//9mkpKSYX/7yl+bgwYOuS8KPkDcTF3kztpE3Exd5M7aRNxMTeTO2kTcTF3kztpE3E1ec5834GdIdPnzYjBgxwni9XvP8889zJ1AC8vv95plnnjEpKSnmxhtvNEVFRa5LgjHmyy+/NO3atTNnnnmmyc7Odl0OomD37t1m0KBBpnbt2uaNN95wXQ7+f//+979NWlqayczMNIWFha7LQRQsWrTItG7d2nTq1Mnk5eW5LgeGvJkMyJuxibyZ+MibsYm8mfjIm7GHvJn4yJuxibyZ+OI4b8bHkG7jxo3m3HPPNc2aNePOriTw6aefmhYtWpguXbqYdevWuS4nqU2ePNmcdtpppl+/fub77793XQ6iqKyszIwZM8bUqlXL3HLLLXxAvENHjx41d9xxh/F4PGb06NHG7/e7LglRtGfPHnP55ZebOnXqmDfffNN1OUmNvJlcyJuxg7yZPMibsYO8mVzIm7GDvJlcyJuxg7yZPOI0b8b+kO799983DRo0ML169TIFBQWuy4El+fn55vzzzzeNGjUyH330ketykk5paan53e9+Zzwej3nkkUeMz+dzXRIseeuttwL/5+7atct1OUln586d5oILLjCNGjUyc+fOdV0OLCkpKTEPPPCAkWQeffRRflDmAHkzOZE33SJvJi/yplvkzeRE3nSPvJmcyJtukTeTV5zlzdge0r366qvG6/WaX//613xwcRI6evSoufHGG01qamq8vUQ1rhUVFZn/+Z//MbVr1+aDi5PUhg0bTMeOHU1GRoZZu3at63KSRm5urjnzzDNNly5d+ODiJDVhwgSTlpZmRowYES93eyUE8mZyI2+6Qd4EedMN8ibIm26QN5MbedMN8ibiKG/G5pCurKzMPPHEE8bj8ZgnnniC92dOYj/+t/Dggw9yt1eUff/99+bCCy80TZo0MYsWLXJdDhzat2+f6devn6lfv7758MMPXZeT8BYsWGAaNmxoLrnkErN3717X5cChpUuXmmbNmplevXqZ3bt3uy4noZE3UY68aRd5E+XIm3aRN1GOvGkPeRPlyJt2kTdRLk7yZuwN6Y4fP25Gjhxp0tPTzeTJk12Xgxgxbtw4k5qaam666SZTUlLiupyEtGHDBpORkWE6derEXZUwxpy42+u6664zaWlp/H8cRW+++aZJTU01N998szl+/LjrchAD1q9fb9q3b286dOhgNm/e7LqchETeRDDkzegjb+KnyJt2kDfxU+TN6CNvIhjyZvSRN/FTcZA3p9RSDDl69Kh++ctf6qOPPtL8+fN10003uS4JMeK2227TBx98oHfeeUfDhw/X8ePHXZeUUPLy8tS/f3+1atVKOTk56tixo+uSEANq166tqVOn6sEHH9Stt96q//znP65LSjj/+te/dPvtt+uPf/yjJk6cqLS0NNclIQZ06dJFOTk5aty4sfr166d169a5LimhkDdRFfJmdJE3EQx5M/rImwiGvBld5E1UhbwZXeRNBBMXedP1mLBcUVGRGThwoGncuLFZtmyZ63IQo7744gvTtGlTc9lll5nDhw+7LichrFq1yjRr1sz069ePP1NUacyYMcbj8Zh//vOfrktJGP/4xz+MJPPUU0+5LgUx6siRI+byyy83TZo0McuXL3ddTkIgbyIU5M3II28iFOTNyCNvojrkzcgjbyIU5M3II28iFDGaN2Pj7S4PHDhgLr74YtOyZUuTm5vruhzEuNWrV5vmzZubvn37mkOHDrkuJ64tWbLENGzY0AwdOpQPjUa1XnjhBePxeMzTTz/tupS495e//MV4PB7zyiuvuC4FMa58k9+oUSOTnZ3tupy4Rt5EOMibkUPeRDjIm5FD3kSoyJuRQ95EOMibkUPeRDhiMG9O8RhjjMtX8hUVFWnQoEEqKCjQxx9/rM6dO7ssB3Fi3bp1GjhwoDp06KB58+apbt26rkuKO8uXL9cVV1yhgQMHatq0abztCULy+uuv695779Wzzz6rP/3pT67LiUtPP/20nnrqKY0dO1a3336763IQB44dO6aRI0dq8eLFWrhwoS644ALXJcUd8iZqgrx56sibqAny5qkjbyJc5M1TR95ETZA3Tx15EzURY3kzy+mQ7ujRo7rqqqu0Zs0aLVq0SOecc46rUhCHNm3apH79+qlbt26aO3euateu7bqkuJGbm6sBAwbo5z//ud59912lp6e7Lglx5NVXX9X999+vf/7zn3rkkUdclxNX/vd//1cPP/ywXnvtNd19992uy0EcKSkp0TXXXKMVK1bo008/Vbdu3VyXFDfImzgV5M2aI2/iVJA3a468iZoib9YceROngrxZc+RNnIoYyptZtVxduaSkRCNHjtSXX36p+fPns4AhbGeffbbmz5+vL7/8Utddd518Pp/rkuLCpk2bNHjwYPXs2VPvvPMOCxjCdt999+mll17So48+qrFjx7ouJ26MGzdODz/8sP7xj3/wAxOELS0tTbNmzVK3bt30i1/8SKrH2wAAIABJREFUQhs2bHBdUlwgb+JUkTdrhryJU0XerBnyJk4FebNmyJs4VeTNmiFv4lTFUt508kq6srIyXX/99Zo/f74WLlyon//857ZLQALJycnRoEGD9Mtf/lITJ06Ux+NxXVLMKigo0MUXX6yMjAzNnz+fl9HjlPzlL3/R3/72N82YMUPXXnut63Ji2tSpU3XzzTfr6aef1p///GfX5SCOHT58WFdccYV2796tnJwctW7d2nVJMYu8iUgib4aOvIlIIm+GjryJSCFvho68iUgib4aOvIlIioG86ebtLh999FG98sormj9/vvr372/78khACxYs0FVXXaXRo0frr3/9q+tyYtLhw4fVt29fGWO0ZMkSNWzY0HVJSAD333+/3nzzTX3yySfq3bu363Ji0uLFi3XFFVfo/vvv1wsvvOC6HCSA/fv3q0+fPjrttNO0aNEi1atXz3VJMYm8iUgjb1aPvIloIG9Wj7yJSCNvhoa8iUgjb1aPvIlocJw37Q/pxo4dq7vvvlsTJkzQLbfcYvPSSHDjxo3THXfcoddee0333HOP63Jiis/nU2ZmpvLy8pSTk6O2/x979x1Xdd33cfwNKKRoKkPFkbiV4UBQEBeKA82FKzVTc5Q56sq6smxny9QrR2apaWXuUrLAPVlOFBUVwUUpmuBCRRB+9x/eYAgi4/y+n3M47+fjcT8e94X4+346+em84Hfk1KolPRKVEBkZGejXrx/CwsIQHh6O+vXrS49kVOLj4+Hj44NWrVph/fr1sLKykh6JSoizZ8/Cx8cHHh4e+P3331GqVCnpkYwKe5P0wt58PPYm6YW9mT/2JumFvZk/9ibphb35eOxN0otw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", "text/plain": [ "" ] @@ -808,7 +808,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "" ] @@ -1770,6 +1770,7 @@ "This is the list of operations and in which fields they are supported, although some might have not been covered in this tutorial.\n", "\n", "The following work with operations anndata supported before are also supported now with Dask arrays:\n", + "\n", "- anndata.concat()\n", "- Views\n", "- copy()\n", diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb new file mode 100644 index 0000000..94e73f3 --- /dev/null +++ b/concat-on-disk.ipynb @@ -0,0 +1,427 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "1446b800-7ded-4a4c-b54c-8510100c3bda", + "metadata": {}, + "source": [ + "# On-Disk Concatenation of AnnData Files" + ] + }, + { + "cell_type": "markdown", + "id": "aa4bd620", + "metadata": {}, + "source": [ + "**Author:** Selman Özleyen" + ] + }, + { + "cell_type": "markdown", + "id": "cb9b747f-4384-4b16-8f4f-806edfdc0b06", + "metadata": {}, + "source": [ + "## Initalizing\n", + "\n", + "First let's do our imports and initalize adata objects with the help of the `adata_with_dask` function defined below." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f65fb557", + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext memory_profiler\n", + "\n", + "\n", + "import numpy as np\n", + "from scipy import sparse\n", + "import pandas as pd\n", + "from anndata.tests.helpers import gen_typed_df\n", + "from anndata.experimental import write_elem\n", + "import zarr\n", + "import anndata\n", + "from pathlib import Path\n", + "import glob\n", + "import tempfile\n", + "import dask.distributed as dd\n", + "\n", + "import anndata\n", + "from anndata._core.merge import concat\n", + "import dask.array as da\n", + "import zarr\n", + "\n", + "from anndata.experimental import read_dispatched, read_elem, concat_on_disk\n", + "\n", + "\n", + "OUTDIR = Path(\"tmpdata\")\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "shapes = [\"fat\", \"tall\", \"square\"]\n", + "sizes = [10_000]\n", + "densities = [0.1, 1]\n", + "num_runs = 1\n", + "\n", + "\n", + "def create_adata(shape, X):\n", + " M, N = shape\n", + " obs_names = pd.Index(f\"cell{i}\" for i in range(shape[0]))\n", + " var_names = pd.Index(f\"gene{i}\" for i in range(shape[1]))\n", + " obs = gen_typed_df(M, obs_names)\n", + " var = gen_typed_df(N, var_names)\n", + " # For #147\n", + " obs.rename(columns=dict(cat=\"obs_cat\"), inplace=True)\n", + " var.rename(columns=dict(cat=\"var_cat\"), inplace=True)\n", + " return anndata.AnnData(X, obs=obs, var=var)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "671b747a", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 95, + "id": "460ab6b7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "wrote 7475x10000_density=0.1_csc -> tmpdata/01_fat_csc\n", + "wrote 7346x10000_density=0.1_csr -> tmpdata/02_fat_csr\n", + "wrote 7401x10000_density=1.0_np -> tmpdata/03_fat_np\n", + "wrote 10000x7039_density=0.1_csc -> tmpdata/04_tall_csc\n", + "wrote 10000x7889_density=0.1_csr -> tmpdata/05_tall_csr\n", + "wrote 10000x8142_density=1.0_np -> tmpdata/06_tall_np\n", + "wrote 10000x10000_density=0.1_csc -> tmpdata/07_square_csc\n", + "wrote 10000x10000_density=0.1_csr -> tmpdata/08_square_csr\n", + "wrote 10000x10000_density=1.0_np -> tmpdata/09_square_np\n" + ] + } + ], + "source": [ + "file_id = 1\n", + "for _ in range(num_runs):\n", + " for shape in shapes:\n", + " for size in sizes:\n", + " for density in densities:\n", + " is_dense = density == 1\n", + " array_funcs = []\n", + " array_names = []\n", + " if is_dense:\n", + " array_names.append(\"np\")\n", + " array_funcs.append(lambda x: x.toarray())\n", + " else:\n", + " array_names.append(\"csc\")\n", + " array_names.append(\"csr\")\n", + " array_funcs.append(sparse.csc_matrix)\n", + " array_funcs.append(sparse.csr_matrix)\n", + "\n", + " for array_func, array_name in zip(array_funcs, array_names):\n", + " M = size\n", + " N = size\n", + " if shape != \"square\":\n", + " other_size = int(size * np.random.uniform(0.7, 0.9))\n", + " if shape == \"fat\":\n", + " M = other_size\n", + " elif shape == \"tall\":\n", + " N = other_size\n", + "\n", + " X = array_func(\n", + " sparse.random(M, N, density=density, format=\"csc\")\n", + " )\n", + " adata = create_adata(\n", + " (M, N),\n", + " X,\n", + " )\n", + " fname = str(OUTDIR)+f\"/{file_id:02d}_{shape}_{array_name}\"\n", + " file_id += 1\n", + " print(f\"wrote {M}x{N}_density={density:0.1f}_{array_name} -> {fname}\")\n", + " if is_dense:\n", + " output_zarr_path = f\"{str(fname)}.zarr\"\n", + " z = zarr.open_group(output_zarr_path)\n", + "\n", + " write_elem(z, \"/\", adata)\n", + " zarr.consolidate_metadata(z.store)\n", + " else:\n", + " adata.write_zarr(f\"{fname}.zarr\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3f71e387", + "metadata": {}, + "outputs": [], + "source": [ + "nps = set(glob.glob(str(OUTDIR) + \"/*np*\"))\n", + "csrs = set(glob.glob(str(OUTDIR) + \"/*csr*\"))\n", + "cscs = set(glob.glob(str(OUTDIR) + \"/*csc*\"))\n", + "fats = set(glob.glob(str(OUTDIR) + \"/*fat*\"))\n", + "talls = set(glob.glob(str(OUTDIR) + \"/*tall*\"))\n", + "squares = set(glob.glob(str(OUTDIR) + \"/*square*\"))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c2f9f1ec", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'tmpdata/03_fat_np.zarr',\n", + " 'tmpdata/06_tall_np.zarr',\n", + " 'tmpdata/09_square_np.zarr'}" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nps" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6f35076e", + "metadata": {}, + "outputs": [], + "source": [ + "def concat_on_disk_wrapper(filepaths, writepth, axis):\n", + " from multiprocessing import Lock\n", + " with dd.LocalCluster(memory_limit=\"400MB\", n_workers=1,threads_per_worker=1) as cluster:\n", + " with dd.Client(cluster) as client:\n", + " \n", + " lock = Lock()\n", + " concat_on_disk(filepaths, writepth, axis=axis, overwrite=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "cfbc8bd5", + "metadata": {}, + "outputs": [], + "source": [ + "data = dict()\n", + "for axis in (0, 1):\n", + " for fileset in (\"csrs\", \"nps-0\", \"nps-1\", \"cscs\"):\n", + " filepaths = []\n", + " if \"csrs\" in fileset:\n", + " filepaths = csrs\n", + " axis = 0\n", + " elif \"nps\" in fileset:\n", + " filepaths = nps\n", + " if \"0\" in fileset:\n", + " axis = 0\n", + " elif \"1\" in fileset:\n", + " axis = 1\n", + " elif fileset == \"cscs\":\n", + " filepaths = cscs\n", + " axis = 1\n", + "\n", + " if axis == 0:\n", + " filepaths = filepaths.intersection(fats.union(squares))\n", + " elif axis == 1:\n", + " filepaths = filepaths.intersection(talls.union(squares))\n", + "\n", + " data[fileset] = filepaths, axis\n" + ] + }, + { + "cell_type": "markdown", + "id": "bc83fbb8-ab85-40d5-81b9-c85099b1bc97", + "metadata": {}, + "source": [ + "Here is how our adata looks like" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "769ecca2", + "metadata": { + "scrolled": true, + "tags": [] + }, + "outputs": [], + "source": [ + "writepth = OUTDIR / \"out.zarr\"" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "97ba50d0", + "metadata": {}, + "outputs": [], + "source": [ + "filepaths, axis = data[\"nps-1\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "919e19cd", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "b8f1528e", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-07-24 15:37:24,507 - distributed.protocol.pickle - ERROR - Failed to serialize \n", + " 0. 140023082158464\n", + ">.\n", + "Traceback (most recent call last):\n", + " File \"/home/sel/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py\", line 63, in dumps\n", + " result = pickle.dumps(x, **dump_kwargs)\n", + "TypeError: cannot pickle '_thread.lock' object\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/home/sel/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py\", line 68, in dumps\n", + " pickler.dump(x)\n", + "TypeError: cannot pickle '_thread.lock' object\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/home/sel/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py\", line 81, in dumps\n", + " result = cloudpickle.dumps(x, **dump_kwargs)\n", + " File \"/home/sel/mambaforge/envs/dask/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py\", line 73, in dumps\n", + " cp.dump(obj)\n", + " File \"/home/sel/mambaforge/envs/dask/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py\", line 632, in dump\n", + " return Pickler.dump(self, obj)\n", + "TypeError: cannot pickle '_thread.lock' object\n" + ] + }, + { + "ename": "TypeError", + "evalue": "('Could not serialize object of type HighLevelGraph', '\\n 0. 140023082158464\\n>')\n\nAbove error raised while writing key 'X' of to ", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py:63\u001b[0m, in \u001b[0;36mdumps\u001b[0;34m(x, buffer_callback, protocol)\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 63\u001b[0m result \u001b[39m=\u001b[39m pickle\u001b[39m.\u001b[39;49mdumps(x, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mdump_kwargs)\n\u001b[1;32m 64\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m:\n", + "\u001b[0;31mTypeError\u001b[0m: cannot pickle '_thread.lock' object", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py:68\u001b[0m, in \u001b[0;36mdumps\u001b[0;34m(x, buffer_callback, protocol)\u001b[0m\n\u001b[1;32m 67\u001b[0m buffers\u001b[39m.\u001b[39mclear()\n\u001b[0;32m---> 68\u001b[0m pickler\u001b[39m.\u001b[39;49mdump(x)\n\u001b[1;32m 69\u001b[0m result \u001b[39m=\u001b[39m f\u001b[39m.\u001b[39mgetvalue()\n", + "\u001b[0;31mTypeError\u001b[0m: cannot pickle '_thread.lock' object", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/serialize.py:350\u001b[0m, in \u001b[0;36mserialize\u001b[0;34m(x, serializers, on_error, context, iterate_collection)\u001b[0m\n\u001b[1;32m 349\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 350\u001b[0m header, frames \u001b[39m=\u001b[39m dumps(x, context\u001b[39m=\u001b[39;49mcontext) \u001b[39mif\u001b[39;00m wants_context \u001b[39melse\u001b[39;00m dumps(x)\n\u001b[1;32m 351\u001b[0m header[\u001b[39m\"\u001b[39m\u001b[39mserializer\u001b[39m\u001b[39m\"\u001b[39m] \u001b[39m=\u001b[39m name\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/serialize.py:73\u001b[0m, in \u001b[0;36mpickle_dumps\u001b[0;34m(x, context)\u001b[0m\n\u001b[1;32m 71\u001b[0m writeable\u001b[39m.\u001b[39mappend(\u001b[39mnot\u001b[39;00m f\u001b[39m.\u001b[39mreadonly)\n\u001b[0;32m---> 73\u001b[0m frames[\u001b[39m0\u001b[39m] \u001b[39m=\u001b[39m pickle\u001b[39m.\u001b[39;49mdumps(\n\u001b[1;32m 74\u001b[0m x,\n\u001b[1;32m 75\u001b[0m buffer_callback\u001b[39m=\u001b[39;49mbuffer_callback,\n\u001b[1;32m 76\u001b[0m protocol\u001b[39m=\u001b[39;49mcontext\u001b[39m.\u001b[39;49mget(\u001b[39m\"\u001b[39;49m\u001b[39mpickle-protocol\u001b[39;49m\u001b[39m\"\u001b[39;49m, \u001b[39mNone\u001b[39;49;00m) \u001b[39mif\u001b[39;49;00m context \u001b[39melse\u001b[39;49;00m \u001b[39mNone\u001b[39;49;00m,\n\u001b[1;32m 77\u001b[0m )\n\u001b[1;32m 78\u001b[0m header \u001b[39m=\u001b[39m {\n\u001b[1;32m 79\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mserializer\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39mpickle\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 80\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mwriteable\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39mtuple\u001b[39m(writeable),\n\u001b[1;32m 81\u001b[0m }\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py:81\u001b[0m, in \u001b[0;36mdumps\u001b[0;34m(x, buffer_callback, protocol)\u001b[0m\n\u001b[1;32m 80\u001b[0m buffers\u001b[39m.\u001b[39mclear()\n\u001b[0;32m---> 81\u001b[0m result \u001b[39m=\u001b[39m cloudpickle\u001b[39m.\u001b[39;49mdumps(x, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mdump_kwargs)\n\u001b[1;32m 82\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m:\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py:73\u001b[0m, in \u001b[0;36mdumps\u001b[0;34m(obj, protocol, buffer_callback)\u001b[0m\n\u001b[1;32m 70\u001b[0m cp \u001b[39m=\u001b[39m CloudPickler(\n\u001b[1;32m 71\u001b[0m file, protocol\u001b[39m=\u001b[39mprotocol, buffer_callback\u001b[39m=\u001b[39mbuffer_callback\n\u001b[1;32m 72\u001b[0m )\n\u001b[0;32m---> 73\u001b[0m cp\u001b[39m.\u001b[39;49mdump(obj)\n\u001b[1;32m 74\u001b[0m \u001b[39mreturn\u001b[39;00m file\u001b[39m.\u001b[39mgetvalue()\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py:632\u001b[0m, in \u001b[0;36mCloudPickler.dump\u001b[0;34m(self, obj)\u001b[0m\n\u001b[1;32m 631\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 632\u001b[0m \u001b[39mreturn\u001b[39;00m Pickler\u001b[39m.\u001b[39;49mdump(\u001b[39mself\u001b[39;49m, obj)\n\u001b[1;32m 633\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n", + "\u001b[0;31mTypeError\u001b[0m: cannot pickle '_thread.lock' object", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/utils.py:246\u001b[0m, in \u001b[0;36mreport_write_key_on_error..func_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 245\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 246\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 247\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/specs/registry.py:311\u001b[0m, in \u001b[0;36mWriter.write_elem\u001b[0;34m(self, store, k, elem, dataset_kwargs, modifiers)\u001b[0m\n\u001b[1;32m 310\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 311\u001b[0m \u001b[39mreturn\u001b[39;00m write_func(store, k, elem, dataset_kwargs\u001b[39m=\u001b[39;49mdataset_kwargs)\n", + "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/specs/registry.py:52\u001b[0m, in \u001b[0;36mwrite_spec..decorator..wrapper\u001b[0;34m(g, k, *args, **kwargs)\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[39m@wraps\u001b[39m(func)\n\u001b[1;32m 51\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrapper\u001b[39m(g, k, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[0;32m---> 52\u001b[0m result \u001b[39m=\u001b[39m func(g, k, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 53\u001b[0m g[k]\u001b[39m.\u001b[39mattrs\u001b[39m.\u001b[39msetdefault(\u001b[39m\"\u001b[39m\u001b[39mencoding-type\u001b[39m\u001b[39m\"\u001b[39m, spec\u001b[39m.\u001b[39mencoding_type)\n", + "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/specs/methods.py:317\u001b[0m, in \u001b[0;36mwrite_basic_dask\u001b[0;34m(f, k, elem, _writer, dataset_kwargs)\u001b[0m\n\u001b[1;32m 316\u001b[0m g \u001b[39m=\u001b[39m f\u001b[39m.\u001b[39mrequire_dataset(k, shape\u001b[39m=\u001b[39melem\u001b[39m.\u001b[39mshape, dtype\u001b[39m=\u001b[39melem\u001b[39m.\u001b[39mdtype, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mdataset_kwargs)\n\u001b[0;32m--> 317\u001b[0m da\u001b[39m.\u001b[39;49mstore(elem, g)\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/dask/array/core.py:1237\u001b[0m, in \u001b[0;36mstore\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 1236\u001b[0m store_dsk \u001b[39m=\u001b[39m HighLevelGraph(layers, dependencies)\n\u001b[0;32m-> 1237\u001b[0m compute_as_if_collection(Array, store_dsk, map_keys, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 1238\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mNone\u001b[39;00m\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/dask/base.py:341\u001b[0m, in \u001b[0;36mcompute_as_if_collection\u001b[0;34m(cls, dsk, keys, scheduler, get, **kwargs)\u001b[0m\n\u001b[1;32m 340\u001b[0m dsk2 \u001b[39m=\u001b[39m optimization_function(\u001b[39mcls\u001b[39m)(dsk, keys, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m--> 341\u001b[0m \u001b[39mreturn\u001b[39;00m schedule(dsk2, keys, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/client.py:3204\u001b[0m, in \u001b[0;36mClient.get\u001b[0;34m(self, dsk, keys, workers, allow_other_workers, resources, sync, asynchronous, direct, retries, priority, fifo_timeout, actors, **kwargs)\u001b[0m\n\u001b[1;32m 3147\u001b[0m \u001b[39m\"\"\"Compute dask graph\u001b[39;00m\n\u001b[1;32m 3148\u001b[0m \n\u001b[1;32m 3149\u001b[0m \u001b[39mParameters\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3202\u001b[0m \u001b[39mClient.compute : Compute asynchronous collections\u001b[39;00m\n\u001b[1;32m 3203\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m-> 3204\u001b[0m futures \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_graph_to_futures(\n\u001b[1;32m 3205\u001b[0m dsk,\n\u001b[1;32m 3206\u001b[0m keys\u001b[39m=\u001b[39;49m\u001b[39mset\u001b[39;49m(flatten([keys])),\n\u001b[1;32m 3207\u001b[0m workers\u001b[39m=\u001b[39;49mworkers,\n\u001b[1;32m 3208\u001b[0m allow_other_workers\u001b[39m=\u001b[39;49mallow_other_workers,\n\u001b[1;32m 3209\u001b[0m resources\u001b[39m=\u001b[39;49mresources,\n\u001b[1;32m 3210\u001b[0m fifo_timeout\u001b[39m=\u001b[39;49mfifo_timeout,\n\u001b[1;32m 3211\u001b[0m retries\u001b[39m=\u001b[39;49mretries,\n\u001b[1;32m 3212\u001b[0m user_priority\u001b[39m=\u001b[39;49mpriority,\n\u001b[1;32m 3213\u001b[0m actors\u001b[39m=\u001b[39;49mactors,\n\u001b[1;32m 3214\u001b[0m )\n\u001b[1;32m 3215\u001b[0m packed \u001b[39m=\u001b[39m pack_data(keys, futures)\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/client.py:3103\u001b[0m, in \u001b[0;36mClient._graph_to_futures\u001b[0;34m(self, dsk, keys, workers, allow_other_workers, internal_priority, user_priority, resources, retries, fifo_timeout, actors)\u001b[0m\n\u001b[1;32m 3101\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mdistributed\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprotocol\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mserialize\u001b[39;00m \u001b[39mimport\u001b[39;00m ToPickle\n\u001b[0;32m-> 3103\u001b[0m header, frames \u001b[39m=\u001b[39m serialize(ToPickle(dsk), on_error\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mraise\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n\u001b[1;32m 3104\u001b[0m nbytes \u001b[39m=\u001b[39m \u001b[39mlen\u001b[39m(header) \u001b[39m+\u001b[39m \u001b[39msum\u001b[39m(\u001b[39mmap\u001b[39m(\u001b[39mlen\u001b[39m, frames))\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/serialize.py:372\u001b[0m, in \u001b[0;36mserialize\u001b[0;34m(x, serializers, on_error, context, iterate_collection)\u001b[0m\n\u001b[1;32m 371\u001b[0m \u001b[39melif\u001b[39;00m on_error \u001b[39m==\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mraise\u001b[39m\u001b[39m\"\u001b[39m:\n\u001b[0;32m--> 372\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mTypeError\u001b[39;00m(msg, \u001b[39mstr\u001b[39m(x)[:\u001b[39m10000\u001b[39m]) \u001b[39mfrom\u001b[39;00m \u001b[39mexc\u001b[39;00m\n\u001b[1;32m 373\u001b[0m \u001b[39melse\u001b[39;00m: \u001b[39m# pragma: nocover\u001b[39;00m\n", + "\u001b[0;31mTypeError\u001b[0m: ('Could not serialize object of type HighLevelGraph', '\\n 0. 140023082158464\\n>')", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[21], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m concat_on_disk_wrapper(filepaths, writepth, axis\u001b[39m=\u001b[39;49maxis)\n", + "Cell \u001b[0;32mIn[17], line 7\u001b[0m, in \u001b[0;36mconcat_on_disk_wrapper\u001b[0;34m(filepaths, writepth, axis)\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[39mwith\u001b[39;00m dd\u001b[39m.\u001b[39mClient(cluster) \u001b[39mas\u001b[39;00m client:\n\u001b[1;32m 6\u001b[0m lock \u001b[39m=\u001b[39m Lock()\n\u001b[0;32m----> 7\u001b[0m concat_on_disk(filepaths, writepth, axis\u001b[39m=\u001b[39;49maxis, overwrite\u001b[39m=\u001b[39;49m\u001b[39mTrue\u001b[39;49;00m)\n", + "File \u001b[0;32m~/projects/dask/anndata/anndata/experimental/merge.py:591\u001b[0m, in \u001b[0;36mconcat_on_disk\u001b[0;34m(in_files, out_file, overwrite, max_loaded_elems, axis, join, merge, uns_merge, label, keys, index_unique, fill_value, pairwise)\u001b[0m\n\u001b[1;32m 587\u001b[0m _write_alt_mapping(groups, output_group, alt_dim, alt_indices, merge)\n\u001b[1;32m 589\u001b[0m \u001b[39m# Write X\u001b[39;00m\n\u001b[0;32m--> 591\u001b[0m _write_concat_arrays(\n\u001b[1;32m 592\u001b[0m arrays\u001b[39m=\u001b[39;49mXs,\n\u001b[1;32m 593\u001b[0m output_group\u001b[39m=\u001b[39;49moutput_group,\n\u001b[1;32m 594\u001b[0m output_path\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mX\u001b[39;49m\u001b[39m\"\u001b[39;49m,\n\u001b[1;32m 595\u001b[0m axis\u001b[39m=\u001b[39;49maxis,\n\u001b[1;32m 596\u001b[0m reindexers\u001b[39m=\u001b[39;49mreindexers,\n\u001b[1;32m 597\u001b[0m fill_value\u001b[39m=\u001b[39;49mfill_value,\n\u001b[1;32m 598\u001b[0m max_loaded_elems\u001b[39m=\u001b[39;49mmax_loaded_elems,\n\u001b[1;32m 599\u001b[0m )\n\u001b[1;32m 601\u001b[0m \u001b[39m# Write Layers and {dim}m\u001b[39;00m\n\u001b[1;32m 602\u001b[0m mapping_names \u001b[39m=\u001b[39m [\n\u001b[1;32m 603\u001b[0m (\n\u001b[1;32m 604\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mdim\u001b[39m}\u001b[39;00m\u001b[39mm\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 609\u001b[0m (\u001b[39m\"\u001b[39m\u001b[39mlayers\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39mNone\u001b[39;00m, axis, reindexers),\n\u001b[1;32m 610\u001b[0m ]\n", + "File \u001b[0;32m~/projects/dask/anndata/anndata/experimental/merge.py:311\u001b[0m, in \u001b[0;36m_write_concat_arrays\u001b[0;34m(arrays, output_group, output_path, max_loaded_elems, axis, reindexers, fill_value, join)\u001b[0m\n\u001b[1;32m 307\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 308\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mConcat of following not supported: \u001b[39m\u001b[39m{\u001b[39;00m[a\u001b[39m.\u001b[39mformat_str \u001b[39mfor\u001b[39;00m a \u001b[39min\u001b[39;00m arrays]\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\n\u001b[1;32m 309\u001b[0m )\n\u001b[1;32m 310\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 311\u001b[0m write_concat_dense(\n\u001b[1;32m 312\u001b[0m arrays, output_group, output_path, axis, reindexers, fill_value\n\u001b[1;32m 313\u001b[0m )\n", + "File \u001b[0;32m~/projects/dask/anndata/anndata/experimental/merge.py:191\u001b[0m, in \u001b[0;36mwrite_concat_dense\u001b[0;34m(arrays, output_group, output_path, axis, reindexers, fill_value)\u001b[0m\n\u001b[1;32m 182\u001b[0m darrays \u001b[39m=\u001b[39m (da\u001b[39m.\u001b[39mfrom_array(a, chunks\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mauto\u001b[39m\u001b[39m\"\u001b[39m) \u001b[39mfor\u001b[39;00m a \u001b[39min\u001b[39;00m arrays)\n\u001b[1;32m 184\u001b[0m res \u001b[39m=\u001b[39m da\u001b[39m.\u001b[39mconcatenate(\n\u001b[1;32m 185\u001b[0m [\n\u001b[1;32m 186\u001b[0m ri(a, axis\u001b[39m=\u001b[39m\u001b[39m1\u001b[39m \u001b[39m-\u001b[39m axis, fill_value\u001b[39m=\u001b[39mfill_value)\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 189\u001b[0m axis\u001b[39m=\u001b[39maxis,\n\u001b[1;32m 190\u001b[0m )\n\u001b[0;32m--> 191\u001b[0m write_elem(output_group, output_path, res)\n\u001b[1;32m 192\u001b[0m output_group[output_path]\u001b[39m.\u001b[39mattrs\u001b[39m.\u001b[39mupdate(\n\u001b[1;32m 193\u001b[0m {\u001b[39m\"\u001b[39m\u001b[39mencoding-type\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39marray\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39m\"\u001b[39m\u001b[39mencoding-version\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39m0.2.0\u001b[39m\u001b[39m\"\u001b[39m}\n\u001b[1;32m 194\u001b[0m )\n", + "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/specs/registry.py:353\u001b[0m, in \u001b[0;36mwrite_elem\u001b[0;34m(store, k, elem, dataset_kwargs)\u001b[0m\n\u001b[1;32m 329\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrite_elem\u001b[39m(\n\u001b[1;32m 330\u001b[0m store: GroupStorageType,\n\u001b[1;32m 331\u001b[0m k: \u001b[39mstr\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 334\u001b[0m dataset_kwargs: Mapping \u001b[39m=\u001b[39m MappingProxyType({}),\n\u001b[1;32m 335\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 336\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 337\u001b[0m \u001b[39m Write an element to a storage group using anndata encoding.\u001b[39;00m\n\u001b[1;32m 338\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 351\u001b[0m \u001b[39m E.g. for zarr this would be `chunks`, `compressor`.\u001b[39;00m\n\u001b[1;32m 352\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 353\u001b[0m Writer(_REGISTRY)\u001b[39m.\u001b[39;49mwrite_elem(store, k, elem, dataset_kwargs\u001b[39m=\u001b[39;49mdataset_kwargs)\n", + "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/utils.py:248\u001b[0m, in \u001b[0;36mreport_write_key_on_error..func_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[1;32m 247\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[0;32m--> 248\u001b[0m re_raise_error(e, elem, key)\n", + "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/utils.py:229\u001b[0m, in \u001b[0;36mreport_write_key_on_error..re_raise_error\u001b[0;34m(e, elem, key)\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 228\u001b[0m parent \u001b[39m=\u001b[39m _get_parent(elem)\n\u001b[0;32m--> 229\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mtype\u001b[39m(e)(\n\u001b[1;32m 230\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00me\u001b[39m}\u001b[39;00m\u001b[39m\\n\u001b[39;00m\u001b[39m\\n\u001b[39;00m\u001b[39m\"\u001b[39m\n\u001b[1;32m 231\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mAbove error raised while writing key \u001b[39m\u001b[39m{\u001b[39;00mkey\u001b[39m!r}\u001b[39;00m\u001b[39m of \u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mtype\u001b[39m(elem)\u001b[39m}\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 232\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mto \u001b[39m\u001b[39m{\u001b[39;00mparent\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\n\u001b[1;32m 233\u001b[0m ) \u001b[39mfrom\u001b[39;00m \u001b[39me\u001b[39;00m\n", + "\u001b[0;31mTypeError\u001b[0m: ('Could not serialize object of type HighLevelGraph', '\\n 0. 140023082158464\\n>')\n\nAbove error raised while writing key 'X' of to " + ] + } + ], + "source": [ + "concat_on_disk_wrapper(filepaths, writepth, axis=axis)" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "1c6ec3e0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'tmpdata/02_fat_csr.zarr', 'tmpdata/08_square_csr.zarr'}" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "filepaths" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e4defaeb", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "dask", + "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.9.15" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From aa5374e564448c45055d6be34ee77912b83a93d7 Mon Sep 17 00:00:00 2001 From: syelman Date: Tue, 29 Aug 2023 21:42:03 +0200 Subject: [PATCH 02/15] content is ready only explaining remains --- concat-on-disk.ipynb | 650 ++++++++++++++++++++++++++++--------------- 1 file changed, 419 insertions(+), 231 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 94e73f3..9dbd745 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -26,6 +26,14 @@ "First let's do our imports and initalize adata objects with the help of the `adata_with_dask` function defined below." ] }, + { + "cell_type": "markdown", + "id": "5dc7197c", + "metadata": {}, + "source": [ + "This notebook uses the [memory-profiler](https://pypi.org/project/memory-profiler/) extension, call `pip install memory-profiler` before running this notebook." + ] + }, { "cell_type": "code", "execution_count": 1, @@ -33,39 +41,43 @@ "metadata": {}, "outputs": [], "source": [ - "%load_ext memory_profiler\n", - "\n", - "\n", + "from memory_profiler import memory_usage\n", "import numpy as np\n", "from scipy import sparse\n", "import pandas as pd\n", + "import shutil\n", "from anndata.tests.helpers import gen_typed_df\n", "from anndata.experimental import write_elem\n", "import zarr\n", "import anndata\n", "from pathlib import Path\n", "import glob\n", - "import tempfile\n", "import dask.distributed as dd\n", "\n", "import anndata\n", - "from anndata._core.merge import concat\n", "import dask.array as da\n", "import zarr\n", - "\n", - "from anndata.experimental import read_dispatched, read_elem, concat_on_disk\n", + "import gc\n", + "from anndata.experimental import concat_on_disk\n", + "from dask.distributed import Client, LocalCluster\n", "\n", "\n", "OUTDIR = Path(\"tmpdata\")\n", "\n", "\n", - "\n", - "\n", - "\n", "shapes = [\"fat\", \"tall\", \"square\"]\n", "sizes = [10_000]\n", "densities = [0.1, 1]\n", - "num_runs = 1\n", + "num_runs = 3\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3dd5068e", + "metadata": {}, + "outputs": [], + "source": [ "\n", "\n", "def create_adata(shape, X):\n", @@ -75,332 +87,508 @@ " obs = gen_typed_df(M, obs_names)\n", " var = gen_typed_df(N, var_names)\n", " # For #147\n", + " \n", " obs.rename(columns=dict(cat=\"obs_cat\"), inplace=True)\n", " var.rename(columns=dict(cat=\"var_cat\"), inplace=True)\n", - " return anndata.AnnData(X, obs=obs, var=var)\n", - "\n" + " adata = anndata.AnnData(X, obs=obs, var=var)\n", + " adata.var_names_make_unique()\n", + " adata.obs_names_make_unique()\n", + " \n", + " return adata\n" ] }, { "cell_type": "code", - "execution_count": null, - "id": "671b747a", + "execution_count": 3, + "id": "6e0d9324", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "def generate_array_funcs_and_names(density):\n", + " array_funcs = []\n", + " array_names = []\n", + " is_dense = density == 1\n", + " if is_dense:\n", + " array_names.append(\"np\")\n", + " array_funcs.append(lambda x: x.toarray())\n", + " else:\n", + " array_names.extend([\"csc\", \"csr\"])\n", + " array_funcs.extend([sparse.csc_matrix, sparse.csr_matrix])\n", + " return array_funcs, array_names\n", + "\n", + "def generate_dimensions(shape, size):\n", + " M = size\n", + " N = size\n", + " if shape != \"square\":\n", + " other_size = size + int(size * np.random.uniform(0.2, 0.4))\n", + " if shape == \"fat\":\n", + " M = other_size\n", + " elif shape == \"tall\":\n", + " N = other_size\n", + " return M, N\n", + "\n", + "def write_data_to_zarr(X, shape, array_name, outdir, file_id):\n", + " fname = str(outdir) + f\"/{file_id:02d}_{shape}_{array_name}\"\n", + " adata = create_adata((X.shape[0], X.shape[1]), X)\n", + " output_zarr_path = f\"{str(fname)}.zarr\"\n", + " z = zarr.open_group(output_zarr_path)\n", + " write_elem(z, \"/\", adata)\n", + " zarr.consolidate_metadata(z.store)\n", + " return f\"wrote {X.shape[0]}x{X.shape[1]}_{array_name} -> {fname}\\n\"\n", + "\n", + "def write_temp_data(shapes, sizes, densities, num_runs, outdir, rewrite=False):\n", + " outdir.mkdir(exist_ok=True)\n", + " if rewrite:\n", + " (outdir / \"done.txt\").unlink(missing_ok=True)\n", + " if (outdir / \"done.txt\").exists():\n", + " print(\"already done\")\n", + " with open(outdir / \"done.txt\", \"r\") as f:\n", + " for line in f.readlines():\n", + " print(line)\n", + " return\n", + "\n", + " saved = []\n", + " file_id = 1\n", + " for _ in range(num_runs):\n", + " for shape in shapes:\n", + " for size in sizes:\n", + " for density in densities:\n", + " array_funcs, array_names = generate_array_funcs_and_names(density)\n", + " M, N = generate_dimensions(shape, size)\n", + "\n", + " X_base = sparse.random(M, N, density=density, format=\"csc\")\n", + "\n", + " for array_func, array_name in zip(array_funcs, array_names):\n", + " X = array_func(X_base)\n", + " report = write_data_to_zarr(X, shape, array_name, outdir, file_id)\n", + " print(report)\n", + " saved.append(report)\n", + " file_id += 1\n", + " with open(outdir / \"done.txt\", \"w\") as f:\n", + " f.writelines(saved)\n", + "\n" + ] }, { "cell_type": "code", - "execution_count": 95, - "id": "460ab6b7", + "execution_count": 4, + "id": "fbf50dbe", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "wrote 7475x10000_density=0.1_csc -> tmpdata/01_fat_csc\n", - "wrote 7346x10000_density=0.1_csr -> tmpdata/02_fat_csr\n", - "wrote 7401x10000_density=1.0_np -> tmpdata/03_fat_np\n", - "wrote 10000x7039_density=0.1_csc -> tmpdata/04_tall_csc\n", - "wrote 10000x7889_density=0.1_csr -> tmpdata/05_tall_csr\n", - "wrote 10000x8142_density=1.0_np -> tmpdata/06_tall_np\n", - "wrote 10000x10000_density=0.1_csc -> tmpdata/07_square_csc\n", - "wrote 10000x10000_density=0.1_csr -> tmpdata/08_square_csr\n", - "wrote 10000x10000_density=1.0_np -> tmpdata/09_square_np\n" + "wrote 12941x10000_csc -> tmpdata/01_fat_csc\n", + "\n", + "wrote 12941x10000_csr -> tmpdata/02_fat_csr\n", + "\n", + "wrote 12289x10000_np -> tmpdata/03_fat_np\n", + "\n", + "wrote 10000x12366_csc -> tmpdata/04_tall_csc\n", + "\n", + "wrote 10000x12366_csr -> tmpdata/05_tall_csr\n", + "\n", + "wrote 10000x13624_np -> tmpdata/06_tall_np\n", + "\n", + "wrote 10000x10000_csc -> tmpdata/07_square_csc\n", + "\n", + "wrote 10000x10000_csr -> tmpdata/08_square_csr\n", + "\n", + "wrote 10000x10000_np -> tmpdata/09_square_np\n", + "\n", + "wrote 13924x10000_csc -> tmpdata/10_fat_csc\n", + "\n", + "wrote 13924x10000_csr -> tmpdata/11_fat_csr\n", + "\n", + "wrote 13321x10000_np -> tmpdata/12_fat_np\n", + "\n", + "wrote 10000x12377_csc -> tmpdata/13_tall_csc\n", + "\n", + "wrote 10000x12377_csr -> tmpdata/14_tall_csr\n", + "\n", + "wrote 10000x12595_np -> tmpdata/15_tall_np\n", + "\n", + "wrote 10000x10000_csc -> tmpdata/16_square_csc\n", + "\n", + "wrote 10000x10000_csr -> tmpdata/17_square_csr\n", + "\n", + "wrote 10000x10000_np -> tmpdata/18_square_np\n", + "\n", + "wrote 13778x10000_csc -> tmpdata/19_fat_csc\n", + "\n", + "wrote 13778x10000_csr -> tmpdata/20_fat_csr\n", + "\n", + "wrote 12484x10000_np -> tmpdata/21_fat_np\n", + "\n", + "wrote 10000x13293_csc -> tmpdata/22_tall_csc\n", + "\n", + "wrote 10000x13293_csr -> tmpdata/23_tall_csr\n", + "\n", + "wrote 10000x13809_np -> tmpdata/24_tall_np\n", + "\n", + "wrote 10000x10000_csc -> tmpdata/25_square_csc\n", + "\n", + "wrote 10000x10000_csr -> tmpdata/26_square_csr\n", + "\n", + "wrote 10000x10000_np -> tmpdata/27_square_np\n", + "\n" ] } ], "source": [ - "file_id = 1\n", - "for _ in range(num_runs):\n", - " for shape in shapes:\n", - " for size in sizes:\n", - " for density in densities:\n", - " is_dense = density == 1\n", - " array_funcs = []\n", - " array_names = []\n", - " if is_dense:\n", - " array_names.append(\"np\")\n", - " array_funcs.append(lambda x: x.toarray())\n", - " else:\n", - " array_names.append(\"csc\")\n", - " array_names.append(\"csr\")\n", - " array_funcs.append(sparse.csc_matrix)\n", - " array_funcs.append(sparse.csr_matrix)\n", "\n", - " for array_func, array_name in zip(array_funcs, array_names):\n", - " M = size\n", - " N = size\n", - " if shape != \"square\":\n", - " other_size = int(size * np.random.uniform(0.7, 0.9))\n", - " if shape == \"fat\":\n", - " M = other_size\n", - " elif shape == \"tall\":\n", - " N = other_size\n", - "\n", - " X = array_func(\n", - " sparse.random(M, N, density=density, format=\"csc\")\n", - " )\n", - " adata = create_adata(\n", - " (M, N),\n", - " X,\n", - " )\n", - " fname = str(OUTDIR)+f\"/{file_id:02d}_{shape}_{array_name}\"\n", - " file_id += 1\n", - " print(f\"wrote {M}x{N}_density={density:0.1f}_{array_name} -> {fname}\")\n", - " if is_dense:\n", - " output_zarr_path = f\"{str(fname)}.zarr\"\n", - " z = zarr.open_group(output_zarr_path)\n", - "\n", - " write_elem(z, \"/\", adata)\n", - " zarr.consolidate_metadata(z.store)\n", - " else:\n", - " adata.write_zarr(f\"{fname}.zarr\")\n" + "# You can call the function like this:\n", + "write_temp_data(shapes, sizes, densities, num_runs, OUTDIR)\n" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "id": "3f71e387", "metadata": {}, "outputs": [], "source": [ - "nps = set(glob.glob(str(OUTDIR) + \"/*np*\"))\n", - "csrs = set(glob.glob(str(OUTDIR) + \"/*csr*\"))\n", - "cscs = set(glob.glob(str(OUTDIR) + \"/*csc*\"))\n", - "fats = set(glob.glob(str(OUTDIR) + \"/*fat*\"))\n", - "talls = set(glob.glob(str(OUTDIR) + \"/*tall*\"))\n", - "squares = set(glob.glob(str(OUTDIR) + \"/*square*\"))\n" + "# files by properties\n", + "filesets = {\n", + " 'nps' : set(glob.glob(str(OUTDIR) + \"/*np*\")),\n", + " 'csrs' : set(glob.glob(str(OUTDIR) + \"/*csr*\")),\n", + " 'cscs' : set(glob.glob(str(OUTDIR) + \"/*csc*\")),\n", + " 'fats' : set(glob.glob(str(OUTDIR) + \"/*fat*\")),\n", + " 'talls' : set(glob.glob(str(OUTDIR) + \"/*tall*\")),\n", + " 'squares' :set(glob.glob(str(OUTDIR) + \"/*square*\")),\n", + "}\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 3, - "id": "c2f9f1ec", + "execution_count": 6, + "id": "cfbc8bd5", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "def create_datasets(filesets, requires_reindexing=False):\n", + " data = dict()\n", + " for fileset, axis in ((\"cscs\",1), (\"csrs\",0), (\"nps\",0), (\"nps\",1)):\n", + " filepaths = filesets[fileset].copy()\n", + " if not requires_reindexing:\n", + " tall_or_fat = filesets['talls'] if axis == 1 else filesets['fats']\n", + " filepaths = filepaths.intersection(tall_or_fat.union(filesets['squares']))\n", + " fileset_name = \"dense\" if fileset == \"nps\" else \"sparse\"\n", + " data[fileset_name, axis] = filepaths\n", + " return data " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "a7c4769d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'tmpdata/03_fat_np.zarr',\n", - " 'tmpdata/06_tall_np.zarr',\n", - " 'tmpdata/09_square_np.zarr'}" + "{('sparse', 1): {'tmpdata/01_fat_csc.zarr',\n", + " 'tmpdata/04_tall_csc.zarr',\n", + " 'tmpdata/07_square_csc.zarr',\n", + " 'tmpdata/10_fat_csc.zarr',\n", + " 'tmpdata/13_tall_csc.zarr',\n", + " 'tmpdata/16_square_csc.zarr',\n", + " 'tmpdata/19_fat_csc.zarr',\n", + " 'tmpdata/22_tall_csc.zarr',\n", + " 'tmpdata/25_square_csc.zarr'},\n", + " ('sparse', 0): {'tmpdata/02_fat_csr.zarr',\n", + " 'tmpdata/05_tall_csr.zarr',\n", + " 'tmpdata/08_square_csr.zarr',\n", + " 'tmpdata/11_fat_csr.zarr',\n", + " 'tmpdata/14_tall_csr.zarr',\n", + " 'tmpdata/17_square_csr.zarr',\n", + " 'tmpdata/20_fat_csr.zarr',\n", + " 'tmpdata/23_tall_csr.zarr',\n", + " 'tmpdata/26_square_csr.zarr'},\n", + " ('dense', 0): {'tmpdata/03_fat_np.zarr',\n", + " 'tmpdata/06_tall_np.zarr',\n", + " 'tmpdata/09_square_np.zarr',\n", + " 'tmpdata/12_fat_np.zarr',\n", + " 'tmpdata/15_tall_np.zarr',\n", + " 'tmpdata/18_square_np.zarr',\n", + " 'tmpdata/21_fat_np.zarr',\n", + " 'tmpdata/24_tall_np.zarr',\n", + " 'tmpdata/27_square_np.zarr'},\n", + " ('dense', 1): {'tmpdata/03_fat_np.zarr',\n", + " 'tmpdata/06_tall_np.zarr',\n", + " 'tmpdata/09_square_np.zarr',\n", + " 'tmpdata/12_fat_np.zarr',\n", + " 'tmpdata/15_tall_np.zarr',\n", + " 'tmpdata/18_square_np.zarr',\n", + " 'tmpdata/21_fat_np.zarr',\n", + " 'tmpdata/24_tall_np.zarr',\n", + " 'tmpdata/27_square_np.zarr'}}" ] }, - "execution_count": 3, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "nps" + "datasets = create_datasets(filesets, requires_reindexing=True)\n", + "datasets\n" ] }, { "cell_type": "code", - "execution_count": 17, - "id": "6f35076e", + "execution_count": 8, + "id": "aabe8d23", "metadata": {}, "outputs": [], "source": [ - "def concat_on_disk_wrapper(filepaths, writepth, axis):\n", - " from multiprocessing import Lock\n", - " with dd.LocalCluster(memory_limit=\"400MB\", n_workers=1,threads_per_worker=1) as cluster:\n", - " with dd.Client(cluster) as client:\n", - " \n", - " lock = Lock()\n", - " concat_on_disk(filepaths, writepth, axis=axis, overwrite=True)\n" + "def get_dense_mem_usage(\n", + " filepaths=None,\n", + " writepth=None,\n", + " axis=None,\n", + " max_arg=\"600MiB\",\n", + "):\n", + "\n", + " cluster = LocalCluster(n_workers=1, threads_per_worker=1, memory_limit=max_arg)\n", + " client = Client(cluster)\n", + "\n", + " # get the current memory usage\n", + " initial_mem = memory_usage(-1, interval=0.001)[0]\n", + "\n", + " mem_usages = memory_usage(\n", + " (\n", + " concat_on_disk,\n", + " (),\n", + " {\n", + " \"in_files\": filepaths,\n", + " \"out_file\": writepth,\n", + " \"axis\": axis,\n", + " \"index_unique\": \"-\",\n", + " },\n", + " ),\n", + " include_children=True,\n", + " interval=0.001,\n", + " )\n", + " max_mem = max(mem_usages)\n", + " mem_increment = max_mem - initial_mem\n", + " \n", + " client.close()\n", + " cluster.close()\n", + " return mem_increment, max_mem, mem_usages, initial_mem\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 18, - "id": "cfbc8bd5", + "execution_count": 9, + "id": "0cf0be3a", "metadata": {}, "outputs": [], "source": [ - "data = dict()\n", - "for axis in (0, 1):\n", - " for fileset in (\"csrs\", \"nps-0\", \"nps-1\", \"cscs\"):\n", - " filepaths = []\n", - " if \"csrs\" in fileset:\n", - " filepaths = csrs\n", - " axis = 0\n", - " elif \"nps\" in fileset:\n", - " filepaths = nps\n", - " if \"0\" in fileset:\n", - " axis = 0\n", - " elif \"1\" in fileset:\n", - " axis = 1\n", - " elif fileset == \"cscs\":\n", - " filepaths = cscs\n", - " axis = 1\n", "\n", - " if axis == 0:\n", - " filepaths = filepaths.intersection(fats.union(squares))\n", - " elif axis == 1:\n", - " filepaths = filepaths.intersection(talls.union(squares))\n", "\n", - " data[fileset] = filepaths, axis\n" - ] - }, - { - "cell_type": "markdown", - "id": "bc83fbb8-ab85-40d5-81b9-c85099b1bc97", - "metadata": {}, - "source": [ - "Here is how our adata looks like" + "def get_arr_sizes(array_type, filepaths):\n", + " res = []\n", + " for f in filepaths:\n", + " store = zarr.open_group(f).store\n", + " additional_size = 0\n", + " if array_type == 'sparse':\n", + " additional_size = store.getsize('X/data')+store.getsize('X/indices')+store.getsize('X/indptr')\n", + " res.append(store.getsize('X')+additional_size)\n", + " return res\n", + "\n", + "def get_sparse_mem_usage(filepaths, writepth, axis, max_arg):\n", + " # get the current memory usage\n", + " initial_mem = memory_usage(-1, interval=0.001)[0]\n", + "\n", + " mem_usages = memory_usage(\n", + " (\n", + " concat_on_disk,\n", + " (),\n", + " {\n", + " \"in_files\": filepaths,\n", + " \"out_file\": writepth,\n", + " \"axis\": axis,\n", + " \"max_loaded_elems\": max_arg,\n", + " },\n", + " ),\n", + " include_children=True,\n", + " interval=0.001,\n", + " )\n", + " max_mem = max(mem_usages)\n", + " mem_increment = max_mem - initial_mem\n", + " \n", + " return mem_increment, max_mem, mem_usages, initial_mem\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 19, - "id": "769ecca2", - "metadata": { - "scrolled": true, - "tags": [] - }, + "execution_count": 10, + "id": "3e0cbd2f", + "metadata": {}, "outputs": [], "source": [ - "writepth = OUTDIR / \"out.zarr\"" + "\n", + "def dataset_max_mem(max_arg, datasets, array_type):\n", + " results = {}\n", + "\n", + " for filepaths,axis in [(datasets[array_type,axis],axis) for axis in [0,1]]:\n", + " writepth = OUTDIR / f\"{array_type}_{axis}.zarr\"\n", + " if writepth.exists():\n", + " shutil.rmtree(writepth)\n", + "\n", + " # print the files we are concatenating\n", + " print(\"Dataset:\", array_type, axis)\n", + " print(f\"Concatenating {len(filepaths)} files with sizes:\")\n", + " sizes = get_arr_sizes(array_type, filepaths)\n", + " print([str(s//(2**20))+'MiB' for s in sizes])\n", + " print(f\"Total size: {sum(sizes)//(2**20)}MiB\")\n", + " \n", + " mem_usage_func = get_sparse_mem_usage if array_type == 'sparse' else get_dense_mem_usage\n", + "\n", + " # force garbage collection\n", + " gc.collect()\n", + " # perform profiling\n", + " mem_increment, max_mem, mem_usages, initial_mem = mem_usage_func(filepaths, writepth, axis, max_arg)\n", + " # force garbage collection again\n", + " gc.collect()\n", + "\n", + " print(\"Concatenation finished\")\n", + " print(\"Max memory increase:\", int(mem_increment), \"MiB\")\n", + " print(\"--------------------------------------------------\")\n", + " results[array_type, axis] = {\"max_mem\": max_mem, \"increment\": mem_increment}\n", + " return results\n" ] }, { "cell_type": "code", - "execution_count": 20, - "id": "97ba50d0", + "execution_count": 11, + "id": "ad448529", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset: sparse 0\n", + "Concatenating 9 files with sizes:\n", + "['104MiB', '97MiB', '101MiB', '78MiB', '97MiB', '78MiB', '78MiB', '108MiB', '109MiB']\n", + "Total size: 853MiB\n", + "Concatenation finished\n", + "Max memory increase: 426 MiB\n", + "--------------------------------------------------\n", + "Dataset: sparse 1\n", + "Concatenating 9 files with sizes:\n", + "['78MiB', '108MiB', '104MiB', '101MiB', '78MiB', '97MiB', '78MiB', '97MiB', '109MiB']\n", + "Total size: 853MiB\n", + "Concatenation finished\n", + "Max memory increase: 590 MiB\n", + "--------------------------------------------------\n" + ] + }, + { + "data": { + "text/plain": [ + "{('sparse', 0): {'max_mem': 577.796875, 'increment': 426.50390625},\n", + " ('sparse', 1): {'max_mem': 756.609375, 'increment': 590.16015625}}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "filepaths, axis = data[\"nps-1\"]" + "dataset_max_mem(max_arg=1_000_000_000, datasets=datasets, array_type='sparse')" ] }, { "cell_type": "code", - "execution_count": null, - "id": "919e19cd", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "b8f1528e", + "execution_count": 12, + "id": "5aa2c05f", "metadata": {}, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "2023-07-24 15:37:24,507 - distributed.protocol.pickle - ERROR - Failed to serialize \n", - " 0. 140023082158464\n", - ">.\n", - "Traceback (most recent call last):\n", - " File \"/home/sel/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py\", line 63, in dumps\n", - " result = pickle.dumps(x, **dump_kwargs)\n", - "TypeError: cannot pickle '_thread.lock' object\n", - "\n", - "During handling of the above exception, another exception occurred:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/sel/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py\", line 68, in dumps\n", - " pickler.dump(x)\n", - "TypeError: cannot pickle '_thread.lock' object\n", - "\n", - "During handling of the above exception, another exception occurred:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/sel/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py\", line 81, in dumps\n", - " result = cloudpickle.dumps(x, **dump_kwargs)\n", - " File \"/home/sel/mambaforge/envs/dask/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py\", line 73, in dumps\n", - " cp.dump(obj)\n", - " File \"/home/sel/mambaforge/envs/dask/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py\", line 632, in dump\n", - " return Pickler.dump(self, obj)\n", - "TypeError: cannot pickle '_thread.lock' object\n" + "Dataset: sparse 0\n", + "Concatenating 9 files with sizes:\n", + "['104MiB', '97MiB', '101MiB', '78MiB', '97MiB', '78MiB', '78MiB', '108MiB', '109MiB']\n", + "Total size: 853MiB\n", + "Concatenation finished\n", + "Max memory increase: 427 MiB\n", + "--------------------------------------------------\n", + "Dataset: sparse 1\n", + "Concatenating 9 files with sizes:\n", + "['78MiB', '108MiB', '104MiB', '101MiB', '78MiB', '97MiB', '78MiB', '97MiB', '109MiB']\n", + "Total size: 853MiB\n", + "Concatenation finished\n", + "Max memory increase: 589 MiB\n", + "--------------------------------------------------\n" ] }, { - "ename": "TypeError", - "evalue": "('Could not serialize object of type HighLevelGraph', '\\n 0. 140023082158464\\n>')\n\nAbove error raised while writing key 'X' of to ", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py:63\u001b[0m, in \u001b[0;36mdumps\u001b[0;34m(x, buffer_callback, protocol)\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 63\u001b[0m result \u001b[39m=\u001b[39m pickle\u001b[39m.\u001b[39;49mdumps(x, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mdump_kwargs)\n\u001b[1;32m 64\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m:\n", - "\u001b[0;31mTypeError\u001b[0m: cannot pickle '_thread.lock' object", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py:68\u001b[0m, in \u001b[0;36mdumps\u001b[0;34m(x, buffer_callback, protocol)\u001b[0m\n\u001b[1;32m 67\u001b[0m buffers\u001b[39m.\u001b[39mclear()\n\u001b[0;32m---> 68\u001b[0m pickler\u001b[39m.\u001b[39;49mdump(x)\n\u001b[1;32m 69\u001b[0m result \u001b[39m=\u001b[39m f\u001b[39m.\u001b[39mgetvalue()\n", - "\u001b[0;31mTypeError\u001b[0m: cannot pickle '_thread.lock' object", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/serialize.py:350\u001b[0m, in \u001b[0;36mserialize\u001b[0;34m(x, serializers, on_error, context, iterate_collection)\u001b[0m\n\u001b[1;32m 349\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 350\u001b[0m header, frames \u001b[39m=\u001b[39m dumps(x, context\u001b[39m=\u001b[39;49mcontext) \u001b[39mif\u001b[39;00m wants_context \u001b[39melse\u001b[39;00m dumps(x)\n\u001b[1;32m 351\u001b[0m header[\u001b[39m\"\u001b[39m\u001b[39mserializer\u001b[39m\u001b[39m\"\u001b[39m] \u001b[39m=\u001b[39m name\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/serialize.py:73\u001b[0m, in \u001b[0;36mpickle_dumps\u001b[0;34m(x, context)\u001b[0m\n\u001b[1;32m 71\u001b[0m writeable\u001b[39m.\u001b[39mappend(\u001b[39mnot\u001b[39;00m f\u001b[39m.\u001b[39mreadonly)\n\u001b[0;32m---> 73\u001b[0m frames[\u001b[39m0\u001b[39m] \u001b[39m=\u001b[39m pickle\u001b[39m.\u001b[39;49mdumps(\n\u001b[1;32m 74\u001b[0m x,\n\u001b[1;32m 75\u001b[0m buffer_callback\u001b[39m=\u001b[39;49mbuffer_callback,\n\u001b[1;32m 76\u001b[0m protocol\u001b[39m=\u001b[39;49mcontext\u001b[39m.\u001b[39;49mget(\u001b[39m\"\u001b[39;49m\u001b[39mpickle-protocol\u001b[39;49m\u001b[39m\"\u001b[39;49m, \u001b[39mNone\u001b[39;49;00m) \u001b[39mif\u001b[39;49;00m context \u001b[39melse\u001b[39;49;00m \u001b[39mNone\u001b[39;49;00m,\n\u001b[1;32m 77\u001b[0m )\n\u001b[1;32m 78\u001b[0m header \u001b[39m=\u001b[39m {\n\u001b[1;32m 79\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mserializer\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39mpickle\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 80\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mwriteable\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39mtuple\u001b[39m(writeable),\n\u001b[1;32m 81\u001b[0m }\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/pickle.py:81\u001b[0m, in \u001b[0;36mdumps\u001b[0;34m(x, buffer_callback, protocol)\u001b[0m\n\u001b[1;32m 80\u001b[0m buffers\u001b[39m.\u001b[39mclear()\n\u001b[0;32m---> 81\u001b[0m result \u001b[39m=\u001b[39m cloudpickle\u001b[39m.\u001b[39;49mdumps(x, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mdump_kwargs)\n\u001b[1;32m 82\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m:\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py:73\u001b[0m, in \u001b[0;36mdumps\u001b[0;34m(obj, protocol, buffer_callback)\u001b[0m\n\u001b[1;32m 70\u001b[0m cp \u001b[39m=\u001b[39m CloudPickler(\n\u001b[1;32m 71\u001b[0m file, protocol\u001b[39m=\u001b[39mprotocol, buffer_callback\u001b[39m=\u001b[39mbuffer_callback\n\u001b[1;32m 72\u001b[0m )\n\u001b[0;32m---> 73\u001b[0m cp\u001b[39m.\u001b[39;49mdump(obj)\n\u001b[1;32m 74\u001b[0m \u001b[39mreturn\u001b[39;00m file\u001b[39m.\u001b[39mgetvalue()\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/cloudpickle/cloudpickle_fast.py:632\u001b[0m, in \u001b[0;36mCloudPickler.dump\u001b[0;34m(self, obj)\u001b[0m\n\u001b[1;32m 631\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 632\u001b[0m \u001b[39mreturn\u001b[39;00m Pickler\u001b[39m.\u001b[39;49mdump(\u001b[39mself\u001b[39;49m, obj)\n\u001b[1;32m 633\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n", - "\u001b[0;31mTypeError\u001b[0m: cannot pickle '_thread.lock' object", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/utils.py:246\u001b[0m, in \u001b[0;36mreport_write_key_on_error..func_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 245\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 246\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 247\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n", - "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/specs/registry.py:311\u001b[0m, in \u001b[0;36mWriter.write_elem\u001b[0;34m(self, store, k, elem, dataset_kwargs, modifiers)\u001b[0m\n\u001b[1;32m 310\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 311\u001b[0m \u001b[39mreturn\u001b[39;00m write_func(store, k, elem, dataset_kwargs\u001b[39m=\u001b[39;49mdataset_kwargs)\n", - "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/specs/registry.py:52\u001b[0m, in \u001b[0;36mwrite_spec..decorator..wrapper\u001b[0;34m(g, k, *args, **kwargs)\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[39m@wraps\u001b[39m(func)\n\u001b[1;32m 51\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrapper\u001b[39m(g, k, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[0;32m---> 52\u001b[0m result \u001b[39m=\u001b[39m func(g, k, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 53\u001b[0m g[k]\u001b[39m.\u001b[39mattrs\u001b[39m.\u001b[39msetdefault(\u001b[39m\"\u001b[39m\u001b[39mencoding-type\u001b[39m\u001b[39m\"\u001b[39m, spec\u001b[39m.\u001b[39mencoding_type)\n", - "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/specs/methods.py:317\u001b[0m, in \u001b[0;36mwrite_basic_dask\u001b[0;34m(f, k, elem, _writer, dataset_kwargs)\u001b[0m\n\u001b[1;32m 316\u001b[0m g \u001b[39m=\u001b[39m f\u001b[39m.\u001b[39mrequire_dataset(k, shape\u001b[39m=\u001b[39melem\u001b[39m.\u001b[39mshape, dtype\u001b[39m=\u001b[39melem\u001b[39m.\u001b[39mdtype, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mdataset_kwargs)\n\u001b[0;32m--> 317\u001b[0m da\u001b[39m.\u001b[39;49mstore(elem, g)\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/dask/array/core.py:1237\u001b[0m, in \u001b[0;36mstore\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 1236\u001b[0m store_dsk \u001b[39m=\u001b[39m HighLevelGraph(layers, dependencies)\n\u001b[0;32m-> 1237\u001b[0m compute_as_if_collection(Array, store_dsk, map_keys, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 1238\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mNone\u001b[39;00m\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/dask/base.py:341\u001b[0m, in \u001b[0;36mcompute_as_if_collection\u001b[0;34m(cls, dsk, keys, scheduler, get, **kwargs)\u001b[0m\n\u001b[1;32m 340\u001b[0m dsk2 \u001b[39m=\u001b[39m optimization_function(\u001b[39mcls\u001b[39m)(dsk, keys, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m--> 341\u001b[0m \u001b[39mreturn\u001b[39;00m schedule(dsk2, keys, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/client.py:3204\u001b[0m, in \u001b[0;36mClient.get\u001b[0;34m(self, dsk, keys, workers, allow_other_workers, resources, sync, asynchronous, direct, retries, priority, fifo_timeout, actors, **kwargs)\u001b[0m\n\u001b[1;32m 3147\u001b[0m \u001b[39m\"\"\"Compute dask graph\u001b[39;00m\n\u001b[1;32m 3148\u001b[0m \n\u001b[1;32m 3149\u001b[0m \u001b[39mParameters\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3202\u001b[0m \u001b[39mClient.compute : Compute asynchronous collections\u001b[39;00m\n\u001b[1;32m 3203\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m-> 3204\u001b[0m futures \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_graph_to_futures(\n\u001b[1;32m 3205\u001b[0m dsk,\n\u001b[1;32m 3206\u001b[0m keys\u001b[39m=\u001b[39;49m\u001b[39mset\u001b[39;49m(flatten([keys])),\n\u001b[1;32m 3207\u001b[0m workers\u001b[39m=\u001b[39;49mworkers,\n\u001b[1;32m 3208\u001b[0m allow_other_workers\u001b[39m=\u001b[39;49mallow_other_workers,\n\u001b[1;32m 3209\u001b[0m resources\u001b[39m=\u001b[39;49mresources,\n\u001b[1;32m 3210\u001b[0m fifo_timeout\u001b[39m=\u001b[39;49mfifo_timeout,\n\u001b[1;32m 3211\u001b[0m retries\u001b[39m=\u001b[39;49mretries,\n\u001b[1;32m 3212\u001b[0m user_priority\u001b[39m=\u001b[39;49mpriority,\n\u001b[1;32m 3213\u001b[0m actors\u001b[39m=\u001b[39;49mactors,\n\u001b[1;32m 3214\u001b[0m )\n\u001b[1;32m 3215\u001b[0m packed \u001b[39m=\u001b[39m pack_data(keys, futures)\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/client.py:3103\u001b[0m, in \u001b[0;36mClient._graph_to_futures\u001b[0;34m(self, dsk, keys, workers, allow_other_workers, internal_priority, user_priority, resources, retries, fifo_timeout, actors)\u001b[0m\n\u001b[1;32m 3101\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mdistributed\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprotocol\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mserialize\u001b[39;00m \u001b[39mimport\u001b[39;00m ToPickle\n\u001b[0;32m-> 3103\u001b[0m header, frames \u001b[39m=\u001b[39m serialize(ToPickle(dsk), on_error\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mraise\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n\u001b[1;32m 3104\u001b[0m nbytes \u001b[39m=\u001b[39m \u001b[39mlen\u001b[39m(header) \u001b[39m+\u001b[39m \u001b[39msum\u001b[39m(\u001b[39mmap\u001b[39m(\u001b[39mlen\u001b[39m, frames))\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.9/site-packages/distributed/protocol/serialize.py:372\u001b[0m, in \u001b[0;36mserialize\u001b[0;34m(x, serializers, on_error, context, iterate_collection)\u001b[0m\n\u001b[1;32m 371\u001b[0m \u001b[39melif\u001b[39;00m on_error \u001b[39m==\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mraise\u001b[39m\u001b[39m\"\u001b[39m:\n\u001b[0;32m--> 372\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mTypeError\u001b[39;00m(msg, \u001b[39mstr\u001b[39m(x)[:\u001b[39m10000\u001b[39m]) \u001b[39mfrom\u001b[39;00m \u001b[39mexc\u001b[39;00m\n\u001b[1;32m 373\u001b[0m \u001b[39melse\u001b[39;00m: \u001b[39m# pragma: nocover\u001b[39;00m\n", - "\u001b[0;31mTypeError\u001b[0m: ('Could not serialize object of type HighLevelGraph', '\\n 0. 140023082158464\\n>')", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[21], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m concat_on_disk_wrapper(filepaths, writepth, axis\u001b[39m=\u001b[39;49maxis)\n", - "Cell \u001b[0;32mIn[17], line 7\u001b[0m, in \u001b[0;36mconcat_on_disk_wrapper\u001b[0;34m(filepaths, writepth, axis)\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[39mwith\u001b[39;00m dd\u001b[39m.\u001b[39mClient(cluster) \u001b[39mas\u001b[39;00m client:\n\u001b[1;32m 6\u001b[0m lock \u001b[39m=\u001b[39m Lock()\n\u001b[0;32m----> 7\u001b[0m concat_on_disk(filepaths, writepth, axis\u001b[39m=\u001b[39;49maxis, overwrite\u001b[39m=\u001b[39;49m\u001b[39mTrue\u001b[39;49;00m)\n", - "File \u001b[0;32m~/projects/dask/anndata/anndata/experimental/merge.py:591\u001b[0m, in \u001b[0;36mconcat_on_disk\u001b[0;34m(in_files, out_file, overwrite, max_loaded_elems, axis, join, merge, uns_merge, label, keys, index_unique, fill_value, pairwise)\u001b[0m\n\u001b[1;32m 587\u001b[0m _write_alt_mapping(groups, output_group, alt_dim, alt_indices, merge)\n\u001b[1;32m 589\u001b[0m \u001b[39m# Write X\u001b[39;00m\n\u001b[0;32m--> 591\u001b[0m _write_concat_arrays(\n\u001b[1;32m 592\u001b[0m arrays\u001b[39m=\u001b[39;49mXs,\n\u001b[1;32m 593\u001b[0m output_group\u001b[39m=\u001b[39;49moutput_group,\n\u001b[1;32m 594\u001b[0m output_path\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mX\u001b[39;49m\u001b[39m\"\u001b[39;49m,\n\u001b[1;32m 595\u001b[0m axis\u001b[39m=\u001b[39;49maxis,\n\u001b[1;32m 596\u001b[0m reindexers\u001b[39m=\u001b[39;49mreindexers,\n\u001b[1;32m 597\u001b[0m fill_value\u001b[39m=\u001b[39;49mfill_value,\n\u001b[1;32m 598\u001b[0m max_loaded_elems\u001b[39m=\u001b[39;49mmax_loaded_elems,\n\u001b[1;32m 599\u001b[0m )\n\u001b[1;32m 601\u001b[0m \u001b[39m# Write Layers and {dim}m\u001b[39;00m\n\u001b[1;32m 602\u001b[0m mapping_names \u001b[39m=\u001b[39m [\n\u001b[1;32m 603\u001b[0m (\n\u001b[1;32m 604\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mdim\u001b[39m}\u001b[39;00m\u001b[39mm\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 609\u001b[0m (\u001b[39m\"\u001b[39m\u001b[39mlayers\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39mNone\u001b[39;00m, axis, reindexers),\n\u001b[1;32m 610\u001b[0m ]\n", - "File \u001b[0;32m~/projects/dask/anndata/anndata/experimental/merge.py:311\u001b[0m, in \u001b[0;36m_write_concat_arrays\u001b[0;34m(arrays, output_group, output_path, max_loaded_elems, axis, reindexers, fill_value, join)\u001b[0m\n\u001b[1;32m 307\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 308\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mConcat of following not supported: \u001b[39m\u001b[39m{\u001b[39;00m[a\u001b[39m.\u001b[39mformat_str \u001b[39mfor\u001b[39;00m a \u001b[39min\u001b[39;00m arrays]\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\n\u001b[1;32m 309\u001b[0m )\n\u001b[1;32m 310\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 311\u001b[0m write_concat_dense(\n\u001b[1;32m 312\u001b[0m arrays, output_group, output_path, axis, reindexers, fill_value\n\u001b[1;32m 313\u001b[0m )\n", - "File \u001b[0;32m~/projects/dask/anndata/anndata/experimental/merge.py:191\u001b[0m, in \u001b[0;36mwrite_concat_dense\u001b[0;34m(arrays, output_group, output_path, axis, reindexers, fill_value)\u001b[0m\n\u001b[1;32m 182\u001b[0m darrays \u001b[39m=\u001b[39m (da\u001b[39m.\u001b[39mfrom_array(a, chunks\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mauto\u001b[39m\u001b[39m\"\u001b[39m) \u001b[39mfor\u001b[39;00m a \u001b[39min\u001b[39;00m arrays)\n\u001b[1;32m 184\u001b[0m res \u001b[39m=\u001b[39m da\u001b[39m.\u001b[39mconcatenate(\n\u001b[1;32m 185\u001b[0m [\n\u001b[1;32m 186\u001b[0m ri(a, axis\u001b[39m=\u001b[39m\u001b[39m1\u001b[39m \u001b[39m-\u001b[39m axis, fill_value\u001b[39m=\u001b[39mfill_value)\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 189\u001b[0m axis\u001b[39m=\u001b[39maxis,\n\u001b[1;32m 190\u001b[0m )\n\u001b[0;32m--> 191\u001b[0m write_elem(output_group, output_path, res)\n\u001b[1;32m 192\u001b[0m output_group[output_path]\u001b[39m.\u001b[39mattrs\u001b[39m.\u001b[39mupdate(\n\u001b[1;32m 193\u001b[0m {\u001b[39m\"\u001b[39m\u001b[39mencoding-type\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39marray\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39m\"\u001b[39m\u001b[39mencoding-version\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39m0.2.0\u001b[39m\u001b[39m\"\u001b[39m}\n\u001b[1;32m 194\u001b[0m )\n", - "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/specs/registry.py:353\u001b[0m, in \u001b[0;36mwrite_elem\u001b[0;34m(store, k, elem, dataset_kwargs)\u001b[0m\n\u001b[1;32m 329\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrite_elem\u001b[39m(\n\u001b[1;32m 330\u001b[0m store: GroupStorageType,\n\u001b[1;32m 331\u001b[0m k: \u001b[39mstr\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 334\u001b[0m dataset_kwargs: Mapping \u001b[39m=\u001b[39m MappingProxyType({}),\n\u001b[1;32m 335\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 336\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 337\u001b[0m \u001b[39m Write an element to a storage group using anndata encoding.\u001b[39;00m\n\u001b[1;32m 338\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 351\u001b[0m \u001b[39m E.g. for zarr this would be `chunks`, `compressor`.\u001b[39;00m\n\u001b[1;32m 352\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 353\u001b[0m Writer(_REGISTRY)\u001b[39m.\u001b[39;49mwrite_elem(store, k, elem, dataset_kwargs\u001b[39m=\u001b[39;49mdataset_kwargs)\n", - "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/utils.py:248\u001b[0m, in \u001b[0;36mreport_write_key_on_error..func_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[1;32m 247\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[0;32m--> 248\u001b[0m re_raise_error(e, elem, key)\n", - "File \u001b[0;32m~/projects/dask/anndata/anndata/_io/utils.py:229\u001b[0m, in \u001b[0;36mreport_write_key_on_error..re_raise_error\u001b[0;34m(e, elem, key)\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 228\u001b[0m parent \u001b[39m=\u001b[39m _get_parent(elem)\n\u001b[0;32m--> 229\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mtype\u001b[39m(e)(\n\u001b[1;32m 230\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00me\u001b[39m}\u001b[39;00m\u001b[39m\\n\u001b[39;00m\u001b[39m\\n\u001b[39;00m\u001b[39m\"\u001b[39m\n\u001b[1;32m 231\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mAbove error raised while writing key \u001b[39m\u001b[39m{\u001b[39;00mkey\u001b[39m!r}\u001b[39;00m\u001b[39m of \u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mtype\u001b[39m(elem)\u001b[39m}\u001b[39;00m\u001b[39m \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 232\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mto \u001b[39m\u001b[39m{\u001b[39;00mparent\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\n\u001b[1;32m 233\u001b[0m ) \u001b[39mfrom\u001b[39;00m \u001b[39me\u001b[39;00m\n", - "\u001b[0;31mTypeError\u001b[0m: ('Could not serialize object of type HighLevelGraph', '\\n 0. 140023082158464\\n>')\n\nAbove error raised while writing key 'X' of to " - ] + "data": { + "text/plain": [ + "{('sparse', 0): {'max_mem': 596.15625, 'increment': 427.5},\n", + " ('sparse', 1): {'max_mem': 759.921875, 'increment': 589.625}}" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "concat_on_disk_wrapper(filepaths, writepth, axis=axis)" + "dataset_max_mem(max_arg=100_000_000, datasets=datasets, array_type='sparse')" ] }, { "cell_type": "code", - "execution_count": 77, - "id": "1c6ec3e0", + "execution_count": 13, + "id": "f3b74ee3", "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset: dense 0\n", + "Concatenating 9 files with sizes:\n", + "['910MiB', '668MiB', '923MiB', '891MiB', '668MiB', '822MiB', '835MiB', '843MiB', '668MiB']\n", + "Total size: 7233MiB\n", + "Concatenation finished\n", + "Max memory increase: 1023 MiB\n", + "--------------------------------------------------\n", + "Dataset: dense 1\n", + "Concatenating 9 files with sizes:\n", + "['910MiB', '668MiB', '923MiB', '891MiB', '668MiB', '822MiB', '835MiB', '843MiB', '668MiB']\n", + "Total size: 7233MiB\n", + "Concatenation finished\n", + "Max memory increase: 967 MiB\n", + "--------------------------------------------------\n" + ] + }, { "data": { "text/plain": [ - "{'tmpdata/02_fat_csr.zarr', 'tmpdata/08_square_csr.zarr'}" + "{('dense', 0): {'max_mem': 1210.96875, 'increment': 1023.703125},\n", + " ('dense', 1): {'max_mem': 1163.109375, 'increment': 967.73046875}}" ] }, - "execution_count": 77, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "filepaths" + "dataset_max_mem(max_arg=\"1000MiB\", datasets=datasets, array_type='dense')" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e4defaeb", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From 62410bfd27a3074fb5a77f6e4dfcaf5b18dde455 Mon Sep 17 00:00:00 2001 From: syelman Date: Wed, 30 Aug 2023 14:53:12 +0200 Subject: [PATCH 03/15] added explanations --- concat-on-disk.ipynb | 575 ++++++++++++++++++++++++++++++------------- 1 file changed, 404 insertions(+), 171 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 9dbd745..231a30f 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -21,9 +21,10 @@ "id": "cb9b747f-4384-4b16-8f4f-806edfdc0b06", "metadata": {}, "source": [ - "## Initalizing\n", "\n", - "First let's do our imports and initalize adata objects with the help of the `adata_with_dask` function defined below." + "## Initializing\n", + "\n", + "Let's begin by importing the necessary libraries and modules. This notebook also uses the [memory-profiler](https://pypi.org/project/memory-profiler/) extension. Ensure you've installed it using `pip install memory-profiler` before proceeding." ] }, { @@ -52,81 +53,227 @@ "import anndata\n", "from pathlib import Path\n", "import glob\n", - "import dask.distributed as dd\n", "\n", "import anndata\n", - "import dask.array as da\n", "import zarr\n", "import gc\n", "from anndata.experimental import concat_on_disk\n", - "from dask.distributed import Client, LocalCluster\n", + "from dask.distributed import Client, LocalCluster" + ] + }, + { + "cell_type": "markdown", + "id": "9f991e3b", + "metadata": {}, + "source": [ + "## Data Creation and Analysis\n", + "\n", + "In this section, we'll demonstrate the core functionality of the `concat_on_disk` method. We'll create datasets and analyze how this method performs in terms of memory usage. This will help us understand its efficiency and benefits, especially when working with large datasets.\n", + "\n", + "We will define parameters that will influence the structure of our datasets:\n", "\n", + "- **Shapes**: Defines the shape of array (e.g., \"fat\", \"tall\", \"square\").\n", + "- **Sizes**: The size of the array, indicating the number of elements.\n", + "- **Densities**: Specifies the data density. 1 means dense numpy array.\n", + "\n", + "These parameters will be utilized in subsequent sections to generate and analyze datasets." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "29f0bd5a", + "metadata": {}, + "outputs": [], + "source": [ "\n", + "# Directory where the data will be stored\n", "OUTDIR = Path(\"tmpdata\")\n", "\n", + "# Parameters that will influence the structure and size of our datasets:\n", "\n", + "# Shapes of the arrays: \"fat\", \"tall\", or \"square\"\n", "shapes = [\"fat\", \"tall\", \"square\"]\n", + "\n", + "# Sizes of the dataset, indicating the number of elements\n", "sizes = [10_000]\n", + "\n", + "# Densities: Specifies the data density. A higher value means more non-zero elements\n", "densities = [0.1, 1]\n", + "\n", + "# Number of times each array type will be created\n", "num_runs = 3\n" ] }, { - "cell_type": "code", - "execution_count": 2, - "id": "3dd5068e", + "cell_type": "markdown", + "id": "d6dbc5a4", "metadata": {}, - "outputs": [], "source": [ + "### create_adata\n", "\n", + "This function is designed to create an `AnnData` object, which is a foundational data structure used in bioinformatics to store high-dimensional data such as gene expression matrices. Given a data matrix `X` and its shape, the function constructs the `AnnData` object complete with observation (`obs`) and variable (`var`) metadata.\n", "\n", + "- `shape`: The shape (dimensions) of the data matrix.\n", + "- `X`: The actual data matrix (could be dense or sparse).\n", + "\n", + "Returns: An `AnnData` object constructed from the input data and metadata.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "6e919ecc", + "metadata": {}, + "outputs": [], + "source": [ "def create_adata(shape, X):\n", + " # Shape of the data matrix\n", " M, N = shape\n", + " \n", + " # Generating observation and variable names\n", " obs_names = pd.Index(f\"cell{i}\" for i in range(shape[0]))\n", " var_names = pd.Index(f\"gene{i}\" for i in range(shape[1]))\n", + " \n", + " # Creating observation and variable dataframes\n", " obs = gen_typed_df(M, obs_names)\n", " var = gen_typed_df(N, var_names)\n", - " # For #147\n", " \n", + " # Renaming columns to ensure uniqueness\n", " obs.rename(columns=dict(cat=\"obs_cat\"), inplace=True)\n", " var.rename(columns=dict(cat=\"var_cat\"), inplace=True)\n", + " \n", + " # Constructing the AnnData object\n", " adata = anndata.AnnData(X, obs=obs, var=var)\n", " adata.var_names_make_unique()\n", " adata.obs_names_make_unique()\n", - " \n", + "\n", " return adata\n" ] }, + { + "cell_type": "markdown", + "id": "9449622e", + "metadata": {}, + "source": [ + "### generate_array_funcs_and_names\n", + "\n", + "This function determines the type of array functions and their corresponding names based on the provided `density` parameter. It essentially helps in figuring out if the dataset is dense or sparse.\n", + "\n", + "- `density`: The density of the dataset. If the density is 1, the dataset is dense; otherwise, it's sparse.\n", + "\n", + "Returns: A tuple containing the list of array functions and their corresponding names.\n" + ] + }, { "cell_type": "code", - "execution_count": 3, - "id": "6e0d9324", + "execution_count": 4, + "id": "c2eb98ac", "metadata": {}, "outputs": [], "source": [ "def generate_array_funcs_and_names(density):\n", - " array_funcs = []\n", - " array_names = []\n", - " is_dense = density == 1\n", - " if is_dense:\n", + " array_funcs = [] # List to hold array functions\n", + " array_names = [] # List to hold array names\n", + " \n", + " # Check if dataset is dense\n", + " if density == 1:\n", " array_names.append(\"np\")\n", " array_funcs.append(lambda x: x.toarray())\n", " else:\n", + " # For sparse datasets, consider both csc and csr formats\n", " array_names.extend([\"csc\", \"csr\"])\n", " array_funcs.extend([sparse.csc_matrix, sparse.csr_matrix])\n", - " return array_funcs, array_names\n", + " \n", + " return array_funcs, array_names" + ] + }, + { + "cell_type": "markdown", + "id": "d9786c59", + "metadata": {}, + "source": [ + "### generate_dimensions\n", "\n", + "Given a shape description (like \"fat\", \"tall\", or \"square\") and a base size, this function computes the exact dimensions \\(M\\) and \\(N\\) of the dataset. \n", + "\n", + "- `shape`: Description of the desired shape of the dataset.\n", + "- `size`: Base size for the dataset.\n", + "\n", + "Returns: The dimensions \\(M\\) and \\(N\\) of the dataset.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "3dd5068e", + "metadata": {}, + "outputs": [], + "source": [ "def generate_dimensions(shape, size):\n", + " # Default dimensions\n", " M = size\n", " N = size\n", + " \n", + " # If the shape isn't square, adjust the dimensions\n", " if shape != \"square\":\n", " other_size = size + int(size * np.random.uniform(0.2, 0.4))\n", " if shape == \"fat\":\n", " M = other_size\n", " elif shape == \"tall\":\n", " N = other_size\n", - " return M, N\n", + " \n", + " return M, N\n" + ] + }, + { + "cell_type": "markdown", + "id": "96a00c66", + "metadata": {}, + "source": [ + "## Writing The Arrays To Disk\n", + "\n", + "We will use the functions defined below to write the anndatas. There is no need to understand them all. However, the functions are also explained below for users who would like to create their own datasets to do the measurements.\n", + "\n", + "### Functions Overview\n", + "\n", + "#### 1. `write_data_to_zarr`\n", + "\n", + "This function is responsible for writing a given dataset `X` to a Zarr format file. Zarr is a format for the storage of chunked, compressed, N-dimensional arrays, which is useful for efficient on-disk storage and retrieval of large datasets.\n", + "\n", + "- **Parameters**:\n", + " - `X`: The dataset to be written.\n", + " - `shape`: Descriptive shape of the dataset.\n", + " - `array_name`: Name representing the type of array (e.g., \"np\", \"csc\", \"csr\").\n", + " - `outdir`: Directory where the Zarr file should be stored.\n", + " - `file_id`: Identifier for the file, used in naming.\n", + "\n", + "- **Returns**: A string report detailing the writing operation.\n", + "\n", + "#### 2. `write_temp_data`\n", "\n", + "This function is designed to write temporary data based on the specified parameters to the output directory. It iteratively generates data sets based on shapes, sizes, densities, and number of runs, and writes each dataset to a Zarr format file using the `write_data_to_zarr` function.\n", + "\n", + "- **Parameters**:\n", + " - `shapes`: List of dataset shapes (e.g., \"fat\", \"tall\", \"square\").\n", + " - `sizes`: List of dataset sizes.\n", + " - `densities`: List of dataset densities.\n", + " - `num_runs`: Number of iterations for data generation.\n", + " - `outdir`: Directory where the Zarr files should be stored.\n", + " - `rewrite`: Boolean flag; if True, any existing data in the output directory will be overwritten.\n", + "\n", + "This function not only writes the datasets but also maintains a log of the datasets written in a file named \"done.txt\".\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "134c147f", + "metadata": {}, + "outputs": [], + "source": [ "def write_data_to_zarr(X, shape, array_name, outdir, file_id):\n", " fname = str(outdir) + f\"/{file_id:02d}_{shape}_{array_name}\"\n", " adata = create_adata((X.shape[0], X.shape[1]), X)\n", @@ -171,7 +318,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "id": "fbf50dbe", "metadata": {}, "outputs": [ @@ -179,6 +326,7 @@ "name": "stdout", "output_type": "stream", "text": [ + "already done\n", "wrote 12941x10000_csc -> tmpdata/01_fat_csc\n", "\n", "wrote 12941x10000_csr -> tmpdata/02_fat_csr\n", @@ -242,9 +390,19 @@ "write_temp_data(shapes, sizes, densities, num_runs, OUTDIR)\n" ] }, + { + "cell_type": "markdown", + "id": "3b8c7897", + "metadata": {}, + "source": [ + "### Putting our arrays in categories\n", + "\n", + "The `create_datasets` function constructs a dictionary that maps dataset types (dense or sparse) and their axis (0 or 1) to a set of corresponding file paths. The function processes different file sets and, based on conditions like `requires_reindexing`, refines the set of file paths to be associated with each dataset type and axis combination.\n" + ] + }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 8, "id": "3f71e387", "metadata": {}, "outputs": [], @@ -257,18 +415,16 @@ " 'fats' : set(glob.glob(str(OUTDIR) + \"/*fat*\")),\n", " 'talls' : set(glob.glob(str(OUTDIR) + \"/*tall*\")),\n", " 'squares' :set(glob.glob(str(OUTDIR) + \"/*square*\")),\n", - "}\n", - "\n" + "}" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "id": "cfbc8bd5", "metadata": {}, "outputs": [], "source": [ - "\n", "def create_datasets(filesets, requires_reindexing=False):\n", " data = dict()\n", " for fileset, axis in ((\"cscs\",1), (\"csrs\",0), (\"nps\",0), (\"nps\",1)):\n", @@ -282,125 +438,88 @@ ] }, { - "cell_type": "code", - "execution_count": 7, - "id": "a7c4769d", + "cell_type": "markdown", + "id": "ee43c851", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{('sparse', 1): {'tmpdata/01_fat_csc.zarr',\n", - " 'tmpdata/04_tall_csc.zarr',\n", - " 'tmpdata/07_square_csc.zarr',\n", - " 'tmpdata/10_fat_csc.zarr',\n", - " 'tmpdata/13_tall_csc.zarr',\n", - " 'tmpdata/16_square_csc.zarr',\n", - " 'tmpdata/19_fat_csc.zarr',\n", - " 'tmpdata/22_tall_csc.zarr',\n", - " 'tmpdata/25_square_csc.zarr'},\n", - " ('sparse', 0): {'tmpdata/02_fat_csr.zarr',\n", - " 'tmpdata/05_tall_csr.zarr',\n", - " 'tmpdata/08_square_csr.zarr',\n", - " 'tmpdata/11_fat_csr.zarr',\n", - " 'tmpdata/14_tall_csr.zarr',\n", - " 'tmpdata/17_square_csr.zarr',\n", - " 'tmpdata/20_fat_csr.zarr',\n", - " 'tmpdata/23_tall_csr.zarr',\n", - " 'tmpdata/26_square_csr.zarr'},\n", - " ('dense', 0): {'tmpdata/03_fat_np.zarr',\n", - " 'tmpdata/06_tall_np.zarr',\n", - " 'tmpdata/09_square_np.zarr',\n", - " 'tmpdata/12_fat_np.zarr',\n", - " 'tmpdata/15_tall_np.zarr',\n", - " 'tmpdata/18_square_np.zarr',\n", - " 'tmpdata/21_fat_np.zarr',\n", - " 'tmpdata/24_tall_np.zarr',\n", - " 'tmpdata/27_square_np.zarr'},\n", - " ('dense', 1): {'tmpdata/03_fat_np.zarr',\n", - " 'tmpdata/06_tall_np.zarr',\n", - " 'tmpdata/09_square_np.zarr',\n", - " 'tmpdata/12_fat_np.zarr',\n", - " 'tmpdata/15_tall_np.zarr',\n", - " 'tmpdata/18_square_np.zarr',\n", - " 'tmpdata/21_fat_np.zarr',\n", - " 'tmpdata/24_tall_np.zarr',\n", - " 'tmpdata/27_square_np.zarr'}}" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "datasets = create_datasets(filesets, requires_reindexing=True)\n", - "datasets\n" + "Below you can see the both the list of anndatas that would require reindexing when concatenating (i.e, their axis size don't match) and the ones who don't" ] }, { "cell_type": "code", - "execution_count": 8, - "id": "aabe8d23", + "execution_count": 10, + "id": "a7c4769d", "metadata": {}, "outputs": [], "source": [ - "def get_dense_mem_usage(\n", - " filepaths=None,\n", - " writepth=None,\n", - " axis=None,\n", - " max_arg=\"600MiB\",\n", - "):\n", + "datasets_aligned, datasets_unaligned =create_datasets(filesets,requires_reindexing=False), create_datasets(filesets, requires_reindexing=True)" + ] + }, + { + "cell_type": "markdown", + "id": "03e833a1", + "metadata": {}, + "source": [ + "## Measuring Performance" + ] + }, + { + "cell_type": "markdown", + "id": "f418d1b7", + "metadata": {}, + "source": [ + "### `get_arr_sizes`\n", "\n", - " cluster = LocalCluster(n_workers=1, threads_per_worker=1, memory_limit=max_arg)\n", - " client = Client(cluster)\n", + "This function calculates the size of the data arrays for a list of given file paths. It can accommodate both sparse and dense formats, adjusting the computation method accordingly.\n", "\n", - " # get the current memory usage\n", - " initial_mem = memory_usage(-1, interval=0.001)[0]\n", + "---\n", "\n", - " mem_usages = memory_usage(\n", - " (\n", - " concat_on_disk,\n", - " (),\n", - " {\n", - " \"in_files\": filepaths,\n", - " \"out_file\": writepth,\n", - " \"axis\": axis,\n", - " \"index_unique\": \"-\",\n", - " },\n", - " ),\n", - " include_children=True,\n", - " interval=0.001,\n", - " )\n", - " max_mem = max(mem_usages)\n", - " mem_increment = max_mem - initial_mem\n", - " \n", - " client.close()\n", - " cluster.close()\n", - " return mem_increment, max_mem, mem_usages, initial_mem\n", - "\n" + "### `get_mem_usage`\n", + "\n", + "The function `get_mem_usage` evaluates the memory usage when performing on-disk concatenation using the `concat_on_disk` method. Depending on whether the dataset is sparse or dense, it either initiates a Dask cluster to handle the data or directly concatenates it. It returns the memory increment, the maximum memory used, the memory usage over time, and the initial memory.\n", + "\n", + "---\n", + "\n", + "### `dataset_max_mem`\n", + "\n", + "The `dataset_max_mem` function profiles and prints the maximum memory usage when concatenating datasets of different types (sparse or dense) and along different axes. For each dataset and axis combination, it determines the files to concatenate, calculates their sizes, and then measures the memory usage during the concatenation process. The results are stored in a dictionary that maps the dataset type and axis to the corresponding memory usage metrics.\n" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "id": "0cf0be3a", "metadata": {}, "outputs": [], "source": [ + "def get_arr_sizes(filepaths, is_sparse):\n", + " def get_arr_size(g):\n", + " if is_sparse:\n", + " size = (\n", + " g.store.getsize(\"X/data\")\n", + " + g.store.getsize(\"X/indices\")\n", + " + g.store.getsize(\"X/indptr\")\n", + " )\n", + " else:\n", + " size = g.store.getsize(\"X\")\n", + " return size\n", + "\n", + " return [get_arr_size(zarr.open_group(filepath)) for filepath in filepaths]\n", "\n", "\n", - "def get_arr_sizes(array_type, filepaths):\n", - " res = []\n", - " for f in filepaths:\n", - " store = zarr.open_group(f).store\n", - " additional_size = 0\n", - " if array_type == 'sparse':\n", - " additional_size = store.getsize('X/data')+store.getsize('X/indices')+store.getsize('X/indptr')\n", - " res.append(store.getsize('X')+additional_size)\n", - " return res\n", + "def get_mem_usage(filepaths, writepth, axis, max_arg, is_sparse):\n", + " concat_kwargs = {\n", + " \"in_files\": filepaths,\n", + " \"out_file\": writepth,\n", + " \"axis\": axis,\n", + " }\n", + "\n", + " if not is_sparse:\n", + " cluster = LocalCluster(n_workers=1, threads_per_worker=1, memory_limit=max_arg)\n", + " client = Client(cluster)\n", + " else:\n", + " concat_kwargs[\"max_loaded_elems\"] = max_arg\n", "\n", - "def get_sparse_mem_usage(filepaths, writepth, axis, max_arg):\n", " # get the current memory usage\n", " initial_mem = memory_usage(-1, interval=0.001)[0]\n", "\n", @@ -408,34 +527,23 @@ " (\n", " concat_on_disk,\n", " (),\n", - " {\n", - " \"in_files\": filepaths,\n", - " \"out_file\": writepth,\n", - " \"axis\": axis,\n", - " \"max_loaded_elems\": max_arg,\n", - " },\n", + " concat_kwargs,\n", " ),\n", " include_children=True,\n", " interval=0.001,\n", " )\n", " max_mem = max(mem_usages)\n", " mem_increment = max_mem - initial_mem\n", - " \n", + "\n", + " if not is_sparse:\n", + " client.close()\n", + " cluster.close()\n", " return mem_increment, max_mem, mem_usages, initial_mem\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "3e0cbd2f", - "metadata": {}, - "outputs": [], - "source": [ + "\n", "\n", "def dataset_max_mem(max_arg, datasets, array_type):\n", " results = {}\n", - "\n", + " is_sparse = array_type == \"sparse\"\n", " for filepaths,axis in [(datasets[array_type,axis],axis) for axis in [0,1]]:\n", " writepth = OUTDIR / f\"{array_type}_{axis}.zarr\"\n", " if writepth.exists():\n", @@ -444,16 +552,16 @@ " # print the files we are concatenating\n", " print(\"Dataset:\", array_type, axis)\n", " print(f\"Concatenating {len(filepaths)} files with sizes:\")\n", - " sizes = get_arr_sizes(array_type, filepaths)\n", + " sizes = get_arr_sizes(filepaths, is_sparse)\n", " print([str(s//(2**20))+'MiB' for s in sizes])\n", " print(f\"Total size: {sum(sizes)//(2**20)}MiB\")\n", " \n", - " mem_usage_func = get_sparse_mem_usage if array_type == 'sparse' else get_dense_mem_usage\n", + "\n", "\n", " # force garbage collection\n", " gc.collect()\n", " # perform profiling\n", - " mem_increment, max_mem, mem_usages, initial_mem = mem_usage_func(filepaths, writepth, axis, max_arg)\n", + " mem_increment, max_mem, mem_usages, initial_mem = get_mem_usage(filepaths, writepth, axis, max_arg, is_sparse)\n", " # force garbage collection again\n", " gc.collect()\n", "\n", @@ -464,11 +572,136 @@ " return results\n" ] }, + { + "cell_type": "markdown", + "id": "e73c95fd", + "metadata": {}, + "source": [ + "## Results of concatenation without reindexing\n", + "\n", + "In this section, we evaluate the memory performance of the `concat_on_disk` function when concatenating datasets **without** the need for reindexing. The printed reports provide details about the individual file sizes, the total dataset size, and the maximum memory increment during the concatenation.\n", + "\n", + "\n", + "### Sparse Datasets\n", + "\n", + "For sparse datasets:\n", + "\n", + "- We can observe that the function has been called multiple times with different memory constraints (`max_arg` values), and each time the datasets were concatenated successfully.\n", + "- It's crucial to note that even when the combined size of the files exceeds the allocated memory, the concatenation still proceeds efficiently. This behavior highlights the primary advantage of the `concat_on_disk` function: it performs the concatenation **on disk**, ensuring that memory consumption remains low, even for large datasets.\n", + " \n", + "However, it's also worth noting that if one has sufficient memory to fit the files, performing the concatenation in memory would be faster.\n", + "\n", + "### Dense Datasets\n", + "\n", + "The results for dense datasets follow a similar pattern:\n", + "\n", + "- The datasets are concatenated successfully under memory constraints.\n", + "- The total size of the dataset is much larger than the memory increment, reinforcing the efficiency of on-disk concatenation.\n" + ] + }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "ad448529", "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset: sparse 0\n", + "Concatenating 6 files with sizes:\n", + "['109MiB', '101MiB', '78MiB', '108MiB', '78MiB', '78MiB']\n", + "Total size: 554MiB\n", + "Concatenation finished\n", + "Max memory increase: 160 MiB\n", + "--------------------------------------------------\n", + "Dataset: sparse 1\n", + "Concatenating 6 files with sizes:\n", + "['78MiB', '78MiB', '78MiB', '97MiB', '97MiB', '104MiB']\n", + "Total size: 534MiB\n", + "Concatenation finished\n", + "Max memory increase: 159 MiB\n", + "--------------------------------------------------\n" + ] + }, + { + "data": { + "text/plain": [ + "{('sparse', 0): {'max_mem': 354.98046875, 'increment': 160.40625},\n", + " ('sparse', 1): {'max_mem': 370.18359375, 'increment': 159.203125}}" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset_max_mem(max_arg=1_000_000_000, datasets=datasets_aligned, array_type='sparse')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "f3b74ee3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset: dense 0\n", + "Concatenating 6 files with sizes:\n", + "['891MiB', '668MiB', '835MiB', '668MiB', '822MiB', '668MiB']\n", + "Total size: 4556MiB\n", + "Concatenation finished\n", + "Max memory increase: 861 MiB\n", + "--------------------------------------------------\n", + "Dataset: dense 1\n", + "Concatenating 6 files with sizes:\n", + "['910MiB', '668MiB', '843MiB', '668MiB', '668MiB', '923MiB']\n", + "Total size: 4684MiB\n", + "Concatenation finished\n", + "Max memory increase: 1064 MiB\n", + "--------------------------------------------------\n" + ] + }, + { + "data": { + "text/plain": [ + "{('dense', 0): {'max_mem': 1084.64453125, 'increment': 861.359375},\n", + " ('dense', 1): {'max_mem': 1295.5859375, 'increment': 1064.3671875}}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset_max_mem(max_arg=\"1000MiB\", datasets=datasets_aligned, array_type='dense')" + ] + }, + { + "cell_type": "markdown", + "id": "7a0bbd89", + "metadata": {}, + "source": [ + "## Results of concatenation with reindexing\n", + "\n", + "This section presents the results of the `concat_on_disk` function when concatenating datasets that **require** reindexing.\n", + "\n", + "The observations and interpretations for this section are similar to the ones mentioned for the \"without reindexing\" section. The primary difference is the datasets used for the concatenation. Once again, the on-disk concatenation allows for efficient memory usage, even when the datasets need reindexing.\n", + "\n", + "One can also see the effect of the memory contrain on the measurements." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "781b2ce9", + "metadata": {}, "outputs": [ { "name": "stdout", @@ -476,40 +709,40 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['104MiB', '97MiB', '101MiB', '78MiB', '97MiB', '78MiB', '78MiB', '108MiB', '109MiB']\n", + "['97MiB', '104MiB', '109MiB', '101MiB', '78MiB', '108MiB', '78MiB', '97MiB', '78MiB']\n", "Total size: 853MiB\n", "Concatenation finished\n", - "Max memory increase: 426 MiB\n", + "Max memory increase: 467 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['78MiB', '108MiB', '104MiB', '101MiB', '78MiB', '97MiB', '78MiB', '97MiB', '109MiB']\n", + "['109MiB', '101MiB', '78MiB', '78MiB', '78MiB', '97MiB', '97MiB', '108MiB', '104MiB']\n", "Total size: 853MiB\n", "Concatenation finished\n", - "Max memory increase: 590 MiB\n", + "Max memory increase: 631 MiB\n", "--------------------------------------------------\n" ] }, { "data": { "text/plain": [ - "{('sparse', 0): {'max_mem': 577.796875, 'increment': 426.50390625},\n", - " ('sparse', 1): {'max_mem': 756.609375, 'increment': 590.16015625}}" + "{('sparse', 0): {'max_mem': 705.9765625, 'increment': 467.0078125},\n", + " ('sparse', 1): {'max_mem': 879.07421875, 'increment': 631.796875}}" ] }, - "execution_count": 11, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dataset_max_mem(max_arg=1_000_000_000, datasets=datasets, array_type='sparse')" + "dataset_max_mem(max_arg=1_000_000_000, datasets=datasets_unaligned, array_type='sparse')" ] }, { "cell_type": "code", - "execution_count": 12, - "id": "5aa2c05f", + "execution_count": 15, + "id": "28e7d61f", "metadata": {}, "outputs": [ { @@ -518,40 +751,40 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['104MiB', '97MiB', '101MiB', '78MiB', '97MiB', '78MiB', '78MiB', '108MiB', '109MiB']\n", + "['97MiB', '104MiB', '109MiB', '101MiB', '78MiB', '108MiB', '78MiB', '97MiB', '78MiB']\n", "Total size: 853MiB\n", "Concatenation finished\n", - "Max memory increase: 427 MiB\n", + "Max memory increase: 204 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['78MiB', '108MiB', '104MiB', '101MiB', '78MiB', '97MiB', '78MiB', '97MiB', '109MiB']\n", + "['109MiB', '101MiB', '78MiB', '78MiB', '78MiB', '97MiB', '97MiB', '108MiB', '104MiB']\n", "Total size: 853MiB\n", "Concatenation finished\n", - "Max memory increase: 589 MiB\n", + "Max memory increase: 205 MiB\n", "--------------------------------------------------\n" ] }, { "data": { "text/plain": [ - "{('sparse', 0): {'max_mem': 596.15625, 'increment': 427.5},\n", - " ('sparse', 1): {'max_mem': 759.921875, 'increment': 589.625}}" + "{('sparse', 0): {'max_mem': 455.08984375, 'increment': 204.109375},\n", + " ('sparse', 1): {'max_mem': 458.26953125, 'increment': 205.38671875}}" ] }, - "execution_count": 12, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dataset_max_mem(max_arg=100_000_000, datasets=datasets, array_type='sparse')" + "dataset_max_mem(max_arg=1_000_000, datasets=datasets_unaligned, array_type='sparse')" ] }, { "cell_type": "code", - "execution_count": 13, - "id": "f3b74ee3", + "execution_count": 16, + "id": "28426915", "metadata": {}, "outputs": [ { @@ -560,34 +793,34 @@ "text": [ "Dataset: dense 0\n", "Concatenating 9 files with sizes:\n", - "['910MiB', '668MiB', '923MiB', '891MiB', '668MiB', '822MiB', '835MiB', '843MiB', '668MiB']\n", + "['891MiB', '910MiB', '668MiB', '923MiB', '835MiB', '668MiB', '843MiB', '822MiB', '668MiB']\n", "Total size: 7233MiB\n", "Concatenation finished\n", - "Max memory increase: 1023 MiB\n", + "Max memory increase: 1056 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 9 files with sizes:\n", - "['910MiB', '668MiB', '923MiB', '891MiB', '668MiB', '822MiB', '835MiB', '843MiB', '668MiB']\n", + "['891MiB', '910MiB', '668MiB', '923MiB', '835MiB', '668MiB', '843MiB', '822MiB', '668MiB']\n", "Total size: 7233MiB\n", "Concatenation finished\n", - "Max memory increase: 967 MiB\n", + "Max memory increase: 969 MiB\n", "--------------------------------------------------\n" ] }, { "data": { "text/plain": [ - "{('dense', 0): {'max_mem': 1210.96875, 'increment': 1023.703125},\n", - " ('dense', 1): {'max_mem': 1163.109375, 'increment': 967.73046875}}" + "{('dense', 0): {'max_mem': 1308.2265625, 'increment': 1056.375},\n", + " ('dense', 1): {'max_mem': 1226.05078125, 'increment': 969.38671875}}" ] }, - "execution_count": 13, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dataset_max_mem(max_arg=\"1000MiB\", datasets=datasets, array_type='dense')" + "dataset_max_mem(max_arg=\"1000MiB\", datasets=datasets_unaligned, array_type='dense')" ] } ], From 40466e4913d4a3dfcef91e8b0bd413fa7d56c5d9 Mon Sep 17 00:00:00 2001 From: Philipp A Date: Thu, 7 Sep 2023 17:16:35 +0200 Subject: [PATCH 04/15] Discard changes to anndata_dask_array.ipynb --- anndata_dask_array.ipynb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/anndata_dask_array.ipynb b/anndata_dask_array.ipynb index f19405c..7a7c352 100644 --- a/anndata_dask_array.ipynb +++ b/anndata_dask_array.ipynb @@ -294,7 +294,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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\n", "text/plain": [ "" ] @@ -413,7 +413,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA24AAANYCAYAAAC8cr7XAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzde1zP9///8XvnlITK+VByTplQUYlGauQQasyZsDnN2Jh9N5vZh9nHabY5ZJNTKOdDZSGnig50ICIVsRxKpVI6vX5/7KfPp4/Diur57vW+Xy+XLpd596r3rUnPHq/366AiSZIEIiIiIiIiUlRFqqILiIiIiIiI6M04uBERERERESk4Dm5EREREREQKTl10AFFlhIaG4t69e6IzFFqrVq1gY2MjOoOIiGohSZLg5+cnOkPh2draonnz5qIzSMmo8OIkVJuMGDECBw4cEJ2h0Nzd3bF3717RGUREVAuVlJRAXZ379f/Jvn37MGLECNEZpFx4cRKqfdzd3SFJEt9e8ebm5ib6r4eIiGRg3759wtc0RXwrLi4W/VdDSoyDGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4Eb0jkpLS0UnEBEREZHMcXAjegs3b97E3LlzYWxsDAMDAwwePBinTp0SnUVERCQ77dq1g6enp+gMIuE4uBFVUn5+PoYMGYI//vgDAwcOxMcff4xbt27B1dUV586dE51HREQkG97e3khMTBSdQaQQ1EUHENU2X331FRISEuDv7w8XFxcAwNy5c9G1a1dMnDgRSUlJgguJiIhqr3v37uG7775DREQEYmJiROcQKQy+4kZUSd7e3rCwsCgb2gCgcePGGDhwIJKTk3Hp0iWBdURERLVbTk4Obt68CX19ffTs2VN0DpHC4OBGVAnp6enIzMxE//79X3pf+/btAQCRkZE1nUVERCQbnTp1wtmzZ3H27Fn4+PiIziFSGBzciCohISEBANC0adOX3tehQwcAwKNHj2q0iYiIiIjkj4MbUSW8OEG6YcOGL72vdevWAICsrKwabSIiIiIi+ePgRlQJWlpaAIAnT5689L68vDwAQIMGDWq0iYiIiIjkj4MbUSU0adIEAF555cgXw5yRkVGNNhERERGR/HFwI6qE9u3bQ0VF5ZWD24tLFltbW9d0FhER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wL1799C8eXPZUZ7Rpk0bTJgwQXYMS6Jl4WYmdDod1Go1WrRogSpVqsiOY5b27duHLVu2YNCgQbKjlKkNGzbg7bffRs+ePWVHMUsJCQmIiIiAXq+XHYXI5vF89WI8X9muQYMG4dSpU2ZZMJmD8PBwdOzYERs3bpQdxZJouTiJmfn888+tvjApjYLC1lYoFArs3btXdgyztGHDBgwfPlx2DCL6fzxfPR/PV7atffv2LEyeg2Pd0uE9bkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhZuV+uabb3Dy5MlCv6bX6426r8K2d+XKFXz66adG3xeVnCmPhcLwWCCi4nrR+crY2HeRJTFl2ygM24Z5YOFmhfbt24cff/wRvr6+htcuX76MyZMno1atWnB3d0fv3r1x8ODBUu+jqO3Vrl0bgYGBWL58+Uv9LPRyTHEsPKlevXoYN27cU6/xWCCi4ijsfPWkws4vJcW+iyyRKdpGUdtj2zAPLNysTF5eHiZOnIjJkyfDxcUFAJCdnY2+ffti1apV6NGjByZMmIC4uDj06dMHx44dK/E+irM9hUKBv//97/j8889x//59o/6MVDymOBae9OuvvyI+Pv6Z13ksEFFRCjtfPel555eSYN9FlsgUbaM422PbMBOCzEJ+fr4AILZs2fJS2/npp5+ERqMR9+7dM7w2depUAUDs3bvX8FpiYqKoUqWK8Pb2LvE+iru9/Px8UaNGDTFx4sRS/jR/MtbvxxKsX79eKBSKl96OKY6FW7duiXfffVc0a9ZMABAAxLvvvvvM+4x5LBjr90NEL68sz1fFPb8Ul4y+i+cr2zVw4EAxZMiQl96OKdqGjL7cWL8fG5PHK25WZs6cOQgICEDlypUNr/36669o2rQpevbsaXitSpUq6NGjB65du4YzZ86UaB/F3Z5KpcLgwYOxatUqpKenv+RPRiVlimMhPT0dly9fRvny5fHaa6899308FojoRQo7XxX3/FJc7LvIEpmibbAvtxws3KzIhQsXcO3aNTRp0sTw2sOHD5GSkoI33njjmffXr18fABAWFlbsfZR0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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA24AAANYCAYAAAC8cr7XAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzde1zP9///8XvnlITK+VByTplQUYlGauQQasyZsDnN2Jh9N5vZh9nHabY5ZJNTKOdDZSGnig50ICIVsRxKpVI6vX5/7KfPp4/Diur57vW+Xy+XLpd596r3rUnPHq/366AiSZIEIiIiIiIiUlRFqqILiIiIiIiI6M04uBERERERESk4Dm5EREREREQKTl10AFFlhIaG4t69e6IzFFqrVq1gY2MjOoOIiGohSZLg5+cnOkPh2draonnz5qIzSMmo8OIkVJuMGDECBw4cEJ2h0Nzd3bF3717RGUREVAuVlJRAXZ379f/Jvn37MGLECNEZpFx4cRKqfdzd3SFJEt9e8ebm5ib6r4eIiGRg3759wtc0RXwrLi4W/VdDSoyDGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4EZERERERKTgOLgREREREREpOA5uRERERERECo6DGxERERERkYLj4Eb0jkpLS0UnEBEREZHMcXAjegs3b97E3LlzYWxsDAMDAwwePBinTp0SnUVERCQ77dq1g6enp+gMIuE4uBFVUn5+PoYMGYI//vgDAwcOxMcff4xbt27B1dUV586dE51HREQkG97e3khMTBSdQaQQ1EUHENU2X331FRISEuDv7w8XFxcAwNy5c9G1a1dMnDgRSUlJgguJiIhqr3v37uG7775DREQEYmJiROcQKQy+4kZUSd7e3rCwsCgb2gCgcePGGDhwIJKTk3Hp0iWBdURERLVbTk4Obt68CX19ffTs2VN0DpHC4OBGVAnp6enIzMxE//79X3pf+/btAQCRkZE1nUVERCQbnTp1wtmzZ3H27Fn4+PiIziFSGBzciCohISEBANC0adOX3tehQwcAwKNHj2q0iYiIiIjkj4MbUSW8OEG6YcOGL72vdevWAICsrKwabSIiIiIi+ePgRlQJWlpaAIAnT5689L68vDwAQIMGDWq0iYiIiIjkj4MbUSU0adIEAF555cgXw5yRkVGNNhERERGR/HFwI6qE9u3bQ0VF5ZWD24tLFltbW9d0FhER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wL1799C8eXPZUZ7Rpk0bTJgwQXYMS6Jl4WYmdDod1Go1WrRogSpVqsiOY5b27duHLVu2YNCgQbKjlKkNGzbg7bffRs+ePWVHMUsJCQmIiIiAXq+XHYXI5vF89WI8X9muQYMG4dSpU2ZZMJmD8PBwdOzYERs3bpQdxZJouTiJmfn888+tvjApjYLC1lYoFArs3btXdgyztGHDBgwfPlx2DCL6fzxfPR/PV7atffv2LEyeg2Pd0uE9bkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhRsREREREZGZY+FGRERERERk5li4ERERERERmTkWbkRERERERGaOhZuV+uabb3Dy5MlCv6bX6426r8K2d+XKFXz66adG3xeVnCmPhcLwWCCi4nrR+crY2HeRJTFl2ygM24Z5YOFmhfbt24cff/wRvr6+htcuX76MyZMno1atWnB3d0fv3r1x8ODBUu+jqO3Vrl0bgYGBWL58+Uv9LPRyTHEsPKlevXoYN27cU6/xWCCi4ijsfPWkws4vJcW+iyyRKdpGUdtj2zAPLNysTF5eHiZOnIjJkyfDxcUFAJCdnY2+ffti1apV6NGjByZMmIC4uDj06dMHx44dK/E+irM9hUKBv//97/j8889x//59o/6MVDymOBae9OuvvyI+Pv6Z13ksEFFRCjtfPel555eSYN9FlsgUbaM422PbMBOCzEJ+fr4AILZs2fJS2/npp5+ERqMR9+7dM7w2depUAUDs3bvX8FpiYqKoUqWK8Pb2LvE+iru9/Px8UaNGDTFx4sRS/jR/MtbvxxKsX79eKBSKl96OKY6FW7duiXfffVc0a9ZMABAAxLvvvvvM+4x5LBjr90NEL68sz1fFPb8Ul4y+i+cr2zVw4EAxZMiQl96OKdqGjL7cWL8fG5PHK25WZs6cOQgICEDlypUNr/36669o2rQpevbsaXitSpUq6NGjB65du4YzZ86UaB/F3Z5KpcLgwYOxatUqpKenv+RPRiVlimMhPT0dly9fRvny5fHaa6899308FojoRQo7XxX3/FJc7LvIEpmibbAvtxws3KzIhQsXcO3aNTRp0sTw2sOHD5GSkoI33njjmffXr18fABAWFlbsfZR0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\n", "text/plain": [ "" ] @@ -443,7 +443,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA24AAAEyCAYAAACCgoPCAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdeVhUdfs/8PewKqiogIorLigiqLkrbrjvT+6pmZWomUt79tS3LLPNzFx6bLHcc0tc0lTCfUPNFVxREXcwQEUQWYb794c/JglUlpn5nJl5v67L66ph+Jw3I7fnvs+ZOUcnIgIiIiIiIiLSqgw71QmIiIiIiIjoyTi4ERERERERaRwHNyIiIiIiIo1zUB1Aa/bv349r166pjqFpVatWRYsWLVTHICsiIvjtt99Ux9C8wMBAVKpUSXUMsiJXr15FeHi46hiaptPpMHDgQNUxyMqw33w69pu56Xhxkpz69++PNWvWqI6haYMGDcLKlStVxyArotfr4eDA40hPs3r1avTv3191DLIiK1aswJAhQ1TH0DSdToesrCzVMcjKsN98OvabufDiJHkZNGgQRIR/8vjTr18/1X89ZMVWr16t/Hdci38yMzNV/9WQFdPpdMp/x7X6Z/ny5ar/esiKsd98/B/2m3nj4EZERERERKRxHNyIiIiIiIg0joMbERERERGRxnFwIyIiIiIi0jgObkRERERERBrHwY2IiIiIiEjjOLgRERERERFpHAc3IiIiIiIijePgRkREREREpHEc3IiIiIiIiDSOgxsREREREZHGcXAjIiIiIiLSOA5uREREREREGsfBzcSmTp2K/fv35/m1rKwso24rr/UuXryId955x+jbItIyc9ZdXlh3ZKueVHvGxn0e0T/MWXt5Ye2ZBwc3E9q8eTO+/fZbBAQEGB6LiorCa6+9Bm9vb7i7u6NXr17Ytm1bobfxtPVq1KiB0NBQ/Pjjj0X6WYgshTnq7lE+Pj4YNWpUjsdYd2SL8qq9R+VVKwXFfR5Rbuaovaetx9ozDw5uJpKeno4JEybgtddeQ8mSJQEAqamp6NOnD+bPn4+uXbti7NixOH/+PHr37o3du3cXeBv5WU+n0+HDDz/E+++/j1u3bhn1ZyTSGnPU3aMWLlyICxcu5HqcdUe2Jq/ae9TjaqUguM8jys0ctZef9Vh7ZiKUQ79+/WTQoEFFXmfu3Lni5OQkcXFxhsfeeOMNASCbNm0yPBYbGyvly5eX6tWrF3gb+V0vMzNTKleuLBMmTCjkT/MPY70+RI/KzMwUALJ69eoirWOOurt69aoEBwdLgwYNBIAAkODg4FzPM2bdGev1Ifq35cuXi06nK/I6edVefmslv1Ts84z1+hD9myn7TWPXnor9HvvNPKXzjJuJfP311+jWrRvKlStneGzhwoWoX78+unfvbnisfPny6Nq1Ky5duoSDBw8WaBv5Xc/e3h4DBgzA/Pnzce/evSL+ZETaZY66u3fvHqKiouDm5oamTZs+9nmsO7IledVefmslv7jPI8rNHLXH/Z52cHAzgVOnTuHSpUvw9/c3PBYfH4/bt2+jU6dOuZ5fu3ZtAMDhw4fzvY2Crufn54eUlBSjfa6HSGvMUXcAULduXezatQu7du3CsmXLnvhc1h3ZgrxqDyhYrTwN93lEuZmj9gq6HmvPtDi4mUBYWBgAoFatWobHzp07BwDw8vLK9fw6deoAQIHeE1zQ9bIf+/PPP/O9DSJLYo66KyjWHdmCvGrP2LjPI8rNHLVXUKw90+LgZgIxMTEAchZS9gc5y5Ytm+v51apVAwDcuXMn39so6HrZhXT27Nl8b4PIkpij7gqKdUe2IK/aMzbu84hyM0ftFRRrz7Q4uJnA33//DSBnITk7OwMAEhMTcz0/JSUFAFCmTJl8b6Og65UvXx6lS5dGXFxcvrdBZEnMUXcFxbojW5BX7Rkb93lEuZmj9gqKtWdaHNxMIDU1FQDg6OhoeKxChQoAgOjo6FzPz94ReXp65nsbhVmvWLFi+V6fyNKYo+4Kg3VH1i6v2jM27vOIcjNH7RUGa890OLiZQPZbObLfkw88/PC0TqfLc6dz4sQJAEDz5s3zvY2CrpeSkoLY2FiTN6lEqpij7gqKdUe2IK/aMzbu84hyM0ftFRRrz7Q4uJlA48aNAeQspIoVK6Jt27bYvXs3Ll68aHg8IyMDy5YtQ6VKlQzflx8FXS/7OZUqVSr0z0WkZeaou4Ji3ZEtyKv2jI37PKLczFF7BcXaMy0ObibQrl07ALkL6f3330dGRgYGDRqENWvWYMeOHejduzeio6Mxb9486HQ6AMC3334LBwcHTJky5Ynbye96wD+FFBQUZMwflUgzzFV3BcG6I1vwuNrLL+7ziArHXLVXEKw903JQHcAa+fn5wcvLK1chdenSBUuWLEFwcDD69+8PAChdujRmzJiR44aiWVlZ0Ov1EJEnbie/6wEPi1qn0+V6nMhamKvuCoJ1R7bgcbWXX9znERWOuWqvIFh7psXBzUReeeUVfPPNN0hOTkaJEiUMjz/33HMYMGAADh8+jKysLDRv3hz29vY5vvett97CgwcPUKNGjaduJz/rAcDKlSvRt29fnromq2auustWq1atJ+7wWHdkKx5Xe9meVCvc5xEVnrlqLz/rAaw9U+NbJU1k/PjxcHR0xJIlS3J9zcHBAS1atECrVq3y3OFcuHAB8+fPR+vWrfO1raett2/fPkRERGDy5MkF/0GILIg56+5pWHdkS55Ue0/DfR5R4Zmz9p6GtWd6HNxMpGzZsvj6668xbdo0ZGRkFOh7L168iA0bNqBKlSpGyfLZZ59h7NixqF+/vlHWI9Iq1h2RGqw9IjVYe7aFg5sJvfTSS2jZsiW2bdtWoO/r2rUr/Pz8jJIhJiYGd+/exdSpU42yHpHWse6I1GDtEanB2rMd/IybiS1btkzp9r29vbFv3z6lGYjMjXVHpAZrj0gN1p5t4Bk3IiIiIiIijePgRkREREREpHEc3IiIiIiIiDSOgxsREREREZHGcXAjIiIiIiLSOA5uREREREREGsfBjYiIiIiISOM4uBEREREREWkcBzciIiIiIiKN4+BGRERERESkcRzciIiIiIiINI6DGxERERERkcZxcNO4zMxM6PV61TGIbE56errqCEQ2ibVHZH7sNy2Dg+oAWnT16lWsWrVKdQwAwPHjx+Hg4AB/f3/VUQAA169fR7Vq1VTHICu1f/9+zew4li1bhsGDB8Pe3l51FIiI6ghk5bSyz9Pr9Vi9ejUGDx6sOgoA4MCBA6ojkBVjv/l47DfzxsEtD+Hh4QgPD1cdQ7NYSGQqM2bMUB0hh/Xr16uOQGRyIqKZQSnbmjVrVEcw0Ol0qiOQlWK/+WTsN3PTCQ/lataDBw/g4eEBnU6H+Ph4ODs7q45EZBPWrl2Lfv364YUXXsCiRYtUxyGyGUOGDMGKFSuwceNG9OzZU3UcIpvAftNiZPAzbhq2ceNG3L9/HykpKdiyZYvqOEQ2Y9myZQCA1atX48GDB4rTENmGlJQUrFu3DgDw66+/Kk5DZDvYb1oODm4atmTJEtjb28Pe3p47MSIzuXfvHjZs2AAASE1NxR9//KE4EZFt+P3335GWlgbg4VnvlJQUxYmIbAP7TcvBwU2jkpKSsGXLFmRmZiIzMxPr169HUlKS6lhEVm/dunXIyMgAANjb22Pp0qWKExHZhqVLl8LO7mFbkp6ebjiAQkSmw37TsnBw06iQkBBkZmYa/j8zMxO///67wkREtmHp0qWGixFkZmbijz/+wN27dxWnIrJut2/fxp9//mm4qqxOp+NBEyIzYL9pWTi4adSSJUtyXMmKOzEi04uPj8e2bdty3JIgKysLa9euVZiKyPr99ttvyMrKMvy/Xq9HaGgoEhISFKYisn7sNy0LBzcNunXrFnbt2pWjedTr9di6dStu3bqlMBmRdXvc/XSWLFli5iREtiWvGhMRTd0WgMjasN+0PBzcNGjFihWG9/k/SqfTISQkREEiItuwePHiXDe71uv12LlzJ+Li4hSlIrJuN27cwP79+3OccQMeDm6LFy9WlIrI+rHftDwc3DRo8eLFOY5+ZMvKyuJOjMhErl69ikOHDuVqHgHAzs7usWfjiKholi9fnmfzmJWVhX379uH69esKUhFZP/abloeDm8ZER0fj6NGjuY76Aw8L6eDBg4iJiTF/MCIrt2zZMtjb2+f5Nb1ez50YkYk8rnkEAAcHBx40ITIB9puWiYObxixfvhwODg6P/bqDgwN+++03MyYisg1Pah5FBEeOHMGlS5fMnIrIul24cAERERF5No/AwyvcLVq0yMypiKwf+03LxMFNY5YsWWK4h1ReMjIyuBMjMrKzZ8/i9OnTj20egYc7seXLl5sxFZH1W7p0KRwdHR/7dRHBiRMnEBUVZcZURNaP/aZl4uCmIZGRkTh37txTn3fq1CmcPXvWDImIbMOyZcue+pyMjAy+XZLIyJYuXfrE5jHbihUrzJCGyDaw37Rcjz9HSmYXGRmJoKCgHBdHOH/+PHQ6HWrVqmV4zM7ODhEREfD19VURk8jq3Lp1C+3atcvx2KFDh+Dj44MyZcoYHnNwcEBsbCwqVKhg7ohEVufatWuoVq0aKleubHgsMTERFy5cQLNmzXI8l1d1JTIe9puWSydPem8QKTdgwAA4ODjwaCORGen1ejg4OGD16tXo37+/6jhENmPFihUYNmzYYz9vSkSmwX7TImTwrZJEREREREQax8GNiIiIiIhI4zi4ERERERERaRwHNyIiIiIiIo3j4EZERERERKRxHNyIiIiIiIg0joMbERERERGRxnFwIyIiIiIi0jgObkRERERERBrHwY2IiIiIiEjjOLgRERERERFpHAc3IiIiIiIijePgRkREREREpHEc3IiIiIiIiDSOgxsREREREZHGcXAjIiIiIiLSOA5uREREREREGsfBjYiIiIiISOM4uBEREREREWkcBzciIiIiIiKN4+BGRERERESkcRzciIiIiIiINI6DGxERERERkcZxcCMiIiIiItI4Dm5EREREREQax8GNiIiIiIhI4zi4ERERERERaRwHNyIiIiIiIo3j4EZERERERKRxHNyIiIiIiIg0joMbERERERGRxulERFSHsDV6vR43b97EzZs3kZCQkONPWloa7t27h8zMTIgItm/fDp1Oh6CgIOh0Ojg4OKBkyZJwdnaGu7t7jj9eXl7w8vKCvb296h+RSJNSU1Nx+fLlXHWXkJAAvV6Pu3fvAgAePHiAkJAQNGvWDD4+PgAAFxcXODs7o2TJknB3d4enp6eh9ipWrAh3d3eVPxqRpsXHx+PmzZuIj49HQkIC/v77byQkJCA5ORlpaWm4f/8+AODs2bM4evQo+vfvD2dnZwBA6dKlYWdnBw8Pj1z7vWrVqqFYsWIqfzQizWK/aXUyOLiZ0OXLlxEZGYnIyEhcvHgRMTExuHTpEq5evYqMjAzD85ycnAzF4OzsjFKlSsHe3h46nQ6lS5cGANy+fRvAwyJMSkpCWloaEhISEB8fn2utKlWqoHr16vD29kbNmjVRv359BAQEoEqVKuZ9AYgUyMjIwJkzZxAZGYlTp07h0qVLiImJQUxMDGJjY3M819XV1dAMOjg4oFSpUgAe1pGrqyvS09ORkpIC4OHQ9+DBA9y7dw/x8fFITEzMsVapUqXg7e0Nb29vVK9eHb6+vggICEBAQIBhXSJrdvfuXURERCAyMhLnzp3LUXv37t3L8Vx3d3d4eHigRIkSKF68uGH4KlGiBBwdHZGSkoL09HQAQFJSEjIyMgwNZ3ZNZvPy8jLUnbe3N/z9/REQEIA6derA0dHRPD88kULsN20GBzdjuXbtGvbt24f9+/fj2LFjiIyMxJ07dwAA1apVg4+PT46mrlq1avDy8oKnpydKlixZpG0nJSUZjmZmF2v2zvL8+fO4cuUKAKBMmTKoX78+GjZsiMDAQAQGBqJixYpF/tmJVNHr9Th58iT27t2LAwcOICIiAmfOnEFGRgYcHR1Rp04d1KhRA9WrVzfsXKpVq2Y4W1aUI/V6vd7QSF67ds1Qd5cuXcKlS5dw9uxZwxm86tWrIyAgAE2aNEHr1q3RrFkzuLq6GutlIDK75ORkHDx4EPv27cNff/2FyMhIXL58GcDDM2S+vr6oUaNGjv1epUqVDAdK7OwK/0mNBw8eICEhAbdu3cLly5dz1F10dDSioqKQkZEBJycn+Pn5oX79+mjRogVat26NevXqFWnbRKqx37RpHNwK68qVK9iyZQt27dqFvXv34sqVK3BwcEDDhg3RuHFjNGjQwHC03c3NTWnWO3fuICIiAidPnkRERAQOHz6MEydOIDMzE97e3ggMDET79u3RrVs3VK5cWWlWoifJysrC4cOHERoair179yI8PBz37t2Dm5sbWrRogYYNGxqO+Pn6+io/2h4TE2M4ChoREYEDBw7g8uXLhn8rAgMD0alTJwQFBXGQI01LTk7Gtm3bsG3bNuzbtw8RERHIzMxE9erV0bx5c8M+z9/fH9WqVVOaNT093XDWPTIyEseOHcPBgweRlJQENzc3tGzZEq1bt0bXrl3RqFEjDnKkaew36REc3PIrPT0du3fvxpYtW7B582acPn0arq6uaNu2LVq1aoXAwECLOoqenJyMQ4cOYe/evdi/fz/27NmD+/fvIyAgAN26dUO3bt3Qpk0b5Y0vUXx8vKHu/vzzT8THx6NKlSpo3769ofYs6Sj69evXc9Td8ePH4eTkhLZt26Jbt27o0aMHfH19VcckwqlTp7Bp0yZs2bIFe/fuRWZmJp555hm0adMGgYGBaNWqlcUcRdfr9Th16hT27NmD8PBw7Ny5E9evX0e5cuXQtWtXdOvWDV27duVnVUk59pv0BBzcnkSv1yM8PBy//fYbVqxYgVu3bqFGjRro1KkTevXqhS5duhg+PG3pMjMzceDAAWzcuBFbt27FkSNHUKZMGfTq1QsDBw5Et27dWFRkNrdv38aGDRvw22+/ITQ0FCKC5s2bo3fv3ujUqRMaNWoEnU6nOqZRxMfHY8eOHdi6dSt+//13xMbGws/PDwMHDsRzzz3HIY7M6tKlS1i1ahUWLVqEM2fOwN3dHR06dDDs9yxlUMuP6OhobNiwARs3bsSePXuQmZmJFi1aYODAgRg6dCg8PT1VRyQbwX6T/WY+cXDLy19//YX58+dj9erViI+PR9OmTTFo0CAMGDAA3t7equOZRXR0NH777TesWrUKR48eRbly5TBw4EC8/PLLaNSokep4ZIXS0tKwbt06LF68GGFhYbC3t0ePHj0waNAg9OzZEyVKlFAd0eT0ej3279+PlStXIiQkBLGxsWjYsCGGDRuGF154AeXKlVMdkaxQbGwsFi5ciGXLliEyMhIVK1bEgAEDMGjQILRs2dJizmYXRVJSEjZu3IhVq1Zhy5YtAIAuXbpgxIgR6NOnDxtJMgn2m+w3CygDQiIicvv2bfnuu++kQYMGAkD8/f3liy++kIsXL6qOplxUVJRMnTpV6tatKwCkcePG8v3338vdu3dVRyMrcObMGXnzzTfFw8ND7O3tpVevXrJ06VJJSkpSHU2pzMxM2b59u4wZM0ZKly4tTk5OMnDgQAkNDRW9Xq86Hlk4vV4vmzZtkr59+4qjo6OULVtWXn31Vdm1a5fN/37duXNHFi1aJN27dxd7e3spX768vPvuuxIVFaU6GlkB9puPx37zqdJtfnA7deqUBAcHi4uLi7i6uspLL70k+/fvVx1Ls/bs2SMvvPCCFC9eXFxdXWX06NFy9uxZ1bHIwuj1elm7dq20a9dOAIi3t7d8+umncu3aNdXRNOn+/fuyaNEiad26tQCQ6tWryzfffMOdGRXY7du35auvvpKqVauKTqeT9u3by9KlSyU1NVV1NE26cuWKfPzxx4bXq0OHDrJhwwbJyspSHY0sDPvNgmG/mSfbHdy2bt0qPXr0EJ1OJ3Xq1JG5c+fKnTt3VMeyGNlHjHx8fMTOzk569+4tO3fuVB2LNC4lJUXmzp1r+L3p1auXbNmyxeaP8BfEmTNn5LXXXpOSJUuKm5ubvP3223LlyhXVsUjjLl26JK+//rqULFlSSpUqJW+++aacO3dOdSyLkX2GMrtvqFu3rvz0008ceOmp2G8WDfvNHGxrcMvKypL169fLM888IwCkXbt28vvvv7NpLILsMyfZZwKaNWsmf/zxh+pYpDH37t2Tzz77TDw8PKRYsWIyevRoOXPmjOpYFu327dvy5ZdfSqVKlcTR0VFGjBjBt9pQLufOnZOhQ4eKg4ODVK1aVaZPn84ztUV08uRJefnll8XZ2VnKlSsn06ZNk5SUFNWxSEPYbxof+00RsaXBbfPmzdK0aVPR6XTSt29fOXz4sOpIVufAgQPSu3dvASAtW7aUrVu3qo5EiqWkpMjXX38tnp6eUqpUKfnwww8lLi5OdSyrkpaWJgsXLhQfHx9xdHSUUaNGyeXLl1XHIsWio6PlxRdfFAcHB6lbt678+uuvkp6erjqWVbl586ZMmjRJSpQoIRUqVJCZM2fyDByx3zQDG+43rX9w27dvnwQGBgoA6dmzpxw5ckR1JKt38OBB6dq1qwCQ9u3by6FDh1RHIjPLyMiQuXPnipeXl7i6usqkSZMkPj5edSyrlpGRIfPnzxdvb29xdnaWCRMmyN9//606FplZbGysjBkzRhwdHaVWrVqyePFiyczMVB3LqsXFxcmbb74pxYsXl8qVK8u8efN4ZsUGsd80PxvsN613cLty5YoMGTJEdDqdBAUFSXh4uOpINmfPnj3Spk0b0el08sILL8j169dVRyIzCAsLE39/f3FycpLXXntNYmNjVUeyKWlpafL999+Ll5eXlClTRmbOnMkzLTYgLS1Npk2bJqVKlZLKlSvLzz//LBkZGapj2ZQbN27IuHHjxNHRURo2bGjLn8OxKew31bOhftP6BreUlBSZPHmyuLi4SM2aNWXNmjWqI9m8VatWibe3t5QoUUKmTp3Kt5JYqfPnz0ufPn0EgPTu3ZuXzlbs3r178t///leKFSsmvr6+smnTJtWRyETWrVsntWrVkuLFi8tHH30kycnJqiPZtNOnT0u3bt0EgAwYMECio6NVRyITYL+pPTbQb1rX4LZr1y6pXbu2uLq6yuTJk63xL8xipaWlycyZM6VUqVJSs2ZNW3o/stXLyMiQL7/8UooVKyZ16tSxxQ8La9qVK1dk+PDhotPppFevXnL16lXVkchIbty4If379xcA0qtXL7l06ZLqSPSIsLAwqVevnhQvXlwmT57MM99WhP2mdll5v2kdg1tCQoK8+OKLhg+CWvEpUot35coV6dWrl+h0Ohk1apTcvn1bdSQqgkOHDkn9+vWlePHi8uWXX/KtWRoWGhoq1atXlzJlysjPP//M+1BZsKysLPn+++/Fzc1NatWqJdu3b1cdiR4jPT1dPv30U3F2dpZGjRrJ0aNHVUeiImC/aTmstN+0/MEtJCREypcvL15eXhISEqI6DuXTihUrpHz58lKxYkX5/fffVcehAkpNTZW33npL7O3tJSgoSM6fP686EuVDcnKyvPHGG4a/N56hsTwXLlyQNm3aiIODg0yaNEnu37+vOhLlw5kzZwx/b++9956kpaWpjkQFxH7TMllZv2m5g9u9e/dk5MiRAkBGjhxpLZO0TUlISJAXXnhBAMgrr7zC++BYiMjISAkICJBSpUrxzI2FOnTokPj7+4ubm5ssXbpUdRzKpwULFkjJkiWlYcOGPHNjgbLPlJYoUUKeeeYZ3svSQrDftHxW1G9a5uB26NAhqV27tpQuXVqWL1+uOg4VUUhIiLi7u4uvry8vn6thWVlZ8uOPP4qLi4s0b96cZ9ksXGpqqkyaNEns7Oxk4MCBkpiYqDoSPcadO3dk6NChotPpZOLEifLgwQPVkagILl26JIGBgVKsWDGZOXMmD35pGPtN62IF/aZlDW5ZWVkybdo0cXR0lM6dO/O9xVbkypUrEhQUJE5OTjJz5kzVcehfEhISpEePHuLg4CCffPIJ7wtlRTZv3iwVKlQQb29v+euvv1THoX/Zv3+/VK5cWSpVqiRhYWGq45CRpKenywcffCD29vby7LPPyp07d1RHokew37ReFt5vWs7glpSUJAMGDBAHBwf5+uuveYTKCun1epk6darY29vL0KFDeUlrjTh27JhUr15dqlSpIvv371cdh0wgLi5OunTpIsWKFZOff/5ZdRz6//73v/+Jk5OT9OrVizewt1K7du0SLy8v8fHxkcjISNVxSNhv2gIL7jctY3A7d+6c1KtXTzw8PHjE0Qbs2LFDypUrJ76+vnL69GnVcWza0qVLxcXFRdq2bSs3b95UHYdMKCsrS7788kuxs7OT4cOH86IXCqWmpsrIkSNFp9PJpEmTRK/Xq45EJnTr1i3p0KGDFC9eXBYsWKA6jk1jv2lbLLDfTLeDxm3atAlNmzZFiRIlcOzYMXTq1El1JDKx9u3b4+DBg3BxcUGrVq0QFhamOpLN0ev1eOONNzB8+HCMHTsW27ZtQ4UKFVTHIhPS6XSYNGkSQkJCsH79egQFBSEuLk51LJtz48YNtG7dGiEhIdiwYQO+/PJL2NlpfldNReDp6YktW7YgODgYL730Et59911kZWWpjmVz2G/aHovsN1WPjk8yd+5ccXBwkBdffJEfxrZBqampMnToUHF0dOTbt8woOTlZ/vOf/0ixYsX4YWwbdfbsWalVq5Z4e3vLqVOnVMexGREREVKlShXx9fXlxX9s1KJFi8TJyUkGDBjAs95mxH7TtllQv6nNt0pmZWXJ5MmTRafTyeTJk/n+Yhv26O/CxIkT+ZYhE7t586Y0bdpUypYtK7t27VIdhxRKSEiQtm3bSsmSJWXz5s2q41i9sLAwcXNzk1atWsnff/+tOg4ptG/fPvHw8JDmzZtLXFyc6jhWjf0mZbOQflN7g1taWpoMHDhQnJ2deX8hMpg/f744OjrKsGHDJD09XXUcq3T27Fnx9vYWHx8fHu0nEXl4FHLw4MHi5OTEf49NaMGCBeLo6CjPP/88b8xMIvLwht01atSQmjlfwloAACAASURBVDVryoULF1THsUrsNykvGu83tTW43b9/X7p37y5ubm6yc+dO1XFIY8LCwqREiRLSu3dvvpXByCIiIqR8+fLSokULXr2OcsjKypK3335b7Ozs5Mcff1Qdx+rMmTNHdDqdfPDBBzzaTznExcVJkyZNpGLFinzLspGx36Qn0XC/qZ3BLTk5WTp16iRlypSRAwcOqI5DGvXXX3+Ju7u7tG/fXpKSklTHsQpHjhwRDw8Padu2LV9Teqwvv/xSdDqdTJ8+XXUUq/HVV18JAPnkk09URyGNunfvnnTo0EHKli0rBw8eVB3HKrDfpPzQaL+ZrhMRUX2BlDt37qBHjx6Ijo5GWFgYAgICVEciDTt27Bi6du2KOnXq4I8//kCpUqVUR7JY+/btQ8+ePdGqVSuEhISgePHiqiORhs2YMQNvv/02PvnkE3z44Yeq41i0yZMn49NPP8Xs2bMxfvx41XFIw1JSUvDss8/i8OHD2LRpE1q2bKk6ksViv0kFocF+M0P54JacnIwuXbrg6tWr2Lp1K+rUqaMyDlmI06dPo1OnTqhZsya2bNkCV1dX1ZEszsGDB9G5c2d06tQJK1asgJOTk+pIZAF+/PFHjB07Fp999hn++9//qo5jkaZMmYJPPvkE8+bNw8svv6w6DlmABw8eYODAgdizZw+2bduGxo0bq45kcdhvUmForN9UO7ilpqaiZ8+eOHnyJHbt2oW6deuqikIWKCoqCm3btoW/vz82btyIYsWKqY5kMSIiIhAUFIQmTZrg999/h7Ozs+pIZEHmzp2LcePGYfr06XjrrbdUx7Eos2bNwhtvvIHvv/8eY8aMUR2HLEh6ejr69u2LQ4cOYceOHfD391cdyWKw36Si0FC/maHsrp7p6ekYOHAgjh07htDQUBYRFVjt2rURGhqKY8eOYfDgwcjIyFAdySJERUWha9euaNiwIdavX8+hjQrs1Vdfxbfffot33nkH8+bNUx3HYsyfPx9vvPEGvvrqKw5tVGBOTk5YvXo1/P390bFjR5w9e1Z1JIvAfpOKSkv9ppIzbllZWXjuuecQGhqKbdu2oUmTJuaOQFYkPDwcXbp0wbPPPovFixdDp9OpjqRZV69eRcuWLeHt7Y3Q0FDVp/zJwn300Uf4/PPPsWrVKvTr1091HE1bvnw5nn/+eUyZMgUffPCB6jhkwZKSktC5c2fExcUhPDwcXl5eqiNpFvtNMiYN9Jtq3ir5zjvvYM6cOQgNDUW7du3MvXmyQmFhYejZsycmTZqETz/9VHUcTUpKSkLr1q0hIti7dy/c3NxURyIrMG7cOCxYsADbt29HixYtVMfRpD179qBz584YN24cvvnmG9VxyAokJiYiMDAQLi4u2LVrF0qUKKE6kiax3yRjU9xvZpj9dgA//fST6HQ6Wbx4sbk3TVbul19+EQDy/fffq46iOenp6dKlSxfx8vKSmJgY1XHIimRmZsp//vMf8fDwkKioKNVxNOfChQvi6ekpvXr1kszMTNVxyIpER0dL+fLlpXv37pKRkaE6juaw3yRTUdhvmvc+bn/88Yc4ODjIlClTzLlZsiEffPCBODo6yp9//qk6iqaMHDlSXF1d5fDhw6qjkBW6d++eNGrUSOrUqSMJCQmq42jGrVu3pGbNmtK8eXO5f/++6jhkhcLDw6V48eLy6quvqo6iKew3ydQU9Zvmu4/b2bNn0bx5c/Tr1w8LFiwwxybJBokIhg0bhi1btuCvv/5CzZo1VUdSbtasWXjrrbewdu1a9O7dW3UcslI3btxAixYt4Ovri82bN8Pe3l51JKUyMzPRqVMnXLlyBQcOHEC5cuVURyIrFRISgkGDBuF///sfXnnlFdVxlGO/SeagqN80z2fckpOT0bx5c5QsWRK7du3iVezIpB48eIA2bdogLS0N4eHhNn0Bjv379yMoKAgff/wx77lFJnf8+HG0atUKr7/+Oj7//HPVcZR644038OOPP2Lv3r1o1KiR6jhk5T7++GN8/vnn2L59O1q3bq06jjLsN8mcFPSbph/cRASDBw/Grl27cOTIEVSuXNmUmyMCAFy5cgWNGzdG586dsWzZMtVxlIiNjUXjxo3RpEkTrFu3jlfbJLNYsmQJRowYgVWrVmHAgAGq4yixYsUKDBkyBAsXLsSIESNUxyEbkJWVhT59+uDIkSM4cuQIKlasqDqS2bHfJBXM3G+a/j5u06dPx9q1a7Fy5UoWEZlN1apV8euvv2LVqlWYPXu26jhml5GRgf79+6NkyZJYsmQJhzYym+HDh2PUqFEYOXIkzp07pzqO2Z08eRLBwcGYOHEihzYyGzs7OyxZsgSurq4YOnQoMjMzVUcyO/abpIK5+02TnnE7dOgQWrdujc8//xxvv/22qTZD9FhTp07F1KlTceDAATRs2FB1HLN5//33MXv2bBw6dAh+fn6q45CNSUtLQ5s2bZCZmYkDBw7AyclJdSSzePDgAZo2bQo3Nzfs2LEDjo6OqiORjTlx4gRatGiB9957D5MnT1Ydx2zYb5JqZuo3TfdWyZSUFDRq1AjVqlVDaGgoj/iTEllZWejUqRNiY2Nx+PBhuLi4qI5kcnv37kX79u0xd+5cjB49WnUcslEXL17EM888g7Fjx+Krr75SHccsJk6ciMWLF+P48ePw9vZWHYds1OzZs/HWW29h9+7daNmypeo4Jsd+k7TATP2m6Qa34OBgrF+/HidOnLDJ91qTdly7dg0NGjTAkCFD8N1336mOY1J3795FgwYN0LBhQ6xbt051HLJxv/zyC0aPHo0///wTHTt2VB3HpP78809069YNS5cuxdChQ1XHIRsmIujTpw9OnTqF48ePo1SpUqojmRT7TdIKM/Sbphnc1q5di/79+2Pt2rX4z3/+Y+zliQps5cqVGDJkCDZs2ICePXuqjmMyQ4cOxa5du3DixAl4eHiojkOEgQMH4sCBA4iIiECZMmVUxzGJ+Ph4BAQEoGPHjli6dKnqOESIi4tD/fr10b17dyxcuFB1HJNhv0laY+J+0/iDW2JiIurVq4devXph3rx5xlyaqEiGDx+OHTt24NSpU3Bzc1Mdx+jWr1+Pvn37YvPmzejatavqOEQAHu4T/P390a1bN8yfP191HJN4/vnnsWfPHkRERFjlvy1kmTZs2IA+ffpg06ZN6N69u+o4Rsd+k7TKhP2m8Qe3l19+GZs3b8bp06et9ugqWaaEhAT4+fmhf//+mDt3ruo4RpWUlIR69eqhY8eOVn10lSxTSEgIBg4ciNDQUHTu3Fl1HKPavHkzevTogfXr16NPnz6q4xDlMGTIEOzfvx8nT55EyZIlVccxKvabpFUm7DeNO7jt2LEDHTt2xOrVq9GvXz9jLUtkNMuWLcPw4cOxc+dOtGnTRnUco3nllVcQEhKC06dPw9PTU3Ucolz69euHY8eO4eTJk+a4SalZpKSkICAgAC1atLDZ+0WStsXHx8PPzw9Dhw7FzJkzVccxGvabpHUm6jeNN7jdv38fAQEBaNiwIUJCQoyxJJFJ9OzZE9HR0Th+/DicnZ1Vxymy3bt3o3379vj1118xZMgQ1XGI8nTjxg34+flh9OjRmDZtmuo4RjFx4kQsW7YMp0+fRrly5VTHIcrTwoULMXLkSOzbtw8tWrRQHafI2G+SpTBBv2m8G3B//fXX+PvvvzFnzhxjLUlkEnPnzsWVK1fw7bffqo5SZHq9HhMmTEC3bt04tJGmVaxYEV988QVmzpyJs2fPqo5TZBEREZg7dy6+/vprDm2kaSNGjED79u0xYcIEZGVlqY5TZOw3yVKYot80yhm3a9euwdfXFx999BHeffddY+QiMqlPPvkE06dPR1RUFLy8vFTHKbQffvgBEydORGRkJOrUqaM6DtETZWVloVmzZihTpgzCwsJUxymSLl26IDExEYcOHYKdndGOgRKZxOnTp9GgQQP89NNPeOmll1THKTT2m2RpjNxvGuetkkOHDsXBgwdx+vRpq3jrGVm/1NRU1K1bFx06dLDYK93duXMHtWvXxvDhw/HNN9+ojkOULzt37kRQUBD++OMP9OjRQ3WcQsm+BPnu3bvRunVr1XGI8mXcuHEICQnBuXPnLPbqp+w3ydIYud8s+uAWHh6OwMBA3kODLM6KFSswbNgwhIeHo1mzZqrjFNibb76JpUuXIioqCqVLl1Ydhyjf+vfvj4iICJw6dQpOTk6q4xRIeno6/P390axZM96zjSxKYmIiateujeDgYHz55Zeq4xQY+02yVEbsN4s+uLVp0wZOTk7Ytm1bUZYhMjsRQZs2beDs7Gxxv7+XL19G7dq1MXPmTIwdO1Z1HKICiY6Ohp+fH2bOnIlXXnlFdZwCmTVrFv773/8iKioKlStXVh2HqEBmzZqF9957DxcuXEClSpVUxykQ9ptkqYzYbxZtcNuyZQu6d++O8PBwq7hSEdmevXv3ok2bNti+fTuCgoJUx8m34OBgbNu2DefOnbO4MxZEADB+/HisXbsWFy5cQPHixVXHyZfU1FTUqlULQ4YMwfTp01XHISqw9PR01KlTB927d7eo+5my3yRLZ6R+s2iDW4sWLeDp6YkNGzYUdgki5Tp16oQHDx5g7969qqPky4ULF1C3bl38/PPPGDFihOo4RIVy8+ZN1KpVC1988QUmTpyoOk6+TJs2DVOmTEF0dDSvJEkW66effsL48eNx7tw5VK9eXXWcfGG/SdbACP1m4Qe39evXo2/fvjh48CCaNm1a2ABEyoWHh6NVq1YIDQ1Fly5dVMd5quHDhxs+nO3g4KA6DlGhvfnmm1i+fDkuXrwIFxcX1XGeKDk5GTVr1kRwcDA+++wz1XGICi0jIwO+vr4ICgrCzz//rDrOU7HfJGthhH6z8INb48aN4e3tzZsfklXo2bMnbt++jf3796uO8kRRUVHw8/PDkiVLeN82sni3bt1CjRo18Omnn+KNN95QHeeJvvjiC3z11VeIjo5G2bJlVcchKpJFixYhODgYUVFRmj/rxn6TrEkR+83C3YB727ZtOHr0KCZNmlSYbyfSnPfffx/h4eHYt2+f6ihPNGPGDFSrVg2DBg1SHYWoyMqVK4fg4GDMmDEDGRkZquM8VlpaGubMmYOxY8dyaCOrMGzYMFSqVAmzZs1SHeWJ2G+StSlqv1moM249evRAamoqduzYUaiNEmlRq1atUKFCBaxZs0Z1lDwlJiaiatWqmDZtGl599VXVcYiMIiYmBj4+Pli0aBGGDh2qOk6eFixYgDFjxiA6OppXkiSrMWPGDHz00Ue4fPky3N3dVcfJE/tNskZF6DcLfsbt3LlzCA0NxVtvvVXQbyXStDfffBPr16/H2bNnVUfJ03fffQdnZ2dekISsire3N/r376/pm8jPmjULQ4cO5dBGVmXUqFFwdHTEvHnzVEfJE/tNslZF6TcLPLhNnz4dtWvXRo8ePQq8MSIt69u3L6pXr445c+aojpLLgwcPMHfuXIwdOxaurq6q4xAZ1VtvvYWjR49i586dqqPkEhoaihMnTmj+M3hEBVWyZEmMHj0ac+bMQXp6uuo4ubDfJGtVlH6zQIPbnTt3sGzZMkycOBF2doX6eByRZtnb22PChAlYsmQJkpOTVcfJYc2aNUhMTMS4ceNURyEyuqZNmyIwMBDff/+96ii5fP/99wgKCkKDBg1URyEyuvHjxyMuLg7r169XHSUH9ptkzYrSbxaoGn799VcA4NXsyGoNHz4cGRkZWLlypeooOfz000/o3bs3vLy8VEchMolRo0Zh3bp1uHXrluooBrGxsdi0aRNGjx6tOgqRSVSpUgXdunXT3G0B2G+StStsv1mgwe2XX37Bc889h9KlSxdoI0SWomzZsujXr5+mdmJRUVHYvXs3Ro0apToKkckMGjQILi4uWLJkieooBr/88gtKlSqFvn37qo5CZDLBwcEICwvDxYsXVUcxYL9J1q6w/Wa+B7dDhw7h2LFjbB7J6o0cORIHDhzAiRMnVEcBAPz888+oXLkyOnfurDoKkckUL14cQ4YMwbx581DI24salYhgwYIFGDFiBJydnVXHITKZXr16wcvLC4sWLVIdBQD7TbIdhek38z24LViwAP7+/mjRokWhwhFZiqCgINSqVUsTO7HMzEwsXrwYI0eOhL29veo4RCYVHByMc+fOITw8XHUUbN++HRcvXkRwcLDqKEQm5eDggBEjRmDhwoXIyspSHYf9JtmMwvSb+RrcMjMzsWbNGjz//POFDkdkKXQ6HYYOHYoVK1Yo34nt2LEDcXFxGDZsmNIcRObQqFEj+Pn5aeIzpitWrEDjxo1Rt25d1VGITO6FF17A1atXsX//fqU52G+SLSlMv5mvwW3btm24desWBgwYUKSARJZiyJAhuHnzZqHvbG8sK1euRJMmTVCrVi2lOYjMZdCgQVi1ahX0er2yDBkZGVi7di0GDx6sLAOROfn6+qJevXrKD5qw3yRbU9B+M1+D28qVK9GsWTPUrFmzSOGILIWvry/8/f2V7sQyMjKwbt06DBo0SFkGInN77rnnEBsbi7179yrLsHXrViQmJmLgwIHKMhCZ26BBg7B69WqlB03Yb5KtKWi/+dTBLSMjA+vXr2fzSDZH9U4sLCyMzSPZnDp16iAgIEDpQZPs5tHb21tZBiJzGzx4MGJjY7F7924l22e/SbaqIP3mUwe3Xbt2ITExEf379zdKOCJLMXDgQMTFxeHAgQNKtr9+/Xo0adKEzSPZnIEDB2L9+vVKri6p1+uxceNGvlWLbE72QZN169Yp2T77TbJVBek3nzq4bd68GfXq1WPzSDbH19cXNWrUwJYtW5RsPzQ0FD169FCybSKVunfvjhs3biAyMtLs2/7rr7+QkJDA2iOb1KNHD2X7PPabZKsK0m/ma3Dr1q2bUYIRWZquXbti8+bNZt/uqVOncPnyZXTv3t3s2yZSrVGjRihfvryS2tu8eTOqVKkCPz8/s2+bSLVu3bohKipKyc242W+SLctvv/nEwe3q1as4c+YMm0eyWd27d8fRo0cRFxdn1u1u3rwZHh4eaNKkiVm3S6QFdnZ26NKli5Ij/1u2bOHZNrJZgYGBcHNzM3vtsd8kW5fffvOJg9vmzZtRokQJtG7d2qjhiCxFhw4d4OTkhD///NOs2w0NDUWXLl14022yWd27d8e+ffuQlJRktm3Gx8fj8OHDPOpPNsvR0REdO3Y0++DGfpNsXX77zScObjt37kSbNm3g7Oxs1HBElsLV1RUtW7bEzp07zbbNjIwM7N+/Hx07djTbNom0pmPHjsjMzDTrDYH37NkDnU6HoKAgs22TSGs6duyIPXv25PuGwMbAfpNsXX77zScObnv37kVgYKAxcxFZnMDAQLPeiPvo0aO4f/8+jzySTStXrhx8fHzMWnt79+6Fv78/3NzczLZNIq1p3bo17t69a9aLA7HfJMpfv/nYwe369eu4evUqC4lsXmBgIKKionDr1i2zbG/fvn3w8PCAj4+PWbZHpFWBgYFmvRH3vn37uM8jm5d98MJcB03YbxI9lJ9+87GD2549e+Dg4MCLI5DNa9WqFezs7BAeHm6W7WU3jzqdzizbI9KqwMBAHDx4EOnp6SbfVmpqKo4dO8bmkWyenZ0dWrZsabbBjf0m0UP56TcfO7iFh4ejYcOGKFGihEnCEVkKNzc3+Pn5mW0nFh4ejlatWpllW0RaFhgYiNTUVJw4ccLk2zpy5AjS09NZe0R4WHvm+nwp+02ih/LTbz52cDt69CiaNm1qkmBElqZJkyY4duyYybcTGxuLmzdv8sgjEYA6deqgVKlSZqm9o0ePwt3dnTf/JQLQuHFjxMTEICEhweTbYr9J9I+n9Zt5Dm4igpMnTyIgIMBkwYgsSUBAgFmO+kdERBi2R2TrdDod6tWrZ5aLJERGRqJBgwYm3w6RJahfvz4A4OTJkybdDvtNopye1m/mObhduXIFd+7cMRQuka0LCAjA33//bfILlERERMDLywuenp4m3Q6Rpahfv77hgIYpRUREsHkk+v8qVaoEd3d3kx80Yb9JlNPT+s08B7eIiAjDkU4iguFIvKkbyMjISO7AiB4REBCAiIgIiIjJtpGVlYVTp05xcCN6hL+/v8kHN/abRDk9rd/Mc3A7efIkqlSpgtKlS5suGZEF8fT0RPny5U2+Ezt58iT8/f1Nug0iSxIQEIA7d+7g+vXrJttGdHQ0UlJSOLgRPSIgIMAs+zz2m0T/eFq/mefgdvHiRdSuXdukwYgsTa1atRAdHW3SbbD2iHLKvp/hxYsXTbaNCxcuAABrj+gRPj4+Jq07gPs8orw8qd/Mc3C7dOkSqlevbtJQRJamevXquHTpksnWT0xMxN27d3lVO6JHVKhQAS4uLoiJiTHZNmJiYuDm5saj/kSPqF69Om7duoXk5GSTbYP9JlFuT+o38xzcYmJi2DwS/YupB7fstbkTI/qHTqdD1apVTVp7MTExrDuif8nuAy9fvmyybbDfJMqtQIObXq/H1atXWUhE/+Lt7Y1Lly6Z7CIJMTExsLOzQ9WqVU2yPpGlyq49U+FRf6LcsmvCVLXHfpMob0/qN3MNbtevX0dGRgYLiehfqlevjtTUVJPdEiAmJgZeXl5wdnY2yfpElqpGjRomfavk5cuXuc8j+pcSJUrA09PTZLXHfpMob0/qN3MNbnFxcQAALy8v0ycjsiAVKlQAAJMNbnFxcaw7ojyUL1/esG8yhdjYWEN9E9E/KlSoYLLaY79JlLcn9Zu5Brf4+HgAgIeHh4ljWYaIiAjMmjULt2/fVh3FamzatAkrVqxQHaPAsmsiu0aMLSEhgXX3CNae8Vly7SUkJJhsfdbeP1h3xmepdQeYtvbYb+bE2jM+S629J/WbuQa3hIQEODk5oWTJkqZPZgH27t2L119/HbGxsaqjWI1p06bhnXfeUR2jwMqWLQs7OzuT7sTc3d1NsrYlYu0Zn6XWnoeHBxITE5GVlWX0tdPS0pCcnMzm8f9j3RmfpdYdALi7u5v0YCX7zX+w9ozPUmvvSf1mnoMbd2BEudnb26N06dImG9xYe0R5c3d3R1ZWFu7cuWP0tbPrmQdNiHIz5Rk37vOI8vakfjPX4JaYmIiyZcuaJZg1MMURYNIud3d3k+3EWHsFw9qzHaZ8mzIHt4Jh3dkW7vO0g7VnWx5Xe7kGt5SUFJQoUcIsofJj4sSJGDlyJK5du4Zx48bB09PT8LWdO3di3LhxqF27NqpUqYIhQ4bghx9+gF6vNzxn1KhRGD9+PG7cuIGhQ4eiWrVqqFmzJl5++WWkpKTk2NZff/2FgQMHokaNGujUqRO+++67PC/FeebMGfTo0QOenp5wdXVF06ZNERISkuM5o0aNwogRI3DhwgUEBwejSpUq6NChA5YuXQoAmDFjBho3boxy5cqhe/fuOH/+fKFenwcPHmDy5MmoWbMmnJ2d4ePjgzFjxuDevXs5npff16oomQcPHozPP/8c+/fvx+DBg+Hp6Yl69erhq6++euo/OHfu3MGrr74Kf39/VKhQAf369cOmTZsK9ZqYkqura67fG2NJSUmBq6urSdYuDNbek7H2zCe7Lu7fv2/0tbN/F7VSe6y7J2PdmZep93nsN1l7rL28Pbb25F8mTJggbdu2/ffDyrRr107q1Kkj9evXFwDSqFEjERHZvn272NvbS9myZWX8+PHy8ccfS2BgoACQd955x/D9TZo0EW9vb6lUqZK0bt1a3n33XWnXrp0AkH79+hmet2PHDnFxcZGyZctKcHCwjB49WkqXLi3e3t4CQE6fPi0iInv27BFXV1fx9vaWDz74QKZOnSrNmzcXADJlypQc261QoYJUrFhR/Pz8ZPjw4eLk5CQ6nU66d+8uDg4O0qdPH+nbt684OTlJ1apVRa/XF/j1eemll8Te3l5efPFFmTVrlkycOFGKFy8uLVu2NDynIK9VUTK7u7tLzZo1xc3NTZ599ll5//33pUmTJgJARo4cmePvtHLlyob/v3r1qnh7e4urq6uMHTtW3nvvPXnmmWfEzs5Ovv322wK/JqbUvHlzefvtt02ydoUKFWT27NkmWbswWHtPxtozn8uXLwsAOXDggNHX3rVrlwCQ2NhYo69dGKy7J2Pdmdf06dOlatWqJlmb/SZrj7X3eI/pN9NzDW6jR4+WTp06mSdVPmT/0nft2lXOnDljeHzUqFHi7Owst2/fNjyWmpoqXl5e4uvra3gs+y9y0qRJkpWVJSIier1eGjVqJG5ubobnNWjQQMqUKSOXLl0yPBYVFSUuLi6GQsrKypJGjRpJ2bJl5fr164bnpaenS4cOHcTJyUnOnTuXY7tTp041PG/Tpk0CQIoXL254nojIiBEjBECOx/LjwYMH4ujoKH369Mnx+KxZs3KsV9DXqrCZ3d3dBYDMmDHD8Jher5egoCDR6XRy+PBhEcldSMOGDcvVlKWlpRle04SEhAK9LqbUpk0bmTBhgknWLlOmjPzwww8mWbswWHuPx9ozr9jYWAEgu3fvNvraYWFhAkASExONvnZhsO4ej3VnfnPmzJHy5cubZG32m5cMj7H2WHv/9ph+M/fg9uKLL0qPHj3Mkyofsgvp0KFDOR4/c+aMRERE5Hjs7t27UrduXalYsaLhsSZNmkjx4sUlNTU1x3MnTJggAOTq1asSHh4uAOSDDz7Itf0xY8YYCunw4cMCQAYMGJDreYsXLxYA8t133xm2a29vL2lpaYbnXL9+XQBIz549c3zvggULBICsXbs2n6/KQykpKeLo6CilSpWSo0ePGh7X6/WSnJwsmZmZIlKw16oomd3d3aV06dKGf7CyZTdGn3/+uYjkLKSEhATR6XTStGnTXD/f8uXLBYDMmzevQK+LKXXq1ElGjx5tkrVdXV1l/vz5Jlm7MFh7j8faM6/ExEQBIGFhYUZfe+PGjQJAkpOTjb52YbDuHo91Z34/Cd+5mgAAIABJREFU/vijlC5d2iRrs9/MibXH2nvUY/rNdAf8S1paGpycnP79sFKenp5o2rRpjsd8fX2RkJCAb775BuHh4YiJicH58+eRlJSEihUr5nhuuXLlUKxYsRyPlSlTBgCQnJyMs2fPAgAaNmyYa9v16tUz/Hf2e2zbtWuX63mNGjUCAERFRRkeq1ixYo7XMjvDv/PZ29sDANLT03Ot+yQuLi6YPHky/u///g+NGjVC3bp1ERQUhB49eqBr166GdQvyWhU1s4+PD3Q6XY7Hsl/Dixcv5voZzp07BxFBcnIyBg8enONrSUlJj/0+VZycnJCWlmaStdPS0uDs7GyStQuLtZc31p55ZdeFKWov+3XUUu2x7vLGujM/Z2dnk+7z2G/+g7XH2nvU4/rNXBcn+feLoAV57VC//vprVK5cGZ9++ikyMjLQqVMnLFy4EIGBgbmeW7x48ceuLSJITEwE8M8vx6MeLcDsK5p5e3vnel72i/voGo/7sLudXa6XvdA++OADXLhwAR9++CFcXFzwww8/oFevXqhXr57hXiAFea2KmtnLy+uxa/77HzPgnyu6OTs7w9HRMccfd3d3DBs2LMc/ZlpgqhrR6XR5fjhZJdbe47H2zMccdaGl2mPdPR7rzrxExKT7PK1h7T0ea8/88qqRXGfcnJycTHKvHGP6+++/8d5778HT0xPnz5/PcfPGzz77rMDrVa9eHQCwa9cu9O3bN8fXYmJicj1vz5496NWrV47nhYeHAwBq1KhR4O0XVnp6Ou7fvw9vb29MmTIFU6ZMQWxsLD777DN89913mDNnDl5//XWjvlZPc+HChVyPZb+GderUyfW17NfLx8fHcDWhbHq9Hvfu3YOLi4vRcxZWenq6yY4QOjk5FfgomLmx9h5i7ZmXKc+KZddzeno6HB0djb6+MbDuHmLdmZ+p93nsN//B2isYW629XGOtJTSPly9fRlZWFvr165fjF+Pq1as4fvx4gddr0qQJHB0dsX379hyPZ2ZmYtmyZYb/f+aZZ+Dk5ISwsLBca+zcuRP29vbo2rVrgbdfWNu3b0eZMmWwfPlyw2MVKlQw3CX+9u3bRn+tniYqKirXZVsXLFgAIO+3BtSqVQuenp4IDQ1FRkZGjq998cUXKFOmDA4dOmT0nIVlyrczsvb+wdorOGuuPVMObtlrarn2WHcPse7MLz09nfs81h5rT4HH9Zu5BjdnZ2fNF1KdOnVQokQJrFy5Ehs2bMD58+excOFCtGrVCqVKlUJycjLOnTuX7/WqVKmCcePGITIyEiNHjsTRo0dx7NgxDBgwAHfv3jU8r2LFihg/fjyOHTuGV199FSdPnsS5c+cwefJkrF69Gs8//zx8fHxM8SPnKTAwEOXKlcOUKVOwc+dO3L17F0eOHMHrr78OAOjZs6fRX6un0ev1ePbZZ7F27VqcOnUKn376KWbPno1BgwahTZs2uZ7v5OSEL774AklJSXj++edx9OhRXLhwAd988w2mTp2Kzp0753mKXRVT7sRYe6y9orDm2st+a5Cpz7hpFevuIdad+ZnyYCX3eay9orD22ntsv/nvy5W89dZb0qJFC9NdJqWA/n0pz2yrVq2SEiVKCAABIGXLlpVFixbJ6tWrxdXVVRwcHETk4ZVrHr0EabaPPvoox/0yHjx4IKNGjTKsB0A6duwoS5YsyfG8tLQ0ee2113I8D4C88sorOa6Ok9d2ExISBICMGTMmx+PZVwhauXJlgV+fsLAwqVixYo4sxYoVk88++8wor1VBMru7u0unTp1kxIgRYmdnZ9he+/btJT4+3vC8vP5OZ8+eLcWKFTN8j4ODg7zyyiuaujSriEjDhg3zvBqUMVStWlWmT59ukrULg7X3ZKw98zl//rwAkGPHjhl97eyrvF25csXoaxcG6+7JWHfm9fnnn4uPj49J1ma/ydorbGZbqL3H9JvpOpGcn8iePHky1qxZg8jIyNxTnsYkJCTg2LFj8PLygp+fn+FDfAkJCbh9+zZq1apV4DWvXr2KyMhI1K1b1/Ae47zcunULx48fh7OzM+rXr2+4apAK9+/fR0REBK5cuQIPDw/4+/ujXLlyOZ5jitfq3zw8PNC0aVNs3rwZt2/fxuHDh1GpUiX4+fnl6/vv3buHY8eOITk5GQEBAahSpUqRMxlb7dq18eKLL+L99983+tr16tXD4MGD8dFHHxl9bWNj7T3E2jOP48eP45lnnkFUVJTRjzKfPHkSAQEBOH36NOrWrWvUtY2NdfcQ6858/u///g8bN240yVvd2G+y9grLFmrvMf1mRq7Bbfbs2fjiiy9w8+ZN8yYkg1dffTVfzxs+fDhatmxp4jT592ghWasyZcrgq6++wujRo42+dtu2bdGwYUPMnj3b6GtT/rD2tGnr1q3o3LkzEhMTjd603Lx5ExUrVsSePXvQunVro65N+cO6064xY8bg4sWL2Lp1q9HXZr+pHmtPux7Tb2bkuqqkh4cHEhISTHoJWHqyoKCgfD0vr0uhkulkZmbi7t27cHd3N8n67u7uhsvVkhqsPW2Kj4+Hvb093NzcjL62h4cHdDqd4fLbZH6sO+1KSEjA/2vvvqOiOtc1gD8wNMFOUWIDRFRQbKDAKEICgrEXxGisSUyMdanraKI5OZ4k53qS6LXEdhQTy1UEY42AgKK0YECRolgoKkERMahIEZh57x8eSOwgM/NNeX9rZa38ofM9uvjcz7v3nr0tLCyU8tncN8XjvaeeXtU3nxvczM3NUV1djYcPHyrlIMleLyAgQHSEN2Jtba20f+DVQe0BRll/RnNzc+Tn5yvls1n98N5TT8XFxWjdurVC30lUy9DQEE2bNuXBTSDed+qruLhYae+24r4pHu899fSqvvnCwa32N/FGYg2hCfepN0bt1TBlXXGzsLBAamqqUj6baTdd2HvKPEjXnvlnrCG0fd8BTwY3ZZ6sBLhvsobT9r33qr753OnLNm3aAADfc8zYMwoLCwHguS/iKoqVlVXdGoyxP925c0dp+w54ctzjvcfY8+7cuQNLS0ulfDb3TcZe7FV987nB7a233oKRkRFu3Lih/GSMaZC8vDyYmZkp7SBmY2OD27dvo7KyUimfz5imysvLg42NjdI+v1OnTrh+/brSPp8xTVRaWori4uJXPvGwMbhvMvZir+qbzw1uEokEHTp0QF5enkrCMaYprl+/DhsbG6V9idrGxgZEhJs3byrl8xnTVHl5eUorjwBga2vLxzzGnlF7MkNZe4/7JmMv9qq++cJvetvY2PDZR8aeoYryWLsOY+wJIsKNGzeUesXNxsaG9x1jz6jdE506dVLaGtw3GXveq/rmCwc3PvvI2POUfbtWq1at0KJFCz6IMfYXtbcPK/OkiY2NDR4+fIiSkhKlrcGYpsnLy4OVlRXMzMyUtgb3Tcae96q++cLBzd7eHlevXlVmJsY0TnZ2Nuzt7ZW6Bu89xp527do1AEDnzp2Vtkbtvr5y5YrS1mBM01y7do2PeYwJ8Kq++cLBrUePHsjPz+ezj4z91+3bt1FUVISePXsqdZ2ePXtq/WNuGWuItLQ0tG7dGu3atVPaGnZ2dmjWrBnvPcb+Ij09Hc7Ozkpdg/smY097Xd984eBWu1H5IMbYE7V7QRWD24ULF5S6BmOaJCMjQ+nlUU9PD05OTnzMY+wvMjIylH7M477J2NNe1zdfOLh16NAB5ubmvJEY+6+MjAxYW1sr7VUAtZydnXH37l0UFRUpdR3GNIUqBjfgyd5LT09X+jqMaYL8/Hzcv39f6YMb903Gnva6vvnCwQ0An31k7C9UceYRAHr16gUAXCAZAyCXy3Hx4kWV7D2+TZmxP9Ueg1Sx97hvMvan1/XNlw5uffr0QUpKilJCMaZpUlJS0Lt3b6WvY2lpiXbt2vHeYwxPHhby6NEjley9Pn364I8//kBubq7S12JM3Z07dw62trZo2bKl0tfivsnYn17XN186uEmlUly4cAGlpaVKCcaYpigpKUFWVhYGDhyokvU8PDyQkJCgkrUYU2fx8fEwMzNTyeDm4uICExMT3nuM4cnek0qlKlmL+yZjT9Snb75ycJPJZPjtt9+UEo4xTZGQkAAigpubm0rWk0qlSEhIgFwuV8l6jKmrhIQEuLm5wcDAQOlrGRsbo2/fvjy4MZ1X2/1UObhx32Ssfn3zpYPbW2+9BRsbGz6IMZ2XkJCAbt26Kf3BJLWkUilKSkr4nVJM56nyrD/w50kTxnRZeno6Hjx4oLK7TLhvMvZEffrmSwc34MlBLDExUeHBGNMkiYmJKi2PvXr1gpmZGR/EmE4rLCxETk4OPDw8VLamVCrFpUuXcP/+fZWtyZi6SUhIQMuWLeHo6KiyNblvMla/vvnKwc3LywtxcXGorKxUaDDGNMWjR4+QlJQELy8vla1paGgIqVSK6Ohola3JmLo5efIkjIyMVHrSZNCgQdDT08OpU6dUtiZj6iY6Ohqenp7Q139lRVQo7ptM19W3b75yV/r7+6OiogJxcXGKzMaYxjh58iRqamrg6+ur0nX9/f0RGRkJmUym0nUZUxfh4eEYOHAgmjZtqrI1W7duDVdXV0RERKhsTcbUSVVVFU6dOoWhQ4eqdF3um0zX1bdvvnJwa9++PZycnBAeHq7QcIxpivDwcLi4uMDKykql6/r7+6OkpIS/rM10klwuR1RUFPz9/VW+tr+/P8LDw0FEKl+bMdHi4+NRWlqKIUOGqHRd7ptM19W3b772OnjtQYwxXRQRESGkPHbv3h12dna895hOSklJQVFRkcrP+gPA0KFD8fvvv+PixYsqX5sx0cLDw9GtWzfY2dmpfG3um0yX1bdvvnZwGzp0KC5fvswvJWU65+LFi7hx44aQwQ0AhgwZgrCwMCFrMyZSWFgY2rdvjx49eqh8bRcXF1haWuL48eMqX5sx0cLDw4Ud87hvMl3VkL752sHN09MTlpaWCA0NVUg4xjRFaGgorK2t0b9/fyHrjxkzBufOnUN2draQ9RkTJTQ0FGPGjBGytr6+PkaOHIkDBw4IWZ8xUS5fvoyLFy9i7NixQtbnvsl0VUP65msHNwMDA4wePRohISEKCceYpggNDcWECRMgkUiErP/222/DysqKCyTTKZmZmbh06RICAwOFZQgMDERKSgqfNGE6Zd++fbC2tlbpk1z/ivsm01UN6Zv1etZrYGAgzp8/j2vXrjU6HGOaID09XXh5NDAwwJgxY7B//35hGRhTtf3796N9+/Zwd3cXlqH2pAmf+We6JDQ0FIGBgSp9DcCzuG8yXdPQvlmv3enl5YU2bdrwWRCmM0JCQtChQwe4ubkJzREYGIgLFy4gKytLaA7GVOXAgQOYMGGC0PIokUgwduxYPmnCdEZaWhqysrKEnqwEuG8y3dPQvlmvI6NEIsH48ePxf//3f40Kx5gmkMvl2LdvHwIDA6Gnpyc0i6enJ6ytrbFv3z6hORhTheTkZFy+fFl4eQSAiRMnIi0tDZmZmaKjMKZ0e/fuhY2NDQYMGCA0B/dNpkvepG/W+5TmRx99hKysLCQkJLxxQMY0wcmTJ5Gbm4sZM2aIjgKJRIJp06bhxx9/5JdxM623fft29OjRQ9gDgf7K09MTXbp0wfbt20VHYUypampqsGvXLkyfPl34yUqA+ybTHW/SN+s9uPXq1Qt9+/bFtm3b3igcY5oiKCgIUqkUjo6OoqMAeHIQu3XrFiIiIkRHYUxpysrKEBwcjA8++EB0FACAnp4eZs6ciZ07d6KiokJ0HMaU5siRIygqKsL06dNFRwHAfZPpjjfpmw36EsFHH32EkJAQlJSUNDgcY5rg3r17OHz4sNqURwCws7ODl5cXH8SYVtu/fz8qKysxefJk0VHqzJgxA2VlZTh06JDoKIwpzfbt2+Hn54dOnTqJjlKH+ybTdm/aNxs0uE2aNAn6+vp87zHTWjt37oSxsTEmTJggOspTPvroIxw/fhwFBQWiozCmFNu2bcPYsWNhaWkpOkqdNm3aYMSIEfjPf/4jOgpjSnHjxg1ERUWp1clKgPsm035v2jcbNLg1b94c77//PtavXw+5XN6ghRhTdzU1NdiwYQOmTp0KMzMz0XGeMmbMGFhaWuKHH34QHYUxhUtKSkJSUhJmz54tOspzZs+ejTNnzuD8+fOiozCmcOvXr4e1tTVGjhwpOspTuG8ybdaYvtng5y0vWrQIOTk5OHr0aEN/K2Nq7cCBA8jPz8fChQtFR3mOsbEx5syZg61bt+LRo0ei4zCmUN9//z1cXFzg6ekpOspzfHx80KdPH6xZs0Z0FMYU6uHDhwgKCsL8+fNhaGgoOs5zuG8ybdWYvqlHRNTQ3zRy5EiUlJQgLi6uwQsypq7c3NzQsWNHtX1/TElJCTp27Iivv/4aCxYsEB2HMYXIy8tDly5dsHfvXrW7RbnW7t27MXPmTOTk5KBjx46i4zCmEN9++y2+/vpr3Lx5Ey1bthQd54W4bzJt1Ii+Wf1GbzhdvHgx4uPjkZSU9Ca/nTG1c/r0aZw9exaLFi0SHeWlWrVqhenTp2Pt2rWoqakRHYcxhVi9ejU6dOiAsWPHio7yUhMnToS1tTXWr18vOgpjClFdXY0ffvgBs2bNUtuhDeC+ybRPY/vmG11xA4D+/fujbdu2fAmbaYUhQ4agsrISsbGxoqO8Uk5ODrp164YdO3ZgypQpouMw1ii3b9+Gvb09Vq1ahXnz5omO80rfffcdvvrqK+Tm5sLCwkJ0HMYaZfv27ZgzZw6uXbum9leRuW8ybdLIvln9xoNbWFgYhg0bhqSkJAwYMOBNPoIxtZCQkICBAwfi1KlT8Pb2Fh3ntWbMmIG4uDhkZWWp5fcSGKuv+fPn48CBA8jJyUGTJk1Ex3mlsrIydO7cGVOnTsW3334rOg5jb6y6uhpdu3aFn58fNm/eLDrOa3HfZNpCAX3zzQc3APD09ISpqSm/GJhpNG9vb8hkMrW/2lbrxo0bcHBwwKZNm9TuEc6M1detW7dgb2+P1atXq+XTJF9kzZo1WLFiBbKzs/HWW2+JjsPYG9m0aRMWLVqEa9euoUOHDqLj1Av3TaYNFNA3Gze4RUdHw9fXF2fOnFHLp4Ex9jonT56Ej4+Pxv0Mf/LJJwgPD8fVq1dhbGwsOg5jDaaJP8OVlZXo0qULxo0bh7Vr14qOw1iD1f4Mjx07FuvWrRMdp964bzJNp6C+2bjBDdC8qxWM1SIiuLu7o2XLlhp3Fi8/Px8ODg749ttv1f67QYw9Kzs7G05OThp51Xjjxo1YsmQJsrKyYGNjIzoOYw2yevVq/P3vf0d2djasra1Fx2kQ7ptMUymwbzZ+cDt//jxcXV0RHByMgICAxnwUYyq1e/duTJ8+Hb/99hv69esnOk6DLV26FNu2bcPVq1f5YQlMo4wcORI5OTlIS0uDgYGB6DgNUl1djZ49e8LZ2VltXx3C2IsUFRXBwcEBCxYswMqVK0XHaTDum0xTKbBvNn5wA4Bp06YhJiYGly9fhqmpaWM/jjGlKy8vR/fu3TF06FBs2bJFdJw3Ulpaiq5du2LcuHHYsGGD6DiM1cupU6fwzjvv4MSJExgyZIjoOG/kl19+wYgRI3D69GkMHjxYdBzG6mXWrFkICwvDlStXYGZmJjrOG+G+yTSNgvumYga3O3fuwMHBAX/729+wfPnyxn4cY0r3xRdfYP369bhy5Qratm0rOs4bCwoKwscff4zU1FT07NlTdBzGXkkmk6FPnz6ws7PD4cOHRcdplKFDh6KwsBApKSmQSCSi4zD2ShcuXICLiwt27tyJyZMni47zxrhvMk2j4L6pmMENAL755husWrUKly5d0pinFDHdlJeXBycnJ3z11VdYvHix6DiNIpfL4erqitatWyMqKkp0HMZeacOGDViyZAkuXrwIe3t70XEa5dKlS+jVqxc2btyIWbNmiY7D2EsREby8vFBVVYXExETo6emJjtQo3DeZplBC31Tc4FZZWYlevXqha9eu/JJEptb8/Pxw69YtnDt3DkZGRqLjNNqvv/6KgQMH4scff8TUqVNFx2HshfLz8+Hk5IT58+fj66+/Fh1HIRYvXowff/wRFy9e1LgHPTDdsX37dnzyySc4e/asRn6f+1ncN5mmUELfVNzgBgBnzpyBt7c3goODMWHCBEV9LGMKs3PnTsycOROxsbGQSqWi4yjMvHnzsG/fPly6dAlWVlai4zD2nNGjRyMrKwtpaWkwMTERHUchysvL4ezsjL59+/KDSphaKiwshKOjIz744AN89913ouMoDPdNpu6U1DcVO7gBT778eujQIWRlZfGT7phaKS4uhqOjI9577z2Nen9NfZSVlaFnz57w8PDAnj17RMdh7CnBwcGYNGkSoqOj8fbbb4uOo1CnTp2Cj48PDh48iNGjR4uOw9hTxo8fj3PnziEjIwNNmzYVHUehuG8ydaXEvqn4we3BgwdwdHSEr68vfvrpJ0V+NGONMnHiRPz666/IzMxEs2bNRMdRuLCwMAwbNgzHjh3D8OHDRcdhDMCTA1iPHj0watQobN26VXQcpZg+fTqio6ORkZGBVq1aiY7DGADg4MGDGD9+PE6cOAFfX1/RcRSO+yZTV0rsm4of3ADg2LFjGDVqFEJCQjB+/HhFfzxjDbZnzx5MnToV4eHh8PPzEx1HaaZNm4YTJ04gPT2db5lkamH06NFITU1Feno6WrRoITqOUvzxxx9wdnaGVCrF/v37RcdhDLdu3UKvXr0wevRobNu2TXQcpeG+ydSNkvumcgY3AJg9ezaCg4ORlpaGjh07KmMJxuolLy8PvXv3xsyZM/G///u/ouMo1aNHj9C3b1907twZYWFhGv/0MKbZtmzZgjlz5iA6Ohre3t6i4yjVmTNn8Pbbb2PHjh2YNm2a6DhMhxERhg0bhqtXryI1NVUr7zD5K+6bTF2ooG8qb3CrrKyEq6srWrVqhZiYGH7PDROipqYGgwcPxoMHD5CcnIwmTZqIjqR0ycnJkEqlWLNmDebOnSs6DtNR2dnZ6NOnDxYsWKA1T5F8nSVLlmDLli04f/48HBwcRMdhOur777/HZ599hvj4eAwYMEB0HKXjvsnUgYr6ZrW+Mj4VAExMTLBr1y6cPXsWq1atUtYyjL3SypUrcf78eQQHB+vE0AYArq6u+Pzzz/G3v/0NaWlpouMwHVRRUYGAgAA4Ojriyy+/FB1HZb755ht06dIFU6ZMwePHj0XHYTooJSUFK1aswD//+U+dGNoA7ptMPaiqbyrtilutdevWYfHixQgPD9fKL8cy9fXLL79g1KhR2LRpEz7++GPRcVSqpqYGPj4++P3335GcnMwPTGAqNWPGDBw5cgTJycno3Lmz6DgqdfnyZfTv3x+TJ0/G5s2bRcdhOqS4uBguLi5wcHBAREQE9PWVdm5eLXHfZKKosG8q71bJv5o+fTqOHTuG5ORk2NnZKXs5xpCdnQ1XV1eMGDECu3btEh1HiKKiIvTr1w/du3dHeHg43z7CVGLz5s2YO3cujh49imHDhomOI8SRI0cwZswYbNu2DR988IHoOEwHyOVyDBs2DJcuXcK5c+d09vH43DeZqqm4b6pmcKuoqIBUKoVcLkdiYiJMTU2VvSTTYbU/b0SExMREnblF8kXOnj2LwYMHY9myZfjHP/4hOg7TcklJSfDy8sJnn32mU7dIvsiyZcuwbt06xMbGwtXVVXQcpuU+++wzrF27FnFxcXBxcREdRxjum0yVBPRN1QxuwJ8T6bvvvos9e/bw0+6YUsjlcgQGBiImJgYpKSmwsbERHUm4TZs2Yd68eQgNDcXYsWNFx2FaKj8/H25ubujduzeOHTumc7dpPUsmk8Hf3x9Xr15FUlISrK2tRUdiWqr2Bfd8hfcJ7ptMFQT1TeU9nORZ9vb2OHToEA4cOKDzZ2KZ8ixbtgxHjhzB/v37eWj7r08//RSffvop3n//ffz666+i4zAtVFpaihEjRqBly5bYs2ePzg9tACCRSLB//340adIEw4cPx6NHj0RHYlooPj4eM2bMwMKFC3lo+y/um0wVhPVNUrGgoCACQFu2bFH10kzLbdu2jfT09Gjnzp2io6idmpoaGjlyJFlYWNC1a9dEx2FapKamhoYPH05t27al69evi46jdnJzc8nKyoreffddqq6uFh2HaZHs7GyytLSk4cOHU01Njeg4aof7JlMWgX2zSuWDGxHR559/ToaGhhQVFSVieaaFjh8/TgYGBvTPf/5TdBS1VVpaSn369KHu3bvTvXv3RMdhWuLDDz8kMzMzSk5OFh1FbSUmJlKTJk1o7ty5oqMwLVFUVET29vbUv39/KisrEx1HbXHfZIomuG9Wqew7bs9c5cP777+Po0ePIjIyEu7u7qqOwLRIXFwc/P39MXHiRAQFBYmOo9Zu3boFd3d3WFtbIyoqCs2aNRMdiWmwZcuWYfXq1Th48CBGjBghOo5aO3DgACZOnIjly5dj5cqVouMwDfbgwQO8/fbbuH//PhITE9GmTRvRkdQW902mSGrQN1X3cJLnVq6uxrhx4xAbG4uTJ0+iX79+ImIwDXfhwgV4e3vD29sbISEhMDAwEB1J7WVnZ8PT0xO2traIjIyEmZmZ6EhMA3399df4+9//zg9EaICdO3di5syZ+Oabb7Bs2TLRcZgGKi8vh7+/P3JzcxEbG8uPvK8H7ptMEdSkb4ob3ACgqqoKo0ePRnJyMk6fPg0nJydRUZgGyszMhJeXF/r27Ytjx47B2NhYdCSNUft316dPHxw7dgwmJiaiIzEN8sMPP2D+/PnYtGkTPvnkE9FxNMoPP/yAefPmYfXq1Vi0aJHoOEyDVFVVYdSoUTh37hxOnz4NR0dH0ZE0BvdN1hhq1DfFDm4AUFZWBj8/P+Tm5iI6Opr/IWL1kpGRAV9fX3Tv3h1hYWE6/a62N5WSkgIfHx8MGjQIoaGhPLyxetm4cSPYm8LFAAATkElEQVTmzZuH7777DosXLxYdRyP961//wooVK7B582Z8/PHHouMwDVBRUYFx48YhKSkJMTEx6NWrl+hIGof7JnsTatY3Vfc6gJcxMzNDWFgYOnfuDC8vL6SmpoqOxNRccnIyvL290b17dxw7dkz0JtJYLi4uiIiIQHx8PEaMGIGysjLRkZia+/e//4158+bhf/7nf3hoa4TPP/8cK1euxOzZs7FmzRrRcZiaKy0txbvvvouzZ88iMjKSh7Y3xH2TNZQ69k3hgxsANG/eHCdOnECfPn3g7e2NxMRE0ZGYmoqLi4OPjw/69++PsLAwNG3aVHQkjebm5oaYmBikpaXB29sbf/zxh+hITE39+9//xmeffYY1a9Zg6dKlouNovC+++AIbNmzAkiVL+Ptu7KXu378PPz8/ZGVlISYmBi4uLqIjaTTum6y+1LVvqsXgBgCmpqY4evQoBg8eDD8/P0RFRYmOxNRMWFgY/P39MWTIEBw+fFgtznxog969e+PMmTMoKCjAkCFDcOfOHdGRmBqRy+WYP38+li9fjh07dmDhwoWiI2mNOXPmYMuWLfjuu++wZMkSCP7mAlMzt2/fhpeXFwoKChAbGwtnZ2fRkbQC9032OurcN9VmcAMAY2NjHDhwAKNHj8awYcOwY8cO0ZGYmtiyZQtGjRqFiRMnIjg4GEZGRqIjaZXu3bsjLi4ODx48gLu7O7KyskRHYmqgvLwc48aNw7Zt2xAcHIzp06eLjqR1Zs2ahT179mDDhg0IDAxEZWWl6EhMDWRmZsLNzQ2PHz9GbGwsHBwcREfSKtw32cuofd8U8fa415HL5fTll18SAJo/fz7JZDLRkZggtT8Lenp69OWXX5JcLhcdSavdu3ePBg0aRK1ataJTp06JjsMEunv3LkmlUmrdujWdOXNGdBytl5CQQBYWFjRgwAC6c+eO6DhMoOjoaGrRogV5eHjQ3bt3RcfRatw3WS0N6ZtVajm41QoKCiJDQ0N67733qLy8XHQcpmKPHj2i8ePHk5GREe3evVt0HJ1RUVFBAQEBZGRkRD/99JPoOEyAjIwMsrGxIXt7e7p69aroODrj0qVLZGtrS/b29pSVlSU6DhPgP//5DxkaGtKkSZOosrJSdBydwX1Tt2lQ31TvwY2IKDIyklq1akV9+vShvLw80XGYily7do2cnZ3J3NycYmJiRMfROTKZjJYuXUoAaO7cuVRVVSU6ElOR4OBgatq0KQ0cOJDP9gtQWFhIbm5u1Lx5czp48KDoOExFKisradasWaSnp0crVqxQ17P9Wo37pm7SsL5ZpVbfcXsRX19fXLhwARKJBP369cOJEydER2JKFhYWhv79+0MikSA5ORleXl6iI+kcfX19rFq1CocPH8bu3bvh7e2NW7duiY7FlKimpgbLli3De++9h0mTJuHkyZOwsLAQHUvntGnTBqdPn8b06dMxbtw4LFiwADU1NaJjMSUqKCiAl5cX9u3bh5CQEHz11VfQ09MTHUvncN/UPRrZN0WPjvVVVlZGkydPJolEQl999RXfh6yFqqur6YsvviA9PT2aMWMGVVRUiI7EiCgzM5McHBzI2tqaTp8+LToOU4KCggIaPHgwmZqaqvttIjolKCiITExMyNfXlwoLC0XHYUoQFRVFlpaW5OjoSJcvXxYdhxH3TV2gwX1T/W+VfNa6devI2NiYBg8eTDdv3hQdhylIbm4ueXh4kImJCW3ZskV0HPaM+/fv05gxY0gikdDnn3/Ot05qkcOHD5OFhQV16dKFLly4IDoOe0ZKSgrZ2tpSmzZt6Pjx46LjMAV5/PgxLVmyhPT19SkwMJBKS0tFR2LP4L6pnTS8b2re4Eb05AqAs7MztWjRgvbs2SM6DmukkJAQatWqFTk5OXFxVHM7d+6kpk2bkouLC125ckV0HNYI5eXlNH/+fNLT06MpU6ZwcVRjDx48qPv+06xZs6isrEx0JNYIWVlZ1LdvX2rWrBlt3bpVdBz2Ctw3tYsW9E3NHNyInpSOTz/9tK50FBcXi47EGqioqIgmTpxIenp6tHDhQk26VK3TLl++TP369aOmTZvSxo0b+TYSDZSQkEDdunWj1q1b04EDB0THYfW0b98+atmyJTk5OdHZs2dFx2ENJJPJaN26dWRqakoDBgyg7Oxs0ZFYPXDf1Hxa1Dc1d3Crdfz4cWrXrh1ZWVnR3r17Rcdh9bRz504yNzenjh070okTJ0THYQ1UVVVFy5cvJ0NDQ5JKpXTp0iXRkVg9PHjwgObMmUP6+vrk7+9Pv//+u+hIrIFu3LhBPj4+JJFIaOHChfTo0SPRkVg9pKen04ABA8jIyIj+8Y9/UHV1tehIrIG4b2omLeubmj+4ET0pI7NnzyY9PT0aNmwY3bhxQ3Qk9hI5OTnk6+tL+vr6NG/ePHr48KHoSKwRLly4QK6urmRsbEwrV66kx48fi47EXuLIkSPUvn17srCw4AeQaDi5XE4//vgjtW7dmmxsbCg8PFx0JPYSFRUVdSe53N3dKTMzU3Qk1gjcNzWHlvZN7RjcasXHx5OjoyOZmprS0qVL+TsbaqSsrIy+/PJLatKkCXXp0kUT3pXB6kkmk9HWrVupadOmZG9vTyEhIaIjsb+4evUqBQQEEAAKCAigoqIi0ZGYghQWFtKUKVMIAA0fPpxvvVMzR48eJTs7OzI1NaVVq1ZRTU2N6EhMQbhvqi8t75vaNbgRPXmJ5apVq6hZs2bUsWNHCg4O5hdZCiSXy2n37t3Url07atGiBX3//fd8VUZLXb9+nQIDA0lPT4+GDBlCFy9eFB1Jp5WUlNCiRYvI0NCQnJ2d6eTJk6IjMSU5ceIEOTo6krGxMS1dulRbzixrrLS0NPL29iY9PT2aPHky5efni47ElID7pnrRkb6pfYNbrdu3b9OMGTNIX1+fpFIpnTlzRnQknRMdHU0DBgwgiURCs2bNojt37oiOxFQgNjaW+vbtSwYGBjR79mz+HpWKVVRU0Nq1a8nS0pIsLCxo8+bNfKZfB1RXV9P69eupdevW1LZtW9q4caM2lha1duPGDfrwww9JIpFQ//796ddffxUdiakA903xdKhvau/gVislJYXeeecdAkA+Pj6UmJgoOpLWi42NpcGDBxMA8vPzo9TUVNGRmIrJZDIKCgqijh07komJCS1cuJBfIKxkjx8/pk2bNlH79u2pSZMmtGTJEiopKREdi6lYcXExLViwgExMTKhTp060bds2fu+ikhUUFNCcOXPIyMiIbG1tadeuXXzlRQdx31Q9Heyb2j+41YqJiaGBAwcSAHr33XcpPj5edCStc/r0afL19SUA5OXlRXFxcaIjMcEqKytpw4YNZG1tTWZmZrRkyRIqKCgQHUurVFRU0JYtW6hTp05kbGxM8+bNo1u3bomOxQTLz8+nTz75hIyMjKhz584UFBRElZWVomNplZs3b9LChQupSZMm1KFDB9qyZQsPyYz7pgrocN/UncGtVkREBLm7uxMAcnNzo9DQUL6NqBFqamooODiYXFxcCAANGjSIv0vDnlNeXk6rV6+mtm3bkpGREU2bNo3S09NFx9Jod+/epZUrV5KVlRUZGxvTxx9/TDdv3hQdi6mZvLw8mjlzJhkZGZG1tTV98803dO/ePdGxNNr58+dp8uTJZGhoSO3ataP169fzUMyew31TsbhvEpEuDm614uPjacyYMaSvr0+dO3emtWvX8sGsAe7evUurV68mW1tbkkgkNH78eEpKShIdi6m5yspKCgoKIicnJ9LT0yM/Pz86evQoH8waIC0tjWbPnk2mpqZkbm5Oy5cvp9u3b4uOxdRcQUEBLV26lFq2bElmZmY0d+5cfjR9A1RXV9Phw4frboXr1asX7dy5k79HyF6L+2bjcN98iu4ObrWuXbtGn376KTVr1oxMTExo0qRJdOrUKb4//QVkMhlFRUVRYGAgGRsbU/PmzWnevHmUk5MjOhrTMHK5nMLCwuresdKuXTtasWIF5ebmio6mlh4+fEhbt26l/v37EwBycHCgDRs28MuXWYOVlpbS2rVryd7engCQu7s7BQUF8c/SS1y7do2WLVtG1tbWdS+uj4yMFB2LaSDum/XHffOlqvSIiMDw6NEj7N+/H9u3b0dSUhLs7e0xadIkBAYGwtHRUXQ8oTIyMrB//37s3bsXeXl5kEql+PDDDxEQEAAzMzPR8ZiGy83NRVBQEH766ScUFhbC29sbEydOxNixY9G6dWvR8YSpqqpCVFQUQkJC8PPPP0Mmk2H8+PH48MMP4enpCT09PdERmQYjIsTExGD79u04ePAgjI2NMW7cOAQGBuKdd96BgYGB6IjCFBcX4+eff8a+ffsQGxuLdu3aYcaMGZg5cyZsbGxEx2Majvvmy3HffK1qHtxeIDMzEzt27EBISAgKCgrQo0cPTJgwAQEBAejWrZvoeCpx8eJFhIaGIiQkBFlZWejQoQMCAwMxY8YMnf+HhSlHTU0NwsLCsGvXLoSFhaGmpgY+Pj6YMGECRo4cqRNDXFVVFU6fPo39+/fj0KFDuH//Ptzc3DBp0iRMnjwZrVq1Eh2RaaF79+5hz5492Lt3L3777TeYm5tj3LhxmDBhAjw9PWFoaCg6otIVFxfjyJEjCAkJwalTp2BkZIThw4dj6tSp8Pf3h0QiER2RaSHum9w3G4gHt1eRy+VITExEaGgoQkNDcfv2bdja2sLX1xc+Pj7w8/ND8+bNRcdUiPLyciQmJuLYsWM4cuQIbty4AQsLC4wdOxZTpkyBVCrlM/xMZSoqKhAdHY3Q0FD8/PPPePz4MXr37g0fHx8MHz4cHh4e0NfXFx1TIQoLCxEZGYlffvkFkZGRePDgARwdHREQEID3338f9vb2oiMyHXLz5k0cOnQIoaGhSExMhKmpKdzd3TF8+HCMGTMGHTt2FB1RIeRyOVJTUxEdHY3o6GicPn0aBgYG8PHxQUBAAMaMGYNmzZqJjsl0BPdN7pv1xINbfclkMiQlJSE8PBwRERFITU2FoaEh3NzcMGjQILi7u8PDwwMtW7YUHbVeSkpKkJiYiISEBMTHx+Ps2bOoqalBv3794O/vj6FDh2LAgAFaU46Z5nrw4AGioqIQERGBiIgIFBQUwMrKCp6enpBKpfDw8EDfvn015tau7OxsJCYmIj4+HnFxcbh8+TLMzMzwzjvv1O09vh2LqYOcnBxEREQgPDwcMTExKC8vh5OTEwYNGgQPDw9IpVLY2dmJjlkv1dXVOHfu3FN7r7i4GB06dKjbdz4+PjysMeG4b7JX4MHtTd25cweRkZGIiYlBYmIirly5An19fTg5OcHFxQU9e/ZEz5494ezsDCsrK6FZCwsLkZGRgfT0dGRmZiI5ORlZWVkgInTr1g0eHh7w9vbGkCFDYGlpKTQrY6+Tnp6OyMhIxMXFITExEcXFxTAzM4Orqyt69+5dt+8cHR1hamoqLKdMJkN2dnbd3svIyEBSUhIKCwthYmICFxcXDBw4ED4+Phg4cCCMjY2FZWXsdSorKxEXF4fo6GgkJCQgJSUFjx8/hrW1Ndzc3ODs7Fy39zp37iy0hJWVleHSpUtIS0tDZmYmUlNTkZKSgvLyclhaWsLDwwOenp7w8/ODk5OTsJyM1Qf3TfYXPLgpyt27d+vOKKSmpiIjIwN37twBAFhZWcHBwQG2trawsbGBra0tbG1t0aZNG5ibm8Pc3PyN75+XyWS4d+8e7t27h8LCQuTl5SEvLw/Xr19HXl4erly5guLiYgBA27Zt0bNnT/Tt2xceHh7w8PCAhYWFwv4OGFM1IsKVK1eQkJCApKQkpKWl4eLFiygvL4dEIoGtrS06d+781N7r2LEjrKysYGFh0ahbTyoqKur2Xn5+ft3eq91/V65cQUVFBSQSCezt7eHs7AxXV1dIpVL069ePBzWm0SorK5GSklI3xKWnpyMnJwcymQympqbo2rXrU/vOxsYGHTp0gIWFBczNzWFiYvLGaz98+BB3795FUVERbt68+dS+y8nJQV5eHuRyOczMzODk5IRevXrVXaXo2rWrAv8WGFM97ps6jQc3ZSoqKqo7056Tk1P3w52Xl4eKioqnfm3thqq9TaN58+aQSCR1G0wmk0Emk+Hhw4cAgNLSUhQXF+OPP/546nNMTU3rNqqNjQ3s7e3Ro0cPODs789kNphPkcjlycnKQlpaGrKws5Obm1h1cfv/9d8hksrpfa2hoWFckjY2NIZFI6oY5IyMjVFVVAXgypFVWVkIul9cduMrKyp5a19LS8qmDZdeuXeuu/DVp0kR1fwGMCVJeXl53pevq1atPlbraQlfLzMys7rinr6+PJk2a1A1zf917Dx8+hEwmQ2VlZd3eq66urvscAwMDtG/fvm7f2dnZwdHREc7OzrCzs+Pbr5hO4L6pM3hwE6WwsBB3796tOxDV/n9paSmAPw9WtQcoQ0NDGBgY1G20Zs2awcLCoq50mpubw8rKCm3atBH2Z2JM3VVXV+P27dsoKipCcXFx3f67d+8eHj9+/NTBqqKiom7gqi2V+vr6dfvtr/+1b9+eH1XM2Cs8evQIBQUFT+252j1IRKisrKwrmH/dey1atIC+vj5MTEye23dWVlawtrbWiadeMvamuG9qFR7cGGOMMcYYY0zNVfM9BIwxxhhjjDGm5nhwY4wxxhhjjDE1x4MbY4wxxhhjjKm5/wcb6bSGI9qtywAAAABJRU5ErkJggg==", + "image/png": "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\n", "text/plain": [ "" ] @@ -698,7 +698,7 @@ "outputs": [ { "data": { - "image/png": "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SajCwYMHzY033mg8Ho958MEHzbFjx1yXhFOQn59v+vTpY2rXrm1efvllNgIxjLyZWMib8YG8mVjIm/GDvJlYyJvxg7yZWMib8YG8mVgSJG/G15CurKzMPPfccyY1NdVcccUVvDdzAtmxY4cZMGCASUtLMy+//LLrcvAT+/btM1deeaXxer3mqaeeMqWlpa5LQoR8+OGHplWrViYjI8N88cUXrsvBT2RnZ5szzjjDtGnTxixYsMB1OYiQkpIS8+c//9mkpKSYX/7yl+bgwYOuS8KPkDcTF3kztpE3Exd5M7aRNxMTeTO2kTcTF3kztpE3E1ec5834GdIdPnzYjBgxwni9XvP8889zJ1AC8vv95plnnjEpKSnmxhtvNEVFRa5LgjHmyy+/NO3atTNnnnmmyc7Odl0OomD37t1m0KBBpnbt2uaNN95wXQ7+f//+979NWlqayczMNIWFha7LQRQsWrTItG7d2nTq1Mnk5eW5LgeGvJkMyJuxibyZ+MibsYm8mfjIm7GHvJn4yJuxibyZ+OI4b8bHkG7jxo3m3HPPNc2aNePOriTw6aefmhYtWpguXbqYdevWuS4nqU2ePNmcdtpppl+/fub77793XQ6iqKyszIwZM8bUqlXL3HLLLXxAvENHjx41d9xxh/F4PGb06NHG7/e7LglRtGfPHnP55ZebOnXqmDfffNN1OUmNvJlcyJuxg7yZPMibsYO8mVzIm7GDvJlcyJuxg7yZPOI0b8b+kO799983DRo0ML169TIFBQWuy4El+fn55vzzzzeNGjUyH330ketykk5paan53e9+Zzwej3nkkUeMz+dzXRIseeuttwL/5+7atct1OUln586d5oILLjCNGjUyc+fOdV0OLCkpKTEPPPCAkWQeffRRflDmAHkzOZE33SJvJi/yplvkzeRE3nSPvJmcyJtukTeTV5zlzdge0r366qvG6/WaX//613xwcRI6evSoufHGG01qamq8vUQ1rhUVFZn/+Z//MbVr1+aDi5PUhg0bTMeOHU1GRoZZu3at63KSRm5urjnzzDNNly5d+ODiJDVhwgSTlpZmRowYES93eyUE8mZyI2+6Qd4EedMN8ibIm26QN5MbedMN8ibiKG/G5pCurKzMPPHEE8bj8ZgnnniC92dOYj/+t/Dggw9yt1eUff/99+bCCy80TZo0MYsWLXJdDhzat2+f6devn6lfv7758MMPXZeT8BYsWGAaNmxoLrnkErN3717X5cChpUuXmmbNmplevXqZ3bt3uy4noZE3UY68aRd5E+XIm3aRN1GOvGkPeRPlyJt2kTdRLk7yZuwN6Y4fP25Gjhxp0tPTzeTJk12Xgxgxbtw4k5qaam666SZTUlLiupyEtGHDBpORkWE6derEXZUwxpy42+u6664zaWlp/H8cRW+++aZJTU01N998szl+/LjrchAD1q9fb9q3b286dOhgNm/e7LqchETeRDDkzegjb+KnyJt2kDfxU+TN6CNvIhjyZvSRN/FTcZA3p9RSDDl69Kh++ctf6qOPPtL8+fN10003uS4JMeK2227TBx98oHfeeUfDhw/X8ePHXZeUUPLy8tS/f3+1atVKOTk56tixo+uSEANq166tqVOn6sEHH9Stt96q//znP65LSjj/+te/dPvtt+uPf/yjJk6cqLS0NNclIQZ06dJFOTk5aty4sfr166d169a5LimhkDdRFfJmdJE3EQx5M/rImwiGvBld5E1UhbwZXeRNBBMXedP1mLBcUVGRGThwoGncuLFZtmyZ63IQo7744gvTtGlTc9lll5nDhw+7LichrFq1yjRr1sz069ePP1NUacyYMcbj8Zh//vOfrktJGP/4xz+MJPPUU0+5LgUx6siRI+byyy83TZo0McuXL3ddTkIgbyIU5M3II28iFOTNyCNvojrkzcgjbyIU5M3II28iFDGaN2Pj7S4PHDhgLr74YtOyZUuTm5vruhzEuNWrV5vmzZubvn37mkOHDrkuJ64tWbLENGzY0AwdOpQPjUa1XnjhBePxeMzTTz/tupS495e//MV4PB7zyiuvuC4FMa58k9+oUSOTnZ3tupy4Rt5EOMibkUPeRDjIm5FD3kSoyJuRQ95EOMibkUPeRDhiMG9O8RhjjMtX8hUVFWnQoEEqKCjQxx9/rM6dO7ssB3Fi3bp1GjhwoDp06KB58+apbt26rkuKO8uXL9cVV1yhgQMHatq0abztCULy+uuv695779Wzzz6rP/3pT67LiUtPP/20nnrqKY0dO1a3336763IQB44dO6aRI0dq8eLFWrhwoS644ALXJcUd8iZqgrx56sibqAny5qkjbyJc5M1TR95ETZA3Tx15EzURY3kzy+mQ7ujRo7rqqqu0Zs0aLVq0SOecc46rUhCHNm3apH79+qlbt26aO3euateu7bqkuJGbm6sBAwbo5z//ud59912lp6e7Lglx5NVXX9X999+vf/7zn3rkkUdclxNX/vd//1cPP/ywXnvtNd19992uy0EcKSkp0TXXXKMVK1bo008/Vbdu3VyXFDfImzgV5M2aI2/iVJA3a468iZoib9YceROngrxZc+RNnIoYyptZtVxduaSkRCNHjtSXX36p+fPns4AhbGeffbbmz5+vL7/8Utddd518Pp/rkuLCpk2bNHjwYPXs2VPvvPMOCxjCdt999+mll17So48+qrFjx7ouJ26MGzdODz/8sP7xj3/wAxOELS0tTbNmzVK3bt30i1/8SKrH2wAAIABJREFUQhs2bHBdUlwgb+JUkTdrhryJU0XerBnyJk4FebNmyJs4VeTNmiFv4lTFUt508kq6srIyXX/99Zo/f74WLlyon//857ZLQALJycnRoEGD9Mtf/lITJ06Ux+NxXVLMKigo0MUXX6yMjAzNnz+fl9HjlPzlL3/R3/72N82YMUPXXnut63Ji2tSpU3XzzTfr6aef1p///GfX5SCOHT58WFdccYV2796tnJwctW7d2nVJMYu8iUgib4aOvIlIIm+GjryJSCFvho68iUgib4aOvIlIioG86ebtLh999FG98sormj9/vvr372/78khACxYs0FVXXaXRo0frr3/9q+tyYtLhw4fVt29fGWO0ZMkSNWzY0HVJSAD333+/3nzzTX3yySfq3bu363Ji0uLFi3XFFVfo/vvv1wsvvOC6HCSA/fv3q0+fPjrttNO0aNEi1atXz3VJMYm8iUgjb1aPvIloIG9Wj7yJSCNvhoa8iUgjb1aPvIlocJw37Q/pxo4dq7vvvlsTJkzQLbfcYvPSSHDjxo3THXfcoddee0333HOP63Jiis/nU2ZmpvLy8pSTk6O2/x979x1Xdd33cfwNKKRoKkPFkbiV4UBQEBeKA82FKzVTc5Q56sq6smxny9QrR2apaWXuUrLAPVlOFBUVwUUpmuBCRRB+9x/eYAgi4/y+n3M47+fjcT8e94X4+346+em84Hfk1KolPRKVEBkZGejXrx/CwsIQHh6O+vXrS49kVOLj4+Hj44NWrVph/fr1sLKykh6JSoizZ8/Cx8cHHh4e+P3331GqVCnpkYwKe5P0wt58PPYm6YW9mT/2JumFvZk/9ibphb35eOxN0otw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", + "image/png": "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SajCwYMHzY033mg8Ho958MEHzbFjx1yXhFOQn59v+vTpY2rXrm1efvllNgIxjLyZWMib8YG8mVjIm/GDvJlYyJvxg7yZWMib8YG8mVgSJG/G15CurKzMPPfccyY1NdVcccUVvDdzAtmxY4cZMGCASUtLMy+//LLrcvAT+/btM1deeaXxer3mqaeeMqWlpa5LQoR8+OGHplWrViYjI8N88cUXrsvBT2RnZ5szzjjDtGnTxixYsMB1OYiQkpIS8+c//9mkpKSYX/7yl+bgwYOuS8KPkDcTF3kztpE3Exd5M7aRNxMTeTO2kTcTF3kztpE3E1ec5834GdIdPnzYjBgxwni9XvP8889zJ1AC8vv95plnnjEpKSnmxhtvNEVFRa5LgjHmyy+/NO3atTNnnnmmyc7Odl0OomD37t1m0KBBpnbt2uaNN95wXQ7+f//+979NWlqayczMNIWFha7LQRQsWrTItG7d2nTq1Mnk5eW5LgeGvJkMyJuxibyZ+MibsYm8mfjIm7GHvJn4yJuxibyZ+OI4b8bHkG7jxo3m3HPPNc2aNePOriTw6aefmhYtWpguXbqYdevWuS4nqU2ePNmcdtpppl+/fub77793XQ6iqKyszIwZM8bUqlXL3HLLLXxAvENHjx41d9xxh/F4PGb06NHG7/e7LglRtGfPHnP55ZebOnXqmDfffNN1OUmNvJlcyJuxg7yZPMibsYO8mVzIm7GDvJlcyJuxg7yZPOI0b8b+kO799983DRo0ML169TIFBQWuy4El+fn55vzzzzeNGjUyH330ketykk5paan53e9+Zzwej3nkkUeMz+dzXRIseeuttwL/5+7atct1OUln586d5oILLjCNGjUyc+fOdV0OLCkpKTEPPPCAkWQeffRRflDmAHkzOZE33SJvJi/yplvkzeRE3nSPvJmcyJtukTeTV5zlzdge0r366qvG6/WaX//613xwcRI6evSoufHGG01qamq8vUQ1rhUVFZn/+Z//MbVr1+aDi5PUhg0bTMeOHU1GRoZZu3at63KSRm5urjnzzDNNly5d+ODiJDVhwgSTlpZmRowYES93eyUE8mZyI2+6Qd4EedMN8ibIm26QN5MbedMN8ibiKG/G5pCurKzMPPHEE8bj8ZgnnniC92dOYj/+t/Dggw9yt1eUff/99+bCCy80TZo0MYsWLXJdDhzat2+f6devn6lfv7758MMPXZeT8BYsWGAaNmxoLrnkErN3717X5cChpUuXmmbNmplevXqZ3bt3uy4noZE3UY68aRd5E+XIm3aRN1GOvGkPeRPlyJt2kTdRLk7yZuwN6Y4fP25Gjhxp0tPTzeTJk12Xgxgxbtw4k5qaam666SZTUlLiupyEtGHDBpORkWE6derEXZUwxpy42+u6664zaWlp/H8cRW+++aZJTU01N998szl+/LjrchAD1q9fb9q3b286dOhgNm/e7LqchETeRDDkzegjb+KnyJt2kDfxU+TN6CNvIhjyZvSRN/FTcZA3p9RSDDl69Kh++ctf6qOPPtL8+fN10003uS4JMeK2227TBx98oHfeeUfDhw/X8ePHXZeUUPLy8tS/f3+1atVKOTk56tixo+uSEANq166tqVOn6sEHH9Stt96q//znP65LSjj/+te/dPvtt+uPf/yjJk6cqLS0NNclIQZ06dJFOTk5aty4sfr166d169a5LimhkDdRFfJmdJE3EQx5M/rImwiGvBld5E1UhbwZXeRNBBMXedP1mLBcUVGRGThwoGncuLFZtmyZ63IQo7744gvTtGlTc9lll5nDhw+7LichrFq1yjRr1sz069ePP1NUacyYMcbj8Zh//vOfrktJGP/4xz+MJPPUU0+5LgUx6siRI+byyy83TZo0McuXL3ddTkIgbyIU5M3II28iFOTNyCNvojrkzcgjbyIU5M3II28iFDGaN2Pj7S4PHDhgLr74YtOyZUuTm5vruhzEuNWrV5vmzZubvn37mkOHDrkuJ64tWbLENGzY0AwdOpQPjUa1XnjhBePxeMzTTz/tupS495e//MV4PB7zyiuvuC4FMa58k9+oUSOTnZ3tupy4Rt5EOMibkUPeRDjIm5FD3kSoyJuRQ95EOMibkUPeRDhiMG9O8RhjjMtX8hUVFWnQoEEqKCjQxx9/rM6dO7ssB3Fi3bp1GjhwoDp06KB58+apbt26rkuKO8uXL9cVV1yhgQMHatq0abztCULy+uuv695779Wzzz6rP/3pT67LiUtPP/20nnrqKY0dO1a3336763IQB44dO6aRI0dq8eLFWrhwoS644ALXJcUd8iZqgrx56sibqAny5qkjbyJc5M1TR95ETZA3Tx15EzURY3kzy+mQ7ujRo7rqqqu0Zs0aLVq0SOecc46rUhCHNm3apH79+qlbt26aO3euateu7bqkuJGbm6sBAwbo5z//ud59912lp6e7Lglx5NVXX9X999+vf/7zn3rkkUdclxNX/vd//1cPP/ywXnvtNd19992uy0EcKSkp0TXXXKMVK1bo008/Vbdu3VyXFDfImzgV5M2aI2/iVJA3a468iZoib9YceROngrxZc+RNnIoYyptZtVxduaSkRCNHjtSXX36p+fPns4AhbGeffbbmz5+vL7/8Utddd518Pp/rkuLCpk2bNHjwYPXs2VPvvPMOCxjCdt999+mll17So48+qrFjx7ouJ26MGzdODz/8sP7xj3/wAxOELS0tTbNmzVK3bt30i1/8SKrH2wAAIABJREFUQhs2bHBdUlwgb+JUkTdrhryJU0XerBnyJk4FebNmyJs4VeTNmiFv4lTFUt508kq6srIyXX/99Zo/f74WLlyon//857ZLQALJycnRoEGD9Mtf/lITJ06Ux+NxXVLMKigo0MUXX6yMjAzNnz+fl9HjlPzlL3/R3/72N82YMUPXXnut63Ji2tSpU3XzzTfr6aef1p///GfX5SCOHT58WFdccYV2796tnJwctW7d2nVJMYu8iUgib4aOvIlIIm+GjryJSCFvho68iUgib4aOvIlIioG86ebtLh999FG98sormj9/vvr372/78khACxYs0FVXXaXRo0frr3/9q+tyYtLhw4fVt29fGWO0ZMkSNWzY0HVJSAD333+/3nzzTX3yySfq3bu363Ji0uLFi3XFFVfo/vvv1wsvvOC6HCSA/fv3q0+fPjrttNO0aNEi1atXz3VJMYm8iUgjb1aPvIloIG9Wj7yJSCNvhoa8iUgjb1aPvIlocJw37Q/pxo4dq7vvvlsTJkzQLbfcYvPSSHDjxo3THXfcoddee0333HOP63Jiis/nU2ZmpvLy8pSTk6O2/x979x1Xdd33cfwNKKRoKkPFkbiV4UBQEBeKA82FKzVTc5Q56sq6smxny9QrR2apaWXuUrLAPVlOFBUVwUUpmuBCRRB+9x/eYAgi4/y+n3M47+fjcT8e94X4+346+em84Hfk1KolPRKVEBkZGejXrx/CwsIQHh6O+vXrS49kVOLj4+Hj44NWrVph/fr1sLKykh6JSoizZ8/Cx8cHHh4e+P3331GqVCnpkYwKe5P0wt58PPYm6YW9mT/2JumFvZk/9ibphb35eOxN0otw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\n", "text/plain": [ "" ] @@ -808,7 +808,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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\n", "text/plain": [ "" ] @@ -1770,7 +1770,6 @@ "This is the list of operations and in which fields they are supported, although some might have not been covered in this tutorial.\n", "\n", "The following work with operations anndata supported before are also supported now with Dask arrays:\n", - "\n", "- anndata.concat()\n", "- Views\n", "- copy()\n", From a9684bd45ef7c548623212e6ea3bded7ffad9a5a Mon Sep 17 00:00:00 2001 From: selmanozleyen Date: Thu, 14 Sep 2023 20:49:25 +0200 Subject: [PATCH 05/15] reviews done except results seem sus --- concat-on-disk.ipynb | 829 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 675 insertions(+), 154 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 231a30f..998384f 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -24,15 +24,7 @@ "\n", "## Initializing\n", "\n", - "Let's begin by importing the necessary libraries and modules. This notebook also uses the [memory-profiler](https://pypi.org/project/memory-profiler/) extension. Ensure you've installed it using `pip install memory-profiler` before proceeding." - ] - }, - { - "cell_type": "markdown", - "id": "5dc7197c", - "metadata": {}, - "source": [ - "This notebook uses the [memory-profiler](https://pypi.org/project/memory-profiler/) extension, call `pip install memory-profiler` before running this notebook." + "Let's begin by importing the necessary libraries and modules. This notebook also uses the [memray](https://pypi.org/project/memray/) module. Ensure you've installed it using `pip install memray` before proceeding." ] }, { @@ -42,18 +34,19 @@ "metadata": {}, "outputs": [], "source": [ - "from memory_profiler import memory_usage\n", "import numpy as np\n", "from scipy import sparse\n", "import pandas as pd\n", + "import itertools\n", "import shutil\n", + "from typing import Literal, Callable\n", "from anndata.tests.helpers import gen_typed_df\n", "from anndata.experimental import write_elem\n", "import zarr\n", "import anndata\n", "from pathlib import Path\n", - "import glob\n", - "\n", + "import memray\n", + "import tempfile\n", "import anndata\n", "import zarr\n", "import gc\n", @@ -88,7 +81,8 @@ "source": [ "\n", "# Directory where the data will be stored\n", - "OUTDIR = Path(\"tmpdata\")\n", + "TMPDIR = tempfile.TemporaryDirectory()\n", + "OUTDIR = Path(TMPDIR.name)\n", "\n", "# Parameters that will influence the structure and size of our datasets:\n", "\n", @@ -156,13 +150,13 @@ "id": "9449622e", "metadata": {}, "source": [ - "### generate_array_funcs_and_names\n", + "### array_creators\n", "\n", - "This function determines the type of array functions and their corresponding names based on the provided `density` parameter. It essentially helps in figuring out if the dataset is dense or sparse.\n", + "This function returns a `dict` that takes a string as key and a function to create an array of that type as a value. The type of array format and their corresponding names based on the provided `density` parameter.\n", "\n", "- `density`: The density of the dataset. If the density is 1, the dataset is dense; otherwise, it's sparse.\n", "\n", - "Returns: A tuple containing the list of array functions and their corresponding names.\n" + "Returns: A dict containing the array creator functions and their corresponding names.\n" ] }, { @@ -172,20 +166,19 @@ "metadata": {}, "outputs": [], "source": [ - "def generate_array_funcs_and_names(density):\n", - " array_funcs = [] # List to hold array functions\n", - " array_names = [] # List to hold array names\n", + "\n", + "def array_creators(density: Literal[1] | float) -> dict[str, Callable[[np.ndarray | sparse.spmatrix], np.ndarray | sparse.spmatrix]]:\n", + " \"\"\"Returns a dictionary of array creators for the given density\"\"\"\n", + " array_funcs = {}\n", " \n", " # Check if dataset is dense\n", " if density == 1:\n", - " array_names.append(\"np\")\n", - " array_funcs.append(lambda x: x.toarray())\n", + " array_funcs[\"np\"] = lambda x: x.toarray()\n", " else:\n", " # For sparse datasets, consider both csc and csr formats\n", - " array_names.extend([\"csc\", \"csr\"])\n", - " array_funcs.extend([sparse.csc_matrix, sparse.csr_matrix])\n", - " \n", - " return array_funcs, array_names" + " array_funcs[\"csc\"] = sparse.csc_matrix\n", + " array_funcs[\"csr\"] = sparse.csr_matrix\n", + " return array_funcs" ] }, { @@ -275,13 +268,12 @@ "outputs": [], "source": [ "def write_data_to_zarr(X, shape, array_name, outdir, file_id):\n", - " fname = str(outdir) + f\"/{file_id:02d}_{shape}_{array_name}\"\n", + " outfile = outdir / f\"{file_id:02d}_{shape}_{array_name}.zarr\"\n", " adata = create_adata((X.shape[0], X.shape[1]), X)\n", - " output_zarr_path = f\"{str(fname)}.zarr\"\n", - " z = zarr.open_group(output_zarr_path)\n", + " z = zarr.open_group(outfile, mode=\"w\")\n", " write_elem(z, \"/\", adata)\n", " zarr.consolidate_metadata(z.store)\n", - " return f\"wrote {X.shape[0]}x{X.shape[1]}_{array_name} -> {fname}\\n\"\n", + " return f\"wrote {X.shape[0]}x{X.shape[1]}_{array_name} -> {str(outfile)}\\n\"\n", "\n", "def write_temp_data(shapes, sizes, densities, num_runs, outdir, rewrite=False):\n", " outdir.mkdir(exist_ok=True)\n", @@ -296,21 +288,18 @@ "\n", " saved = []\n", " file_id = 1\n", - " for _ in range(num_runs):\n", - " for shape in shapes:\n", - " for size in sizes:\n", - " for density in densities:\n", - " array_funcs, array_names = generate_array_funcs_and_names(density)\n", - " M, N = generate_dimensions(shape, size)\n", - "\n", - " X_base = sparse.random(M, N, density=density, format=\"csc\")\n", - "\n", - " for array_func, array_name in zip(array_funcs, array_names):\n", - " X = array_func(X_base)\n", - " report = write_data_to_zarr(X, shape, array_name, outdir, file_id)\n", - " print(report)\n", - " saved.append(report)\n", - " file_id += 1\n", + " for _, shape, size, density in itertools.product(range(num_runs), shapes, sizes, densities):\n", + " array_funcs = array_creators(density)\n", + " M, N = generate_dimensions(shape, size)\n", + "\n", + " X_base = sparse.random(M, N, density=density, format=\"csc\")\n", + "\n", + " for array_name, array_func in array_funcs.items():\n", + " X = array_func(X_base)\n", + " report = write_data_to_zarr(X, shape, array_name, outdir, file_id)\n", + " print(report)\n", + " saved.append(report)\n", + " file_id += 1\n", " with open(outdir / \"done.txt\", \"w\") as f:\n", " f.writelines(saved)\n", "\n" @@ -326,60 +315,59 @@ "name": "stdout", "output_type": "stream", "text": [ - "already done\n", - "wrote 12941x10000_csc -> tmpdata/01_fat_csc\n", + "wrote 12046x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/01_fat_csc.zarr\n", "\n", - "wrote 12941x10000_csr -> tmpdata/02_fat_csr\n", + "wrote 12046x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/02_fat_csr.zarr\n", "\n", - "wrote 12289x10000_np -> tmpdata/03_fat_np\n", + "wrote 13674x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/03_fat_np.zarr\n", "\n", - "wrote 10000x12366_csc -> tmpdata/04_tall_csc\n", + "wrote 10000x13321_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/04_tall_csc.zarr\n", "\n", - "wrote 10000x12366_csr -> tmpdata/05_tall_csr\n", + "wrote 10000x13321_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/05_tall_csr.zarr\n", "\n", - "wrote 10000x13624_np -> tmpdata/06_tall_np\n", + "wrote 10000x13000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/06_tall_np.zarr\n", "\n", - "wrote 10000x10000_csc -> tmpdata/07_square_csc\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/07_square_csc.zarr\n", "\n", - "wrote 10000x10000_csr -> tmpdata/08_square_csr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/08_square_csr.zarr\n", "\n", - "wrote 10000x10000_np -> tmpdata/09_square_np\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/09_square_np.zarr\n", "\n", - "wrote 13924x10000_csc -> tmpdata/10_fat_csc\n", + "wrote 12061x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/10_fat_csc.zarr\n", "\n", - "wrote 13924x10000_csr -> tmpdata/11_fat_csr\n", + "wrote 12061x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/11_fat_csr.zarr\n", "\n", - "wrote 13321x10000_np -> tmpdata/12_fat_np\n", + "wrote 12500x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/12_fat_np.zarr\n", "\n", - "wrote 10000x12377_csc -> tmpdata/13_tall_csc\n", + "wrote 10000x12942_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/13_tall_csc.zarr\n", "\n", - "wrote 10000x12377_csr -> tmpdata/14_tall_csr\n", + "wrote 10000x12942_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/14_tall_csr.zarr\n", "\n", - "wrote 10000x12595_np -> tmpdata/15_tall_np\n", + "wrote 10000x12252_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/15_tall_np.zarr\n", "\n", - "wrote 10000x10000_csc -> tmpdata/16_square_csc\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/16_square_csc.zarr\n", "\n", - "wrote 10000x10000_csr -> tmpdata/17_square_csr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/17_square_csr.zarr\n", "\n", - "wrote 10000x10000_np -> tmpdata/18_square_np\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/18_square_np.zarr\n", "\n", - "wrote 13778x10000_csc -> tmpdata/19_fat_csc\n", + "wrote 13523x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/19_fat_csc.zarr\n", "\n", - "wrote 13778x10000_csr -> tmpdata/20_fat_csr\n", + "wrote 13523x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/20_fat_csr.zarr\n", "\n", - "wrote 12484x10000_np -> tmpdata/21_fat_np\n", + "wrote 13401x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/21_fat_np.zarr\n", "\n", - "wrote 10000x13293_csc -> tmpdata/22_tall_csc\n", + "wrote 10000x12267_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/22_tall_csc.zarr\n", "\n", - "wrote 10000x13293_csr -> tmpdata/23_tall_csr\n", + "wrote 10000x12267_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/23_tall_csr.zarr\n", "\n", - "wrote 10000x13809_np -> tmpdata/24_tall_np\n", + "wrote 10000x13240_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/24_tall_np.zarr\n", "\n", - "wrote 10000x10000_csc -> tmpdata/25_square_csc\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/25_square_csc.zarr\n", "\n", - "wrote 10000x10000_csr -> tmpdata/26_square_csr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/26_square_csr.zarr\n", "\n", - "wrote 10000x10000_np -> tmpdata/27_square_np\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/27_square_np.zarr\n", "\n" ] } @@ -397,7 +385,7 @@ "source": [ "### Putting our arrays in categories\n", "\n", - "The `create_datasets` function constructs a dictionary that maps dataset types (dense or sparse) and their axis (0 or 1) to a set of corresponding file paths. The function processes different file sets and, based on conditions like `requires_reindexing`, refines the set of file paths to be associated with each dataset type and axis combination.\n" + "The `create_datasets` function constructs a dictionary that maps dataset types (dense or sparse) and their axis (0 or 1) to a set of corresponding file paths. The function processes different file sets and, based on conditions like `requires_reindexing`, refines the set of file paths to be associated with each dataset type and axis combination. If there is reindexing required (i.e., datasets don't have the same size in the axis:`1-axis`) then a more costly concatenation strategy will have to be used compared to the case without reindexing. For this reason we will separate the tests that require reindexing and the ones that do not.\n" ] }, { @@ -409,12 +397,12 @@ "source": [ "# files by properties\n", "filesets = {\n", - " 'nps' : set(glob.glob(str(OUTDIR) + \"/*np*\")),\n", - " 'csrs' : set(glob.glob(str(OUTDIR) + \"/*csr*\")),\n", - " 'cscs' : set(glob.glob(str(OUTDIR) + \"/*csc*\")),\n", - " 'fats' : set(glob.glob(str(OUTDIR) + \"/*fat*\")),\n", - " 'talls' : set(glob.glob(str(OUTDIR) + \"/*tall*\")),\n", - " 'squares' :set(glob.glob(str(OUTDIR) + \"/*square*\")),\n", + " 'nps' : set(OUTDIR.glob(\"*np*\")),\n", + " 'csrs' : set(OUTDIR.glob(\"*csr*\")),\n", + " 'cscs' : set(OUTDIR.glob(\"*csc*\")),\n", + " 'fats' : set(OUTDIR.glob(\"*fat*\")),\n", + " 'talls' : set(OUTDIR.glob(\"*tall*\")),\n", + " 'squares' : set(OUTDIR.glob(\"*square*\")),\n", "}" ] }, @@ -488,7 +476,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "0cf0be3a", + "id": "ae86ae46", "metadata": {}, "outputs": [], "source": [ @@ -515,31 +503,26 @@ " }\n", "\n", " if not is_sparse:\n", - " cluster = LocalCluster(n_workers=1, threads_per_worker=1, memory_limit=max_arg)\n", + " cluster = LocalCluster(memory_limit=max_arg)\n", " client = Client(cluster)\n", " else:\n", " concat_kwargs[\"max_loaded_elems\"] = max_arg\n", + " \n", + " stat_file = OUTDIR / \"temp_stats.bin\"\n", + " if stat_file.exists():\n", + " stat_file.unlink()\n", "\n", - " # get the current memory usage\n", - " initial_mem = memory_usage(-1, interval=0.001)[0]\n", - "\n", - " mem_usages = memory_usage(\n", - " (\n", - " concat_on_disk,\n", - " (),\n", - " concat_kwargs,\n", - " ),\n", - " include_children=True,\n", - " interval=0.001,\n", - " )\n", - " max_mem = max(mem_usages)\n", - " mem_increment = max_mem - initial_mem\n", + " with memray.Tracker(stat_file, follow_fork=True, native_traces=True, trace_python_allocators=True) as tracker:\n", + " concat_on_disk(**concat_kwargs)\n", "\n", + " with memray.FileReader(stat_file) as reader: \n", + " max_mem = reader.metadata.peak_memory\n", " if not is_sparse:\n", " client.close()\n", " cluster.close()\n", - " return mem_increment, max_mem, mem_usages, initial_mem\n", "\n", + " \n", + " return max_mem\n", "\n", "def dataset_max_mem(max_arg, datasets, array_type):\n", " results = {}\n", @@ -561,14 +544,14 @@ " # force garbage collection\n", " gc.collect()\n", " # perform profiling\n", - " mem_increment, max_mem, mem_usages, initial_mem = get_mem_usage(filepaths, writepth, axis, max_arg, is_sparse)\n", + " mem_increment = get_mem_usage(filepaths, writepth, axis, max_arg, is_sparse)\n", " # force garbage collection again\n", " gc.collect()\n", "\n", " print(\"Concatenation finished\")\n", - " print(\"Max memory increase:\", int(mem_increment), \"MiB\")\n", + " print(\"Max memory increase:\", int(mem_increment)//(2**16), \"MiB\")\n", " print(\"--------------------------------------------------\")\n", - " results[array_type, axis] = {\"max_mem\": max_mem, \"increment\": mem_increment}\n", + " results[array_type, axis] = mem_increment\n", " return results\n" ] }, @@ -611,25 +594,24 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 6 files with sizes:\n", - "['109MiB', '101MiB', '78MiB', '108MiB', '78MiB', '78MiB']\n", - "Total size: 554MiB\n", + "['78MiB', '106MiB', '94MiB', '94MiB', '78MiB', '78MiB']\n", + "Total size: 531MiB\n", "Concatenation finished\n", - "Max memory increase: 160 MiB\n", + "Max memory increase: 275 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 6 files with sizes:\n", - "['78MiB', '78MiB', '78MiB', '97MiB', '97MiB', '104MiB']\n", - "Total size: 534MiB\n", + "['96MiB', '101MiB', '104MiB', '78MiB', '78MiB', '78MiB']\n", + "Total size: 538MiB\n", "Concatenation finished\n", - "Max memory increase: 159 MiB\n", + "Max memory increase: 285 MiB\n", "--------------------------------------------------\n" ] }, { "data": { "text/plain": [ - "{('sparse', 0): {'max_mem': 354.98046875, 'increment': 160.40625},\n", - " ('sparse', 1): {'max_mem': 370.18359375, 'increment': 159.203125}}" + "{('sparse', 0): 18059385, ('sparse', 1): 18724742}" ] }, "execution_count": 12, @@ -653,25 +635,38 @@ "text": [ "Dataset: dense 0\n", "Concatenating 6 files with sizes:\n", - "['891MiB', '668MiB', '835MiB', '668MiB', '822MiB', '668MiB']\n", - "Total size: 4556MiB\n", + "['913MiB', '668MiB', '897MiB', '668MiB', '668MiB', '836MiB']\n", + "Total size: 4653MiB\n", "Concatenation finished\n", - "Max memory increase: 861 MiB\n", + "Max memory increase: 265 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 6 files with sizes:\n", - "['910MiB', '668MiB', '843MiB', '668MiB', '668MiB', '923MiB']\n", - "Total size: 4684MiB\n", + "['668MiB', '886MiB', '820MiB', '870MiB', '668MiB', '668MiB']\n", + "Total size: 4584MiB\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-09-14 20:17:47,477 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 1.40 GiB -- Worker memory limit: 1.95 GiB\n", + "2023-09-14 20:17:49,425 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 1.39 GiB -- Worker memory limit: 1.95 GiB\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "Concatenation finished\n", - "Max memory increase: 1064 MiB\n", + "Max memory increase: 261 MiB\n", "--------------------------------------------------\n" ] }, { "data": { "text/plain": [ - "{('dense', 0): {'max_mem': 1084.64453125, 'increment': 861.359375},\n", - " ('dense', 1): {'max_mem': 1295.5859375, 'increment': 1064.3671875}}" + "{('dense', 0): 17388375, ('dense', 1): 17122289}" ] }, "execution_count": 13, @@ -680,7 +675,7 @@ } ], "source": [ - "dataset_max_mem(max_arg=\"1000MiB\", datasets=datasets_aligned, array_type='dense')" + "dataset_max_mem(max_arg=\"2000MiB\", datasets=datasets_aligned, array_type='dense')" ] }, { @@ -709,25 +704,24 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['97MiB', '104MiB', '109MiB', '101MiB', '78MiB', '108MiB', '78MiB', '97MiB', '78MiB']\n", - "Total size: 853MiB\n", + "['78MiB', '101MiB', '106MiB', '94MiB', '94MiB', '96MiB', '78MiB', '78MiB', '104MiB']\n", + "Total size: 834MiB\n", "Concatenation finished\n", - "Max memory increase: 467 MiB\n", + "Max memory increase: 4532 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['109MiB', '101MiB', '78MiB', '78MiB', '78MiB', '97MiB', '97MiB', '108MiB', '104MiB']\n", - "Total size: 853MiB\n", + "['96MiB', '94MiB', '106MiB', '101MiB', '104MiB', '78MiB', '78MiB', '94MiB', '78MiB']\n", + "Total size: 834MiB\n", "Concatenation finished\n", - "Max memory increase: 631 MiB\n", + "Max memory increase: 7038 MiB\n", "--------------------------------------------------\n" ] }, { "data": { "text/plain": [ - "{('sparse', 0): {'max_mem': 705.9765625, 'increment': 467.0078125},\n", - " ('sparse', 1): {'max_mem': 879.07421875, 'increment': 631.796875}}" + "{('sparse', 0): 297051534, ('sparse', 1): 461278993}" ] }, "execution_count": 14, @@ -751,25 +745,24 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['97MiB', '104MiB', '109MiB', '101MiB', '78MiB', '108MiB', '78MiB', '97MiB', '78MiB']\n", - "Total size: 853MiB\n", + "['78MiB', '101MiB', '106MiB', '94MiB', '94MiB', '96MiB', '78MiB', '78MiB', '104MiB']\n", + "Total size: 834MiB\n", "Concatenation finished\n", - "Max memory increase: 204 MiB\n", + "Max memory increase: 450 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['109MiB', '101MiB', '78MiB', '78MiB', '78MiB', '97MiB', '97MiB', '108MiB', '104MiB']\n", - "Total size: 853MiB\n", + "['96MiB', '94MiB', '106MiB', '101MiB', '104MiB', '78MiB', '78MiB', '94MiB', '78MiB']\n", + "Total size: 834MiB\n", "Concatenation finished\n", - "Max memory increase: 205 MiB\n", + "Max memory increase: 440 MiB\n", "--------------------------------------------------\n" ] }, { "data": { "text/plain": [ - "{('sparse', 0): {'max_mem': 455.08984375, 'increment': 204.109375},\n", - " ('sparse', 1): {'max_mem': 458.26953125, 'increment': 205.38671875}}" + "{('sparse', 0): 29550220, ('sparse', 1): 28856550}" ] }, "execution_count": 15, @@ -793,35 +786,563 @@ "text": [ "Dataset: dense 0\n", "Concatenating 9 files with sizes:\n", - "['891MiB', '910MiB', '668MiB', '923MiB', '835MiB', '668MiB', '843MiB', '822MiB', '668MiB']\n", - "Total size: 7233MiB\n", - "Concatenation finished\n", - "Max memory increase: 1056 MiB\n", - "--------------------------------------------------\n", - "Dataset: dense 1\n", - "Concatenating 9 files with sizes:\n", - "['891MiB', '910MiB', '668MiB', '923MiB', '835MiB', '668MiB', '843MiB', '822MiB', '668MiB']\n", - "Total size: 7233MiB\n", - "Concatenation finished\n", - "Max memory increase: 969 MiB\n", - "--------------------------------------------------\n" + "['913MiB', '668MiB', '886MiB', '870MiB', '820MiB', '897MiB', '668MiB', '668MiB', '836MiB']\n", + "Total size: 7231MiB\n" ] }, { - "data": { - "text/plain": [ - "{('dense', 0): {'max_mem': 1308.2265625, 'increment': 1056.375},\n", - " ('dense', 1): {'max_mem': 1226.05078125, 'increment': 969.38671875}}" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-09-14 20:28:45,310 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 791.22 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:45,392 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 761.39 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:45,488 - distributed.worker.memory - WARNING - Worker is at 82% memory usage. Pausing worker. Process memory: 826.38 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:45,563 - distributed.worker.memory - WARNING - Worker is at 80% memory usage. Pausing worker. Process memory: 801.66 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:45,564 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 801.66 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:45,785 - distributed.worker.memory - WARNING - Worker is at 81% memory usage. Pausing worker. Process memory: 819.31 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:45,964 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60714 (pid=13536) exceeded 95% memory budget. Restarting...\n", + "2023-09-14 20:28:46,000 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 761.17 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:46,041 - distributed.nanny - WARNING - Restarting worker\n", + "2023-09-14 20:28:46,261 - distributed.worker.memory - WARNING - Worker is at 84% memory usage. Pausing worker. Process memory: 844.55 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:47,443 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 738.91 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:47,975 - distributed.worker.memory - WARNING - Worker is at 84% memory usage. Pausing worker. Process memory: 844.11 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:55,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.41 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:55,454 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.44 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:56,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.62 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:28:57,476 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:05,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.58 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:05,554 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.50 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:06,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.66 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:07,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:15,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.59 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:15,554 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.52 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:16,157 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.66 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:17,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:25,456 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.59 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:25,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.61 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:26,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.67 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:27,774 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:35,556 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.59 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:35,755 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.62 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:36,258 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.70 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:37,774 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:45,556 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.77 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:45,757 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.62 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:46,262 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.70 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:47,873 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:55,556 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.78 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:55,757 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.62 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:56,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.70 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:29:57,874 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:05,656 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.80 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:05,758 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.66 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:06,458 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.73 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:07,874 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:15,656 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.80 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:15,759 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.66 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:16,558 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.73 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:17,976 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:25,759 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.81 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:25,855 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.69 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:26,658 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.75 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:27,977 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:35,760 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.84 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:35,954 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.75 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:36,761 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.78 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:38,074 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:45,856 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.84 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:46,054 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.75 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:46,858 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.78 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:48,174 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:55,956 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.88 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:56,054 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.75 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:56,958 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.80 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:30:58,274 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:05,956 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.91 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:06,054 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.81 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:06,958 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.66 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:08,274 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:15,956 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.91 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:16,154 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.83 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:17,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.67 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:18,274 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:26,056 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.94 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:26,258 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.83 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:27,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.67 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:28,374 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:36,156 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.95 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:36,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.88 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:37,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.70 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:38,477 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:46,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.98 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:46,354 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.88 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:47,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.72 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:48,573 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:56,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.00 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:56,354 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.89 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:57,262 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.72 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:31:58,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:06,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.02 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:06,454 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.91 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:07,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.77 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:08,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:16,454 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.94 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:16,456 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.05 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:17,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.77 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:18,774 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:26,554 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.94 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:26,555 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.05 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:27,458 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.78 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:28,874 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:36,654 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.95 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:36,656 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.09 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:37,558 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.81 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:38,977 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:46,760 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.09 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:46,760 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.97 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:47,658 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.81 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:49,074 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:56,854 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.98 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:56,856 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.09 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:57,761 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.83 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:32:59,173 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:06,954 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.00 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:06,955 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.14 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:07,857 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.86 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:09,174 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:16,956 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.03 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:16,957 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.14 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:17,858 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.88 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:19,274 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:27,054 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.03 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:27,055 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.16 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:27,958 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.88 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:29,374 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:37,056 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.19 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:37,154 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.05 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:37,958 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.92 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:39,476 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:47,056 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.20 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:47,258 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.06 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:48,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.94 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:49,477 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:57,156 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.20 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:57,354 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.08 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:58,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.94 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:33:59,477 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:07,257 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.23 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:07,454 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.11 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:08,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.97 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:09,573 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:17,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.25 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:17,554 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.14 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:18,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.98 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:19,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:27,260 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.25 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:27,654 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.16 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:28,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.00 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:29,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:37,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.30 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:37,759 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.19 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:38,261 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.02 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:39,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:47,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.30 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:47,854 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.20 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:48,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.03 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:49,773 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:57,556 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.33 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:57,954 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.22 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:58,458 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.05 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:34:59,875 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:07,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.36 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:08,054 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.23 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:08,558 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.06 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:09,978 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:17,762 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.36 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:18,055 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.27 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:18,657 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.09 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:20,074 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:27,857 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.38 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:28,155 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.28 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:28,762 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.14 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:30,175 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:37,857 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.22 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:38,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.31 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:38,763 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.17 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:40,273 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:47,955 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.25 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:48,355 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.31 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:48,859 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.17 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:50,374 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:58,057 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.27 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:58,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.34 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:35:58,959 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.19 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:00,477 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:08,155 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.28 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:08,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.34 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:08,959 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.22 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:10,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:18,156 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.30 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:18,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.62 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:19,057 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.23 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:20,675 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:28,260 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.31 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:28,555 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.64 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:29,059 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.27 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:30,774 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:38,357 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.05 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:38,653 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.69 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:39,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.28 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:40,874 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:48,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.09 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:48,654 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.70 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:49,262 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.31 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:50,976 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:58,457 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.11 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:58,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.70 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:36:59,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.31 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:00,977 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:08,555 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.16 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:08,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.75 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:09,359 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.33 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:11,074 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:18,557 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.17 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:18,760 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.77 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:19,458 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.36 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:21,074 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:28,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.17 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:28,853 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.78 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:29,559 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.38 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:31,174 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:38,656 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.20 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:38,855 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.81 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:39,659 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.41 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:41,175 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:48,656 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.22 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:48,885 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.81 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:49,759 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.41 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:51,274 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:58,759 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.23 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:58,955 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.83 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:37:59,761 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.44 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:01,374 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:08,760 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.25 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:09,055 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.86 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:09,762 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.45 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:11,474 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:18,857 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.27 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:19,055 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.89 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:19,859 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.45 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:21,475 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:28,955 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.28 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:29,155 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.89 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:29,957 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.50 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:31,478 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:39,057 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.30 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:39,155 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.92 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:39,959 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.52 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:41,572 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:49,057 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.33 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:49,254 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.94 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:50,059 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.53 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:51,573 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:59,155 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.34 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:38:59,260 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.94 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:00,159 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.55 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:01,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:09,255 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.39 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:09,354 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.98 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:10,159 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.58 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:11,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:19,255 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.39 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:19,355 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 831.00 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:20,263 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.61 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:21,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:29,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.41 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:29,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 831.02 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:30,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.64 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:31,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:39,261 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.45 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:39,555 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 831.03 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:40,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.66 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:41,774 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:49,355 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.45 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:49,654 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 831.05 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:50,494 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.67 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:51,873 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:59,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.47 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:39:59,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 831.06 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:00,364 - distributed.worker.memory - WARNING - Worker is at 67% memory usage. Resuming worker. Process memory: 678.02 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:00,364 - distributed.worker.memory - WARNING - Worker is at 72% memory usage. Resuming worker. Process memory: 723.34 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:00,364 - distributed.worker.memory - WARNING - Worker is at 56% memory usage. Resuming worker. Process memory: 566.83 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:00,875 - distributed.worker.memory - WARNING - Worker is at 48% memory usage. Resuming worker. Process memory: 485.89 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:01,377 - distributed.worker.memory - WARNING - Worker is at 80% memory usage. Pausing worker. Process memory: 807.39 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:01,377 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 807.39 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:01,745 - distributed.worker.memory - WARNING - Worker is at 83% memory usage. Pausing worker. Process memory: 836.91 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:01,863 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60734 (pid=13547) exceeded 95% memory budget. Restarting...\n", + "2023-09-14 20:40:01,897 - distributed.worker - ERROR - Worker stream died during communication: tcp://127.0.0.1:60734\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 234, in read\n", + " n = await stream.read_into(chunk)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + "tornado.iostream.StreamClosedError: Stream is closed\n", + "\n", + "The above exception was the direct cause of the following exception:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2055, in gather_dep\n", + " response = await get_data_from_worker(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2848, in get_data_from_worker\n", + " response = await send_recv(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/core.py\", line 1106, in send_recv\n", + " response = await comm.read(deserializers=deserializers)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", + " convert_stream_closed_error(self, e)\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 143, in convert_stream_closed_error\n", + " raise CommClosedError(f\"in {obj}: {exc}\") from exc\n", + "distributed.comm.core.CommClosedError: in Worker for gather local=tcp://127.0.0.1:60854 remote=tcp://127.0.0.1:60734>: Stream is closed\n", + "2023-09-14 20:40:01,938 - distributed.nanny - WARNING - Restarting worker\n", + "2023-09-14 20:40:02,082 - distributed.worker.memory - WARNING - Worker is at 81% memory usage. Pausing worker. Process memory: 814.42 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:02,170 - distributed.worker.memory - WARNING - Worker is at 71% memory usage. Resuming worker. Process memory: 717.06 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:02,172 - distributed.worker.memory - WARNING - Worker is at 74% memory usage. Resuming worker. Process memory: 749.77 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:02,455 - distributed.worker.memory - WARNING - Worker is at 81% memory usage. Pausing worker. Process memory: 813.73 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:02,663 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60715 (pid=13534) exceeded 95% memory budget. Restarting...\n", + "2023-09-14 20:40:02,706 - distributed.worker - ERROR - Worker stream died during communication: tcp://127.0.0.1:60715\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 224, in read\n", + " frames_nbytes = await stream.read_bytes(fmt_size)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + "tornado.iostream.StreamClosedError: Stream is closed\n", + "\n", + "The above exception was the direct cause of the following exception:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2055, in gather_dep\n", + " response = await get_data_from_worker(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2848, in get_data_from_worker\n", + " response = await send_recv(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/core.py\", line 1106, in send_recv\n", + " response = await comm.read(deserializers=deserializers)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", + " convert_stream_closed_error(self, e)\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 143, in convert_stream_closed_error\n", + " raise CommClosedError(f\"in {obj}: {exc}\") from exc\n", + "distributed.comm.core.CommClosedError: in Worker for gather local=tcp://127.0.0.1:60852 remote=tcp://127.0.0.1:60715>: Stream is closed\n", + "2023-09-14 20:40:02,753 - distributed.nanny - WARNING - Restarting worker\n", + "2023-09-14 20:40:02,759 - distributed.worker.memory - WARNING - Worker is at 82% memory usage. Pausing worker. Process memory: 820.69 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:02,970 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60716 (pid=13537) exceeded 95% memory budget. Restarting...\n", + "2023-09-14 20:40:03,015 - distributed.worker - ERROR - failed during get data with tcp://127.0.0.1:60717 -> tcp://127.0.0.1:60716\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 962, in _handle_write\n", + " num_bytes = self.write_to_fd(self._write_buffer.peek(size))\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 1124, in write_to_fd\n", + " return self.socket.send(data) # type: ignore\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + "BrokenPipeError: [Errno 32] Broken pipe\n", + "\n", + "The above exception was the direct cause of the following exception:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 1782, in get_data\n", + " response = await comm.read(deserializers=serializers)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", + " convert_stream_closed_error(self, e)\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 141, in convert_stream_closed_error\n", + " raise CommClosedError(f\"in {obj}: {exc.__class__.__name__}: {exc}\") from exc\n", + "distributed.comm.core.CommClosedError: in : BrokenPipeError: [Errno 32] Broken pipe\n", + "2023-09-14 20:40:03,034 - distributed.nanny - WARNING - Restarting worker\n", + "2023-09-14 20:40:04,258 - distributed.worker.memory - WARNING - Worker is at 64% memory usage. Resuming worker. Process memory: 642.12 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:04,773 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 690.38 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:04,906 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 700.77 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:04,910 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 653.48 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:05,377 - distributed.worker.memory - WARNING - Worker is at 82% memory usage. Pausing worker. Process memory: 823.48 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:05,469 - distributed.worker.memory - WARNING - Worker is at 92% memory usage. Pausing worker. Process memory: 0.91 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:06,220 - distributed.worker.memory - WARNING - Worker is at 64% memory usage. Resuming worker. Process memory: 640.80 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:06,229 - distributed.worker.memory - WARNING - Worker is at 93% memory usage. Pausing worker. Process memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:06,271 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60859 (pid=13685) exceeded 95% memory budget. Restarting...\n", + "2023-09-14 20:40:06,293 - distributed.worker.memory - WARNING - Worker is at 73% memory usage. Resuming worker. Process memory: 732.48 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:06,293 - distributed.worker - ERROR - failed during get data with tcp://127.0.0.1:60860 -> tcp://127.0.0.1:60859\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 962, in _handle_write\n", + " num_bytes = self.write_to_fd(self._write_buffer.peek(size))\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 1124, in write_to_fd\n", + " return self.socket.send(data) # type: ignore\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + "BrokenPipeError: [Errno 32] Broken pipe\n", + "\n", + "The above exception was the direct cause of the following exception:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 1782, in get_data\n", + " response = await comm.read(deserializers=serializers)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", + " convert_stream_closed_error(self, e)\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 141, in convert_stream_closed_error\n", + " raise CommClosedError(f\"in {obj}: {exc.__class__.__name__}: {exc}\") from exc\n", + "distributed.comm.core.CommClosedError: in : BrokenPipeError: [Errno 32] Broken pipe\n", + "2023-09-14 20:40:06,325 - distributed.nanny - WARNING - Restarting worker\n", + "2023-09-14 20:40:06,574 - distributed.worker - ERROR - Worker stream died during communication: tcp://127.0.0.1:60859\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 234, in read\n", + " n = await stream.read_into(chunk)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + "tornado.iostream.StreamClosedError: Stream is closed\n", + "\n", + "The above exception was the direct cause of the following exception:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2055, in gather_dep\n", + " response = await get_data_from_worker(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2848, in get_data_from_worker\n", + " response = await send_recv(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/core.py\", line 1106, in send_recv\n", + " response = await comm.read(deserializers=deserializers)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", + " convert_stream_closed_error(self, e)\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 143, in convert_stream_closed_error\n", + " raise CommClosedError(f\"in {obj}: {exc}\") from exc\n", + "distributed.comm.core.CommClosedError: in Worker for gather local=tcp://127.0.0.1:60877 remote=tcp://127.0.0.1:60859>: Stream is closed\n", + "2023-09-14 20:40:06,887 - distributed.worker.memory - WARNING - Worker is at 80% memory usage. Pausing worker. Process memory: 808.44 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:06,891 - distributed.worker.memory - WARNING - Worker is at 80% memory usage. Pausing worker. Process memory: 806.72 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:07,063 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60717 (pid=13535) exceeded 95% memory budget. Restarting...\n", + "2023-09-14 20:40:07,093 - distributed.worker - ERROR - Worker stream died during communication: tcp://127.0.0.1:60717\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 861, in _read_to_buffer\n", + " bytes_read = self.read_from_fd(buf)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 1116, in read_from_fd\n", + " return self.socket.recv_into(buf, len(buf))\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + "ConnectionResetError: [Errno 54] Connection reset by peer\n", + "\n", + "The above exception was the direct cause of the following exception:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2055, in gather_dep\n", + " response = await get_data_from_worker(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2848, in get_data_from_worker\n", + " response = await send_recv(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/core.py\", line 1106, in send_recv\n", + " response = await comm.read(deserializers=deserializers)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", + " convert_stream_closed_error(self, e)\n", + " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 141, in convert_stream_closed_error\n", + " raise CommClosedError(f\"in {obj}: {exc.__class__.__name__}: {exc}\") from exc\n", + "distributed.comm.core.CommClosedError: in Worker for gather local=tcp://127.0.0.1:60871 remote=tcp://127.0.0.1:60717>: ConnectionResetError: [Errno 54] Connection reset by peer\n", + "2023-09-14 20:40:07,224 - distributed.diskutils - ERROR - Failed to remove '/var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/dask-scratch-space/worker-fcdpo2g5/storage/%28%27array-38f3e1b57e3216f5f502d5ff39b51070%27%2C%200%2C%200%29#41' (failed in ): [Errno 2] No such file or directory: '%28%27array-38f3e1b57e3216f5f502d5ff39b51070%27%2C%200%2C%200%29#41'\n", + "2023-09-14 20:40:07,277 - distributed.nanny - WARNING - Restarting worker\n", + "2023-09-14 20:40:07,685 - distributed.worker.memory - WARNING - Worker is at 80% memory usage. Pausing worker. Process memory: 803.02 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:12,550 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60860 (pid=13683) exceeded 95% memory budget. Restarting...\n", + "2023-09-14 20:40:12,583 - distributed.nanny - WARNING - Restarting worker\n" + ] + }, + { + "ename": "KilledWorker", + "evalue": "Attempted to run task ('array-b7ec564ee1accde526159f8bdd84a273', 3, 0) on 3 different workers, but all those workers died while running it. The last worker that attempt to run the task was tcp://127.0.0.1:60717. Inspecting worker logs is often a good next step to diagnose what went wrong. For more information see https://distributed.dask.org/en/stable/killed.html.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKilledWorker\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[16], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m dataset_max_mem(max_arg\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39m1000MiB\u001b[39;49m\u001b[39m\"\u001b[39;49m, datasets\u001b[39m=\u001b[39;49mdatasets_unaligned, array_type\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39mdense\u001b[39;49m\u001b[39m'\u001b[39;49m)\n", + "Cell \u001b[0;32mIn[11], line 65\u001b[0m, in \u001b[0;36mdataset_max_mem\u001b[0;34m(max_arg, datasets, array_type)\u001b[0m\n\u001b[1;32m 63\u001b[0m gc\u001b[39m.\u001b[39mcollect()\n\u001b[1;32m 64\u001b[0m \u001b[39m# perform profiling\u001b[39;00m\n\u001b[0;32m---> 65\u001b[0m mem_increment \u001b[39m=\u001b[39m get_mem_usage(filepaths, writepth, axis, max_arg, is_sparse)\n\u001b[1;32m 66\u001b[0m \u001b[39m# force garbage collection again\u001b[39;00m\n\u001b[1;32m 67\u001b[0m gc\u001b[39m.\u001b[39mcollect()\n", + "Cell \u001b[0;32mIn[11], line 34\u001b[0m, in \u001b[0;36mget_mem_usage\u001b[0;34m(filepaths, writepth, axis, max_arg, is_sparse)\u001b[0m\n\u001b[1;32m 31\u001b[0m stat_file\u001b[39m.\u001b[39munlink()\n\u001b[1;32m 33\u001b[0m \u001b[39mwith\u001b[39;00m memray\u001b[39m.\u001b[39mTracker(stat_file, follow_fork\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m, native_traces\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m, trace_python_allocators\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m) \u001b[39mas\u001b[39;00m tracker:\n\u001b[0;32m---> 34\u001b[0m concat_on_disk(\u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mconcat_kwargs)\n\u001b[1;32m 36\u001b[0m \u001b[39mwith\u001b[39;00m memray\u001b[39m.\u001b[39mFileReader(stat_file) \u001b[39mas\u001b[39;00m reader: \n\u001b[1;32m 37\u001b[0m max_mem \u001b[39m=\u001b[39m reader\u001b[39m.\u001b[39mmetadata\u001b[39m.\u001b[39mpeak_memory\n", + "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/experimental/merge.py:584\u001b[0m, in \u001b[0;36mconcat_on_disk\u001b[0;34m(in_files, out_file, overwrite, max_loaded_elems, axis, join, merge, uns_merge, label, keys, index_unique, fill_value, pairwise)\u001b[0m\n\u001b[1;32m 580\u001b[0m _write_alt_mapping(groups, output_group, alt_dim, alt_indices, merge)\n\u001b[1;32m 582\u001b[0m \u001b[39m# Write X\u001b[39;00m\n\u001b[0;32m--> 584\u001b[0m _write_concat_arrays(\n\u001b[1;32m 585\u001b[0m arrays\u001b[39m=\u001b[39;49mXs,\n\u001b[1;32m 586\u001b[0m output_group\u001b[39m=\u001b[39;49moutput_group,\n\u001b[1;32m 587\u001b[0m output_path\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mX\u001b[39;49m\u001b[39m\"\u001b[39;49m,\n\u001b[1;32m 588\u001b[0m axis\u001b[39m=\u001b[39;49maxis,\n\u001b[1;32m 589\u001b[0m reindexers\u001b[39m=\u001b[39;49mreindexers,\n\u001b[1;32m 590\u001b[0m fill_value\u001b[39m=\u001b[39;49mfill_value,\n\u001b[1;32m 591\u001b[0m max_loaded_elems\u001b[39m=\u001b[39;49mmax_loaded_elems,\n\u001b[1;32m 592\u001b[0m )\n\u001b[1;32m 594\u001b[0m \u001b[39m# Write Layers and {dim}m\u001b[39;00m\n\u001b[1;32m 595\u001b[0m mapping_names \u001b[39m=\u001b[39m [\n\u001b[1;32m 596\u001b[0m (\n\u001b[1;32m 597\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mdim\u001b[39m}\u001b[39;00m\u001b[39mm\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 602\u001b[0m (\u001b[39m\"\u001b[39m\u001b[39mlayers\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39mNone\u001b[39;00m, axis, reindexers),\n\u001b[1;32m 603\u001b[0m ]\n", + "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/experimental/merge.py:307\u001b[0m, in \u001b[0;36m_write_concat_arrays\u001b[0;34m(arrays, output_group, output_path, max_loaded_elems, axis, reindexers, fill_value, join)\u001b[0m\n\u001b[1;32m 303\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 304\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mConcat of following not supported: \u001b[39m\u001b[39m{\u001b[39;00m[a\u001b[39m.\u001b[39mformat\u001b[39m \u001b[39m\u001b[39mfor\u001b[39;00m\u001b[39m \u001b[39ma\u001b[39m \u001b[39m\u001b[39min\u001b[39;00m\u001b[39m \u001b[39marrays]\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\n\u001b[1;32m 305\u001b[0m )\n\u001b[1;32m 306\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 307\u001b[0m write_concat_dense(\n\u001b[1;32m 308\u001b[0m arrays, output_group, output_path, axis, reindexers, fill_value\n\u001b[1;32m 309\u001b[0m )\n", + "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/experimental/merge.py:187\u001b[0m, in \u001b[0;36mwrite_concat_dense\u001b[0;34m(arrays, output_group, output_path, axis, reindexers, fill_value)\u001b[0m\n\u001b[1;32m 178\u001b[0m darrays \u001b[39m=\u001b[39m (da\u001b[39m.\u001b[39mfrom_array(a, chunks\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mauto\u001b[39m\u001b[39m\"\u001b[39m) \u001b[39mfor\u001b[39;00m a \u001b[39min\u001b[39;00m arrays)\n\u001b[1;32m 180\u001b[0m res \u001b[39m=\u001b[39m da\u001b[39m.\u001b[39mconcatenate(\n\u001b[1;32m 181\u001b[0m [\n\u001b[1;32m 182\u001b[0m ri(a, axis\u001b[39m=\u001b[39m\u001b[39m1\u001b[39m \u001b[39m-\u001b[39m axis, fill_value\u001b[39m=\u001b[39mfill_value)\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 185\u001b[0m axis\u001b[39m=\u001b[39maxis,\n\u001b[1;32m 186\u001b[0m )\n\u001b[0;32m--> 187\u001b[0m write_elem(output_group, output_path, res)\n\u001b[1;32m 188\u001b[0m output_group[output_path]\u001b[39m.\u001b[39mattrs\u001b[39m.\u001b[39mupdate(\n\u001b[1;32m 189\u001b[0m {\u001b[39m\"\u001b[39m\u001b[39mencoding-type\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39marray\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39m\"\u001b[39m\u001b[39mencoding-version\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39m0.2.0\u001b[39m\u001b[39m\"\u001b[39m}\n\u001b[1;32m 190\u001b[0m )\n", + "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/specs/registry.py:368\u001b[0m, in \u001b[0;36mwrite_elem\u001b[0;34m(store, k, elem, dataset_kwargs)\u001b[0m\n\u001b[1;32m 344\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrite_elem\u001b[39m(\n\u001b[1;32m 345\u001b[0m store: GroupStorageType,\n\u001b[1;32m 346\u001b[0m k: \u001b[39mstr\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 349\u001b[0m dataset_kwargs: Mapping \u001b[39m=\u001b[39m MappingProxyType({}),\n\u001b[1;32m 350\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 351\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 352\u001b[0m \u001b[39m Write an element to a storage group using anndata encoding.\u001b[39;00m\n\u001b[1;32m 353\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 366\u001b[0m \u001b[39m E.g. for zarr this would be `chunks`, `compressor`.\u001b[39;00m\n\u001b[1;32m 367\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 368\u001b[0m Writer(_REGISTRY)\u001b[39m.\u001b[39;49mwrite_elem(store, k, elem, dataset_kwargs\u001b[39m=\u001b[39;49mdataset_kwargs)\n", + "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/utils.py:242\u001b[0m, in \u001b[0;36mreport_write_key_on_error..func_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[1;32m 241\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[0;32m--> 242\u001b[0m re_raise_error(e, elem, key, \u001b[39m\"\u001b[39;49m\u001b[39mwrit\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n", + "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/utils.py:180\u001b[0m, in \u001b[0;36mre_raise_error\u001b[0;34m(e, elem, key, op)\u001b[0m\n\u001b[1;32m 175\u001b[0m parent \u001b[39m=\u001b[39m _get_parent(elem)\n\u001b[1;32m 176\u001b[0m add_note(\n\u001b[1;32m 177\u001b[0m e,\n\u001b[1;32m 178\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mError raised while \u001b[39m\u001b[39m{\u001b[39;00mop\u001b[39m}\u001b[39;00m\u001b[39ming key \u001b[39m\u001b[39m{\u001b[39;00mkey\u001b[39m!r}\u001b[39;00m\u001b[39m of \u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mtype\u001b[39m(elem)\u001b[39m}\u001b[39;00m\u001b[39m to \u001b[39m\u001b[39m\"\u001b[39m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mparent\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 179\u001b[0m )\n\u001b[0;32m--> 180\u001b[0m \u001b[39mraise\u001b[39;00m e\n", + "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/utils.py:240\u001b[0m, in \u001b[0;36mreport_write_key_on_error..func_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 238\u001b[0m \u001b[39mbreak\u001b[39;00m\n\u001b[1;32m 239\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 240\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 241\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[1;32m 242\u001b[0m re_raise_error(e, elem, key, \u001b[39m\"\u001b[39m\u001b[39mwrit\u001b[39m\u001b[39m\"\u001b[39m)\n", + "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/specs/registry.py:326\u001b[0m, in \u001b[0;36mWriter.write_elem\u001b[0;34m(self, store, k, elem, dataset_kwargs, modifiers)\u001b[0m\n\u001b[1;32m 317\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcallback(\n\u001b[1;32m 318\u001b[0m write_func,\n\u001b[1;32m 319\u001b[0m store,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 323\u001b[0m iospec\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mregistry\u001b[39m.\u001b[39mget_spec(elem),\n\u001b[1;32m 324\u001b[0m )\n\u001b[1;32m 325\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 326\u001b[0m \u001b[39mreturn\u001b[39;00m write_func(store, k, elem, dataset_kwargs\u001b[39m=\u001b[39;49mdataset_kwargs)\n", + "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/specs/registry.py:54\u001b[0m, in \u001b[0;36mwrite_spec..decorator..wrapper\u001b[0;34m(g, k, *args, **kwargs)\u001b[0m\n\u001b[1;32m 52\u001b[0m \u001b[39m@wraps\u001b[39m(func)\n\u001b[1;32m 53\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrapper\u001b[39m(g, k, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[0;32m---> 54\u001b[0m result \u001b[39m=\u001b[39m func(g, k, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 55\u001b[0m g[k]\u001b[39m.\u001b[39mattrs\u001b[39m.\u001b[39msetdefault(\u001b[39m\"\u001b[39m\u001b[39mencoding-type\u001b[39m\u001b[39m\"\u001b[39m, spec\u001b[39m.\u001b[39mencoding_type)\n\u001b[1;32m 56\u001b[0m g[k]\u001b[39m.\u001b[39mattrs\u001b[39m.\u001b[39msetdefault(\u001b[39m\"\u001b[39m\u001b[39mencoding-version\u001b[39m\u001b[39m\"\u001b[39m, spec\u001b[39m.\u001b[39mencoding_version)\n", + "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/specs/methods.py:355\u001b[0m, in \u001b[0;36mwrite_basic_dask_zarr\u001b[0;34m(f, k, elem, _writer, dataset_kwargs)\u001b[0m\n\u001b[1;32m 352\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mdask\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39marray\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mda\u001b[39;00m\n\u001b[1;32m 354\u001b[0m g \u001b[39m=\u001b[39m f\u001b[39m.\u001b[39mrequire_dataset(k, shape\u001b[39m=\u001b[39melem\u001b[39m.\u001b[39mshape, dtype\u001b[39m=\u001b[39melem\u001b[39m.\u001b[39mdtype, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mdataset_kwargs)\n\u001b[0;32m--> 355\u001b[0m da\u001b[39m.\u001b[39;49mstore(elem, g, lock\u001b[39m=\u001b[39;49mGLOBAL_LOCK)\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.11/site-packages/dask/array/core.py:1236\u001b[0m, in \u001b[0;36mstore\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 1234\u001b[0m \u001b[39melif\u001b[39;00m compute:\n\u001b[1;32m 1235\u001b[0m store_dsk \u001b[39m=\u001b[39m HighLevelGraph(layers, dependencies)\n\u001b[0;32m-> 1236\u001b[0m compute_as_if_collection(Array, store_dsk, map_keys, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 1237\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[1;32m 1239\u001b[0m \u001b[39melse\u001b[39;00m:\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.11/site-packages/dask/base.py:369\u001b[0m, in \u001b[0;36mcompute_as_if_collection\u001b[0;34m(cls, dsk, keys, scheduler, get, **kwargs)\u001b[0m\n\u001b[1;32m 367\u001b[0m schedule \u001b[39m=\u001b[39m get_scheduler(scheduler\u001b[39m=\u001b[39mscheduler, \u001b[39mcls\u001b[39m\u001b[39m=\u001b[39m\u001b[39mcls\u001b[39m, get\u001b[39m=\u001b[39mget)\n\u001b[1;32m 368\u001b[0m dsk2 \u001b[39m=\u001b[39m optimization_function(\u001b[39mcls\u001b[39m)(dsk, keys, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m--> 369\u001b[0m \u001b[39mreturn\u001b[39;00m schedule(dsk2, keys, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/client.py:3266\u001b[0m, in \u001b[0;36mClient.get\u001b[0;34m(self, dsk, keys, workers, allow_other_workers, resources, sync, asynchronous, direct, retries, priority, fifo_timeout, actors, **kwargs)\u001b[0m\n\u001b[1;32m 3264\u001b[0m should_rejoin \u001b[39m=\u001b[39m \u001b[39mFalse\u001b[39;00m\n\u001b[1;32m 3265\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m-> 3266\u001b[0m results \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mgather(packed, asynchronous\u001b[39m=\u001b[39;49masynchronous, direct\u001b[39m=\u001b[39;49mdirect)\n\u001b[1;32m 3267\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m 3268\u001b[0m \u001b[39mfor\u001b[39;00m f \u001b[39min\u001b[39;00m futures\u001b[39m.\u001b[39mvalues():\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/client.py:2392\u001b[0m, in \u001b[0;36mClient.gather\u001b[0;34m(self, futures, errors, direct, asynchronous)\u001b[0m\n\u001b[1;32m 2389\u001b[0m local_worker \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[1;32m 2391\u001b[0m \u001b[39mwith\u001b[39;00m shorten_traceback():\n\u001b[0;32m-> 2392\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49msync(\n\u001b[1;32m 2393\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_gather,\n\u001b[1;32m 2394\u001b[0m futures,\n\u001b[1;32m 2395\u001b[0m errors\u001b[39m=\u001b[39;49merrors,\n\u001b[1;32m 2396\u001b[0m direct\u001b[39m=\u001b[39;49mdirect,\n\u001b[1;32m 2397\u001b[0m local_worker\u001b[39m=\u001b[39;49mlocal_worker,\n\u001b[1;32m 2398\u001b[0m asynchronous\u001b[39m=\u001b[39;49masynchronous,\n\u001b[1;32m 2399\u001b[0m )\n", + "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/client.py:2252\u001b[0m, in \u001b[0;36mClient._gather\u001b[0;34m(self, futures, errors, direct, local_worker)\u001b[0m\n\u001b[1;32m 2250\u001b[0m exc \u001b[39m=\u001b[39m CancelledError(key)\n\u001b[1;32m 2251\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m-> 2252\u001b[0m \u001b[39mraise\u001b[39;00m exception\u001b[39m.\u001b[39mwith_traceback(traceback)\n\u001b[1;32m 2253\u001b[0m \u001b[39mraise\u001b[39;00m exc\n\u001b[1;32m 2254\u001b[0m \u001b[39mif\u001b[39;00m errors \u001b[39m==\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mskip\u001b[39m\u001b[39m\"\u001b[39m:\n", + "\u001b[0;31mKilledWorker\u001b[0m: Attempted to run task ('array-b7ec564ee1accde526159f8bdd84a273', 3, 0) on 3 different workers, but all those workers died while running it. The last worker that attempt to run the task was tcp://127.0.0.1:60717. Inspecting worker logs is often a good next step to diagnose what went wrong. For more information see https://distributed.dask.org/en/stable/killed.html.", + "\u001b[0mError raised while writing key 'X' of to " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-09-14 20:40:14,989 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.31 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:25,489 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.42 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:35,589 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.53 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:45,589 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.55 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:40:55,589 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.56 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:45:48,988 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.56 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:45:58,988 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.58 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:46:08,988 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.59 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:46:18,993 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.59 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:46:29,088 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.56 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:46:39,095 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.58 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:46:49,188 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.58 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:46:59,293 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.59 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:47:09,387 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.09 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:47:19,388 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.12 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:47:29,388 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.31 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:47:39,488 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.36 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:47:49,588 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.36 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:47:59,588 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.38 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:48:09,688 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.41 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:48:19,789 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.42 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:48:29,791 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.52 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:48:39,887 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.56 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:48:49,987 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.59 MiB -- Worker memory limit: 0.98 GiB\n", + "2023-09-14 20:48:59,988 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.59 MiB -- Worker memory limit: 0.98 GiB\n" + ] } ], "source": [ "dataset_max_mem(max_arg=\"1000MiB\", datasets=datasets_unaligned, array_type='dense')" ] + }, + { + "cell_type": "markdown", + "id": "710508a7", + "metadata": {}, + "source": [ + "## (Optional) Cleaning Up Temporary Files\n", + "After all is done with your tests on this notebook you can cleanup the created files." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "05125e6e", + "metadata": {}, + "outputs": [], + "source": [ + "TMPDIR.cleanup()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53c85720", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -840,7 +1361,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.15" + "version": "3.11.5" } }, "nbformat": 4, From aaa6f7a6941199509b70ff1fdb3d50a298c11657 Mon Sep 17 00:00:00 2001 From: selmanozleyen Date: Fri, 15 Sep 2023 13:20:48 +0200 Subject: [PATCH 06/15] refactor --- concat-on-disk.ipynb | 851 +++++++------------------------------------ 1 file changed, 135 insertions(+), 716 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 998384f..3961511 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -49,9 +49,10 @@ "import tempfile\n", "import anndata\n", "import zarr\n", + "import logging\n", "import gc\n", "from anndata.experimental import concat_on_disk\n", - "from dask.distributed import Client, LocalCluster" + "from dask.distributed import Client, LocalCluster\n" ] }, { @@ -69,7 +70,11 @@ "- **Sizes**: The size of the array, indicating the number of elements.\n", "- **Densities**: Specifies the data density. 1 means dense numpy array.\n", "\n", - "These parameters will be utilized in subsequent sections to generate and analyze datasets." + "These parameters will be utilized in subsequent sections to generate and analyze datasets.\n", + "\n", + "### Ignoring Logs or Not\n", + "\n", + "By default we will ignore logs for the sake of readability. These are mostly reports given from dask distributed. However if one would like to see what is happening behind the dask distributed system, they can change the parameter dedicated to this below. These logs usually also refer to a dashboard link in order to monitor the workers." ] }, { @@ -79,10 +84,9 @@ "metadata": {}, "outputs": [], "source": [ - "\n", "# Directory where the data will be stored\n", "TMPDIR = tempfile.TemporaryDirectory()\n", - "OUTDIR = Path(TMPDIR.name)\n", + "OUTDIR = Path(TMPDIR.name)\n", "\n", "# Parameters that will influence the structure and size of our datasets:\n", "\n", @@ -96,7 +100,14 @@ "densities = [0.1, 1]\n", "\n", "# Number of times each array type will be created\n", - "num_runs = 3\n" + "num_runs = 3\n", + "\n", + "# Set to False to see the logs and warnings\n", + "ignore_logs = True\n", + "\n", + "dask_log = logging.CRITICAL\n", + "if not ignore_logs:\n", + " dask_log = logging.DEBUG" ] }, { @@ -124,25 +135,25 @@ "def create_adata(shape, X):\n", " # Shape of the data matrix\n", " M, N = shape\n", - " \n", + "\n", " # Generating observation and variable names\n", " obs_names = pd.Index(f\"cell{i}\" for i in range(shape[0]))\n", " var_names = pd.Index(f\"gene{i}\" for i in range(shape[1]))\n", - " \n", + "\n", " # Creating observation and variable dataframes\n", " obs = gen_typed_df(M, obs_names)\n", " var = gen_typed_df(N, var_names)\n", - " \n", + "\n", " # Renaming columns to ensure uniqueness\n", " obs.rename(columns=dict(cat=\"obs_cat\"), inplace=True)\n", " var.rename(columns=dict(cat=\"var_cat\"), inplace=True)\n", - " \n", + "\n", " # Constructing the AnnData object\n", " adata = anndata.AnnData(X, obs=obs, var=var)\n", " adata.var_names_make_unique()\n", " adata.obs_names_make_unique()\n", "\n", - " return adata\n" + " return adata" ] }, { @@ -166,11 +177,12 @@ "metadata": {}, "outputs": [], "source": [ - "\n", - "def array_creators(density: Literal[1] | float) -> dict[str, Callable[[np.ndarray | sparse.spmatrix], np.ndarray | sparse.spmatrix]]:\n", + "def array_creators(\n", + " density: Literal[1] | float,\n", + ") -> dict[str, Callable[[np.ndarray | sparse.spmatrix], np.ndarray | sparse.spmatrix]]:\n", " \"\"\"Returns a dictionary of array creators for the given density\"\"\"\n", " array_funcs = {}\n", - " \n", + "\n", " # Check if dataset is dense\n", " if density == 1:\n", " array_funcs[\"np\"] = lambda x: x.toarray()\n", @@ -207,7 +219,7 @@ " # Default dimensions\n", " M = size\n", " N = size\n", - " \n", + "\n", " # If the shape isn't square, adjust the dimensions\n", " if shape != \"square\":\n", " other_size = size + int(size * np.random.uniform(0.2, 0.4))\n", @@ -215,8 +227,8 @@ " M = other_size\n", " elif shape == \"tall\":\n", " N = other_size\n", - " \n", - " return M, N\n" + "\n", + " return M, N" ] }, { @@ -275,6 +287,7 @@ " zarr.consolidate_metadata(z.store)\n", " return f\"wrote {X.shape[0]}x{X.shape[1]}_{array_name} -> {str(outfile)}\\n\"\n", "\n", + "\n", "def write_temp_data(shapes, sizes, densities, num_runs, outdir, rewrite=False):\n", " outdir.mkdir(exist_ok=True)\n", " if rewrite:\n", @@ -288,21 +301,22 @@ "\n", " saved = []\n", " file_id = 1\n", - " for _, shape, size, density in itertools.product(range(num_runs), shapes, sizes, densities):\n", + " for _, shape, size, density in itertools.product(\n", + " range(num_runs), shapes, sizes, densities\n", + " ):\n", " array_funcs = array_creators(density)\n", " M, N = generate_dimensions(shape, size)\n", "\n", " X_base = sparse.random(M, N, density=density, format=\"csc\")\n", "\n", - " for array_name, array_func in array_funcs.items():\n", + " for array_name, array_func in array_funcs.items():\n", " X = array_func(X_base)\n", " report = write_data_to_zarr(X, shape, array_name, outdir, file_id)\n", - " print(report)\n", + " print(report, end=\"\")\n", " saved.append(report)\n", " file_id += 1\n", " with open(outdir / \"done.txt\", \"w\") as f:\n", - " f.writelines(saved)\n", - "\n" + " f.writelines(saved)" ] }, { @@ -315,67 +329,39 @@ "name": "stdout", "output_type": "stream", "text": [ - "wrote 12046x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/01_fat_csc.zarr\n", - "\n", - "wrote 12046x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/02_fat_csr.zarr\n", - "\n", - "wrote 13674x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/03_fat_np.zarr\n", - "\n", - "wrote 10000x13321_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/04_tall_csc.zarr\n", - "\n", - "wrote 10000x13321_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/05_tall_csr.zarr\n", - "\n", - "wrote 10000x13000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/06_tall_np.zarr\n", - "\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/07_square_csc.zarr\n", - "\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/08_square_csr.zarr\n", - "\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/09_square_np.zarr\n", - "\n", - "wrote 12061x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/10_fat_csc.zarr\n", - "\n", - "wrote 12061x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/11_fat_csr.zarr\n", - "\n", - "wrote 12500x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/12_fat_np.zarr\n", - "\n", - "wrote 10000x12942_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/13_tall_csc.zarr\n", - "\n", - "wrote 10000x12942_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/14_tall_csr.zarr\n", - "\n", - "wrote 10000x12252_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/15_tall_np.zarr\n", - "\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/16_square_csc.zarr\n", - "\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/17_square_csr.zarr\n", - "\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/18_square_np.zarr\n", - "\n", - "wrote 13523x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/19_fat_csc.zarr\n", - "\n", - "wrote 13523x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/20_fat_csr.zarr\n", - "\n", - "wrote 13401x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/21_fat_np.zarr\n", - "\n", - "wrote 10000x12267_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/22_tall_csc.zarr\n", - "\n", - "wrote 10000x12267_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/23_tall_csr.zarr\n", - "\n", - "wrote 10000x13240_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/24_tall_np.zarr\n", - "\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/25_square_csc.zarr\n", - "\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/26_square_csr.zarr\n", - "\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmpb_b5dts5/27_square_np.zarr\n", - "\n" + "wrote 13956x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/01_fat_csc.zarr\n", + "wrote 13956x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/02_fat_csr.zarr\n", + "wrote 12020x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/03_fat_np.zarr\n", + "wrote 10000x13248_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/04_tall_csc.zarr\n", + "wrote 10000x13248_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/05_tall_csr.zarr\n", + "wrote 10000x13044_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/06_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/07_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/08_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/09_square_np.zarr\n", + "wrote 13794x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/10_fat_csc.zarr\n", + "wrote 13794x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/11_fat_csr.zarr\n", + "wrote 12537x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/12_fat_np.zarr\n", + "wrote 10000x12676_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/13_tall_csc.zarr\n", + "wrote 10000x12676_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/14_tall_csr.zarr\n", + "wrote 10000x12373_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/15_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/16_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/17_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/18_square_np.zarr\n", + "wrote 12415x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/19_fat_csc.zarr\n", + "wrote 12415x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/20_fat_csr.zarr\n", + "wrote 12602x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/21_fat_np.zarr\n", + "wrote 10000x12350_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/22_tall_csc.zarr\n", + "wrote 10000x12350_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/23_tall_csr.zarr\n", + "wrote 10000x12491_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/24_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/25_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/26_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/27_square_np.zarr\n" ] } ], "source": [ - "\n", "# You can call the function like this:\n", - "write_temp_data(shapes, sizes, densities, num_runs, OUTDIR)\n" + "write_temp_data(shapes, sizes, densities, num_runs, OUTDIR)" ] }, { @@ -397,12 +383,12 @@ "source": [ "# files by properties\n", "filesets = {\n", - " 'nps' : set(OUTDIR.glob(\"*np*\")),\n", - " 'csrs' : set(OUTDIR.glob(\"*csr*\")),\n", - " 'cscs' : set(OUTDIR.glob(\"*csc*\")),\n", - " 'fats' : set(OUTDIR.glob(\"*fat*\")),\n", - " 'talls' : set(OUTDIR.glob(\"*tall*\")),\n", - " 'squares' : set(OUTDIR.glob(\"*square*\")),\n", + " \"nps\": set(OUTDIR.glob(\"*np*\")),\n", + " \"csrs\": set(OUTDIR.glob(\"*csr*\")),\n", + " \"cscs\": set(OUTDIR.glob(\"*csc*\")),\n", + " \"fats\": set(OUTDIR.glob(\"*fat*\")),\n", + " \"talls\": set(OUTDIR.glob(\"*tall*\")),\n", + " \"squares\": set(OUTDIR.glob(\"*square*\")),\n", "}" ] }, @@ -415,14 +401,14 @@ "source": [ "def create_datasets(filesets, requires_reindexing=False):\n", " data = dict()\n", - " for fileset, axis in ((\"cscs\",1), (\"csrs\",0), (\"nps\",0), (\"nps\",1)):\n", + " for fileset, axis in ((\"cscs\", 1), (\"csrs\", 0), (\"nps\", 0), (\"nps\", 1)):\n", " filepaths = filesets[fileset].copy()\n", " if not requires_reindexing:\n", - " tall_or_fat = filesets['talls'] if axis == 1 else filesets['fats']\n", - " filepaths = filepaths.intersection(tall_or_fat.union(filesets['squares']))\n", + " tall_or_fat = filesets[\"talls\"] if axis == 1 else filesets[\"fats\"]\n", + " filepaths = filepaths.intersection(tall_or_fat.union(filesets[\"squares\"]))\n", " fileset_name = \"dense\" if fileset == \"nps\" else \"sparse\"\n", " data[fileset_name, axis] = filepaths\n", - " return data " + " return data" ] }, { @@ -440,7 +426,9 @@ "metadata": {}, "outputs": [], "source": [ - "datasets_aligned, datasets_unaligned =create_datasets(filesets,requires_reindexing=False), create_datasets(filesets, requires_reindexing=True)" + "datasets_aligned, datasets_unaligned = create_datasets(\n", + " filesets, requires_reindexing=False\n", + "), create_datasets(filesets, requires_reindexing=True)" ] }, { @@ -501,33 +489,40 @@ " \"out_file\": writepth,\n", " \"axis\": axis,\n", " }\n", - "\n", + " global dask_log\n", " if not is_sparse:\n", - " cluster = LocalCluster(memory_limit=max_arg)\n", + " cluster = LocalCluster(\n", + " memory_limit=max_arg,\n", + " silence_logs=dask_log,\n", + " )\n", " client = Client(cluster)\n", " else:\n", " concat_kwargs[\"max_loaded_elems\"] = max_arg\n", - " \n", + "\n", " stat_file = OUTDIR / \"temp_stats.bin\"\n", " if stat_file.exists():\n", " stat_file.unlink()\n", "\n", - " with memray.Tracker(stat_file, follow_fork=True, native_traces=True, trace_python_allocators=True) as tracker:\n", + " with memray.Tracker(\n", + " stat_file, trace_python_allocators=True, native_traces=True, follow_fork=True\n", + " ):\n", " concat_on_disk(**concat_kwargs)\n", "\n", - " with memray.FileReader(stat_file) as reader: \n", + " with memray.FileReader(stat_file) as reader:\n", " max_mem = reader.metadata.peak_memory\n", + "\n", " if not is_sparse:\n", + " client.shutdown()\n", " client.close()\n", " cluster.close()\n", "\n", - " \n", " return max_mem\n", "\n", + "\n", "def dataset_max_mem(max_arg, datasets, array_type):\n", " results = {}\n", " is_sparse = array_type == \"sparse\"\n", - " for filepaths,axis in [(datasets[array_type,axis],axis) for axis in [0,1]]:\n", + " for filepaths, axis in [(datasets[array_type, axis], axis) for axis in [0, 1]]:\n", " writepth = OUTDIR / f\"{array_type}_{axis}.zarr\"\n", " if writepth.exists():\n", " shutil.rmtree(writepth)\n", @@ -536,10 +531,8 @@ " print(\"Dataset:\", array_type, axis)\n", " print(f\"Concatenating {len(filepaths)} files with sizes:\")\n", " sizes = get_arr_sizes(filepaths, is_sparse)\n", - " print([str(s//(2**20))+'MiB' for s in sizes])\n", + " print([str(s // (2**20)) + \"MiB\" for s in sizes])\n", " print(f\"Total size: {sum(sizes)//(2**20)}MiB\")\n", - " \n", - "\n", "\n", " # force garbage collection\n", " gc.collect()\n", @@ -549,10 +542,10 @@ " gc.collect()\n", "\n", " print(\"Concatenation finished\")\n", - " print(\"Max memory increase:\", int(mem_increment)//(2**16), \"MiB\")\n", + " print(\"Peak Memory:\", int(mem_increment) // (2**20), \"MiB\")\n", " print(\"--------------------------------------------------\")\n", " results[array_type, axis] = mem_increment\n", - " return results\n" + " return results" ] }, { @@ -594,33 +587,23 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 6 files with sizes:\n", - "['78MiB', '106MiB', '94MiB', '94MiB', '78MiB', '78MiB']\n", - "Total size: 531MiB\n", + "['78MiB', '108MiB', '78MiB', '97MiB', '109MiB', '78MiB']\n", + "Total size: 551MiB\n", "Concatenation finished\n", - "Max memory increase: 275 MiB\n", + "Peak Memory: 19 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 6 files with sizes:\n", - "['96MiB', '101MiB', '104MiB', '78MiB', '78MiB', '78MiB']\n", - "Total size: 538MiB\n", + "['78MiB', '78MiB', '104MiB', '99MiB', '78MiB', '97MiB']\n", + "Total size: 536MiB\n", "Concatenation finished\n", - "Max memory increase: 285 MiB\n", + "Peak Memory: 17 MiB\n", "--------------------------------------------------\n" ] - }, - { - "data": { - "text/plain": [ - "{('sparse', 0): 18059385, ('sparse', 1): 18724742}" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "dataset_max_mem(max_arg=1_000_000_000, datasets=datasets_aligned, array_type='sparse')" + "dataset_max_mem(max_arg=1_000_000_000, datasets=datasets_aligned, array_type=\"sparse\");" ] }, { @@ -635,47 +618,23 @@ "text": [ "Dataset: dense 0\n", "Concatenating 6 files with sizes:\n", - "['913MiB', '668MiB', '897MiB', '668MiB', '668MiB', '836MiB']\n", - "Total size: 4653MiB\n", + "['668MiB', '839MiB', '668MiB', '668MiB', '804MiB', '843MiB']\n", + "Total size: 4493MiB\n", "Concatenation finished\n", - "Max memory increase: 265 MiB\n", + "Peak Memory: 16 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 6 files with sizes:\n", - "['668MiB', '886MiB', '820MiB', '870MiB', '668MiB', '668MiB']\n", - "Total size: 4584MiB\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-09-14 20:17:47,477 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 1.40 GiB -- Worker memory limit: 1.95 GiB\n", - "2023-09-14 20:17:49,425 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 1.39 GiB -- Worker memory limit: 1.95 GiB\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "['873MiB', '668MiB', '668MiB', '836MiB', '668MiB', '828MiB']\n", + "Total size: 4545MiB\n", "Concatenation finished\n", - "Max memory increase: 261 MiB\n", + "Peak Memory: 16 MiB\n", "--------------------------------------------------\n" ] - }, - { - "data": { - "text/plain": [ - "{('dense', 0): 17388375, ('dense', 1): 17122289}" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "dataset_max_mem(max_arg=\"2000MiB\", datasets=datasets_aligned, array_type='dense')" + "dataset_max_mem(max_arg=\"4000MiB\", datasets=datasets_aligned, array_type=\"dense\");" ] }, { @@ -704,33 +663,23 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['78MiB', '101MiB', '106MiB', '94MiB', '94MiB', '96MiB', '78MiB', '78MiB', '104MiB']\n", - "Total size: 834MiB\n", + "['97MiB', '78MiB', '99MiB', '108MiB', '78MiB', '104MiB', '97MiB', '109MiB', '78MiB']\n", + "Total size: 852MiB\n", "Concatenation finished\n", - "Max memory increase: 4532 MiB\n", + "Peak Memory: 282 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['96MiB', '94MiB', '106MiB', '101MiB', '104MiB', '78MiB', '78MiB', '94MiB', '78MiB']\n", - "Total size: 834MiB\n", + "['78MiB', '78MiB', '104MiB', '109MiB', '108MiB', '99MiB', '97MiB', '78MiB', '97MiB']\n", + "Total size: 852MiB\n", "Concatenation finished\n", - "Max memory increase: 7038 MiB\n", + "Peak Memory: 450 MiB\n", "--------------------------------------------------\n" ] - }, - { - "data": { - "text/plain": [ - "{('sparse', 0): 297051534, ('sparse', 1): 461278993}" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "dataset_max_mem(max_arg=1_000_000_000, datasets=datasets_unaligned, array_type='sparse')" + "dataset_max_mem(max_arg=1_000_000_000, datasets=datasets_unaligned, array_type=\"sparse\");" ] }, { @@ -745,33 +694,23 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['78MiB', '101MiB', '106MiB', '94MiB', '94MiB', '96MiB', '78MiB', '78MiB', '104MiB']\n", - "Total size: 834MiB\n", + "['97MiB', '78MiB', '99MiB', '108MiB', '78MiB', '104MiB', '97MiB', '109MiB', '78MiB']\n", + "Total size: 852MiB\n", "Concatenation finished\n", - "Max memory increase: 450 MiB\n", + "Peak Memory: 28 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['96MiB', '94MiB', '106MiB', '101MiB', '104MiB', '78MiB', '78MiB', '94MiB', '78MiB']\n", - "Total size: 834MiB\n", + "['78MiB', '78MiB', '104MiB', '109MiB', '108MiB', '99MiB', '97MiB', '78MiB', '97MiB']\n", + "Total size: 852MiB\n", "Concatenation finished\n", - "Max memory increase: 440 MiB\n", + "Peak Memory: 28 MiB\n", "--------------------------------------------------\n" ] - }, - { - "data": { - "text/plain": [ - "{('sparse', 0): 29550220, ('sparse', 1): 28856550}" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "dataset_max_mem(max_arg=1_000_000, datasets=datasets_unaligned, array_type='sparse')" + "dataset_max_mem(max_arg=1_000_000, datasets=datasets_unaligned, array_type=\"sparse\");" ] }, { @@ -786,535 +725,23 @@ "text": [ "Dataset: dense 0\n", "Concatenating 9 files with sizes:\n", - "['913MiB', '668MiB', '886MiB', '870MiB', '820MiB', '897MiB', '668MiB', '668MiB', '836MiB']\n", - "Total size: 7231MiB\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-09-14 20:28:45,310 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 791.22 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:45,392 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 761.39 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:45,488 - distributed.worker.memory - WARNING - Worker is at 82% memory usage. Pausing worker. Process memory: 826.38 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:45,563 - distributed.worker.memory - WARNING - Worker is at 80% memory usage. Pausing worker. Process memory: 801.66 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:45,564 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 801.66 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:45,785 - distributed.worker.memory - WARNING - Worker is at 81% memory usage. Pausing worker. Process memory: 819.31 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:45,964 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60714 (pid=13536) exceeded 95% memory budget. Restarting...\n", - "2023-09-14 20:28:46,000 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 761.17 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:46,041 - distributed.nanny - WARNING - Restarting worker\n", - "2023-09-14 20:28:46,261 - distributed.worker.memory - WARNING - Worker is at 84% memory usage. Pausing worker. Process memory: 844.55 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:47,443 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 738.91 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:47,975 - distributed.worker.memory - WARNING - Worker is at 84% memory usage. Pausing worker. Process memory: 844.11 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:55,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.41 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:55,454 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.44 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:56,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.62 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:28:57,476 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:05,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.58 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:05,554 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.50 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:06,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.66 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:07,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:15,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.59 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:15,554 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.52 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:16,157 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.66 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:17,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:25,456 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.59 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:25,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.61 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:26,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.67 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:27,774 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:35,556 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.59 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:35,755 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.62 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:36,258 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.70 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:37,774 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:45,556 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.77 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:45,757 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.62 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:46,262 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.70 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:47,873 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:55,556 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.78 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:55,757 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.62 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:56,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.70 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:29:57,874 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:05,656 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.80 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:05,758 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.66 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:06,458 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.73 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:07,874 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:15,656 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.80 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:15,759 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.66 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:16,558 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.73 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:17,976 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:25,759 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.81 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:25,855 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.69 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:26,658 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.75 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:27,977 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:35,760 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.84 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:35,954 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.75 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:36,761 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.78 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:38,074 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:45,856 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.84 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:46,054 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.75 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:46,858 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.78 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:48,174 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:55,956 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.88 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:56,054 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.75 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:56,958 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 844.80 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:30:58,274 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:05,956 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.91 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:06,054 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.81 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:06,958 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.66 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:08,274 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:15,956 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.91 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:16,154 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.83 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:17,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.67 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:18,274 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:26,056 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.94 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:26,258 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.83 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:27,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.67 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:28,374 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:36,156 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.95 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:36,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.88 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:37,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.70 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:38,477 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:46,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 834.98 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:46,354 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.88 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:47,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.72 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:48,573 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:56,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.00 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:56,354 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.89 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:57,262 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.72 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:31:58,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:06,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.02 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:06,454 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.91 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:07,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.77 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:08,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:16,454 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.94 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:16,456 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.05 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:17,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.77 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:18,774 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:26,554 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.94 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:26,555 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.05 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:27,458 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.78 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:28,874 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:36,654 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.95 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:36,656 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.09 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:37,558 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.81 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:38,977 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:46,760 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.09 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:46,760 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.97 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:47,658 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.81 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:49,074 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:56,854 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 829.98 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:56,856 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.09 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:57,761 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.83 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:32:59,173 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:06,954 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.00 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:06,955 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.14 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:07,857 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.86 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:09,174 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:16,956 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.03 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:16,957 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.14 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:17,858 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.88 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:19,274 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:27,054 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.03 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:27,055 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.16 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:27,958 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.88 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:29,374 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:37,056 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.19 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:37,154 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.05 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:37,958 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.92 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:39,476 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:47,056 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.20 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:47,258 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.06 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:48,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.94 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:49,477 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:57,156 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.20 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:57,354 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.08 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:58,058 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.94 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:33:59,477 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:07,257 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.23 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:07,454 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.11 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:08,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.97 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:09,573 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:17,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.25 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:17,554 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.14 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:18,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 845.98 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:19,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:27,260 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.25 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:27,654 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.16 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:28,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.00 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:29,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:37,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.30 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:37,759 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.19 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:38,261 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.02 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:39,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:47,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.30 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:47,854 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.20 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:48,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.03 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:49,773 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:57,556 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.33 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:57,954 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.22 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:58,458 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.05 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:34:59,875 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:07,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.36 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:08,054 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.23 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:08,558 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.06 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:09,978 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:17,762 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.36 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:18,055 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.27 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:18,657 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.09 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:20,074 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:27,857 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 835.38 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:28,155 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.28 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:28,762 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.14 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:30,175 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:37,857 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.22 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:38,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.31 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:38,763 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.17 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:40,273 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:47,955 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.25 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:48,355 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.31 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:48,859 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.17 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:50,374 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:58,057 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.27 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:58,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.34 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:35:58,959 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.19 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:00,477 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:08,155 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.28 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:08,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.34 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:08,959 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.22 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:10,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:18,156 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.30 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:18,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.62 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:19,057 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.23 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:20,675 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:28,260 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 836.31 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:28,555 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.64 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:29,059 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.27 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:30,774 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:38,357 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.05 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:38,653 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.69 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:39,158 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.28 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:40,874 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:48,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.09 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:48,654 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.70 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:49,262 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.31 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:50,976 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:58,457 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.11 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:58,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.70 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:36:59,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.31 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:00,977 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:08,555 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.16 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:08,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.75 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:09,359 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.33 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:11,074 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:18,557 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.17 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:18,760 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.77 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:19,458 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.36 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:21,074 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:28,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.17 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:28,853 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.78 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:29,559 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.38 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:31,174 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:38,656 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.20 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:38,855 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.81 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:39,659 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.41 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:41,175 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:48,656 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.22 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:48,885 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.81 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:49,759 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.41 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:51,274 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:58,759 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.23 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:58,955 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.83 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:37:59,761 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.44 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:01,374 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:08,760 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.25 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:09,055 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.86 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:09,762 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.45 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:11,474 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:18,857 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.27 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:19,055 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.89 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:19,859 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.45 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:21,475 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:28,955 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.28 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:29,155 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.89 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:29,957 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.50 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:31,478 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:39,057 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.30 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:39,155 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.92 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:39,959 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.52 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:41,572 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:49,057 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.33 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:49,254 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.94 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:50,059 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.53 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:51,573 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:59,155 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.34 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:38:59,260 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.94 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:00,159 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.55 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:01,574 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:09,255 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.39 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:09,354 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 830.98 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:10,159 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.58 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:11,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:19,255 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.39 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:19,355 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 831.00 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:20,263 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.61 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:21,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:29,259 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.41 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:29,455 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 831.02 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:30,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.64 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:31,674 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:39,261 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.45 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:39,555 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 831.03 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:40,358 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.66 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:41,774 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:49,355 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.45 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:49,654 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 831.05 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:50,494 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 846.67 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:51,873 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:59,356 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 837.47 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:39:59,655 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 831.06 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:00,364 - distributed.worker.memory - WARNING - Worker is at 67% memory usage. Resuming worker. Process memory: 678.02 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:00,364 - distributed.worker.memory - WARNING - Worker is at 72% memory usage. Resuming worker. Process memory: 723.34 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:00,364 - distributed.worker.memory - WARNING - Worker is at 56% memory usage. Resuming worker. Process memory: 566.83 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:00,875 - distributed.worker.memory - WARNING - Worker is at 48% memory usage. Resuming worker. Process memory: 485.89 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:01,377 - distributed.worker.memory - WARNING - Worker is at 80% memory usage. Pausing worker. Process memory: 807.39 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:01,377 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 807.39 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:01,745 - distributed.worker.memory - WARNING - Worker is at 83% memory usage. Pausing worker. Process memory: 836.91 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:01,863 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60734 (pid=13547) exceeded 95% memory budget. Restarting...\n", - "2023-09-14 20:40:01,897 - distributed.worker - ERROR - Worker stream died during communication: tcp://127.0.0.1:60734\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 234, in read\n", - " n = await stream.read_into(chunk)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - "tornado.iostream.StreamClosedError: Stream is closed\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2055, in gather_dep\n", - " response = await get_data_from_worker(\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2848, in get_data_from_worker\n", - " response = await send_recv(\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/core.py\", line 1106, in send_recv\n", - " response = await comm.read(deserializers=deserializers)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", - " convert_stream_closed_error(self, e)\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 143, in convert_stream_closed_error\n", - " raise CommClosedError(f\"in {obj}: {exc}\") from exc\n", - "distributed.comm.core.CommClosedError: in Worker for gather local=tcp://127.0.0.1:60854 remote=tcp://127.0.0.1:60734>: Stream is closed\n", - "2023-09-14 20:40:01,938 - distributed.nanny - WARNING - Restarting worker\n", - "2023-09-14 20:40:02,082 - distributed.worker.memory - WARNING - Worker is at 81% memory usage. Pausing worker. Process memory: 814.42 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:02,170 - distributed.worker.memory - WARNING - Worker is at 71% memory usage. Resuming worker. Process memory: 717.06 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:02,172 - distributed.worker.memory - WARNING - Worker is at 74% memory usage. Resuming worker. Process memory: 749.77 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:02,455 - distributed.worker.memory - WARNING - Worker is at 81% memory usage. Pausing worker. Process memory: 813.73 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:02,663 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60715 (pid=13534) exceeded 95% memory budget. Restarting...\n", - "2023-09-14 20:40:02,706 - distributed.worker - ERROR - Worker stream died during communication: tcp://127.0.0.1:60715\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 224, in read\n", - " frames_nbytes = await stream.read_bytes(fmt_size)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - "tornado.iostream.StreamClosedError: Stream is closed\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2055, in gather_dep\n", - " response = await get_data_from_worker(\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2848, in get_data_from_worker\n", - " response = await send_recv(\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/core.py\", line 1106, in send_recv\n", - " response = await comm.read(deserializers=deserializers)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", - " convert_stream_closed_error(self, e)\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 143, in convert_stream_closed_error\n", - " raise CommClosedError(f\"in {obj}: {exc}\") from exc\n", - "distributed.comm.core.CommClosedError: in Worker for gather local=tcp://127.0.0.1:60852 remote=tcp://127.0.0.1:60715>: Stream is closed\n", - "2023-09-14 20:40:02,753 - distributed.nanny - WARNING - Restarting worker\n", - "2023-09-14 20:40:02,759 - distributed.worker.memory - WARNING - Worker is at 82% memory usage. Pausing worker. Process memory: 820.69 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:02,970 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60716 (pid=13537) exceeded 95% memory budget. Restarting...\n", - "2023-09-14 20:40:03,015 - distributed.worker - ERROR - failed during get data with tcp://127.0.0.1:60717 -> tcp://127.0.0.1:60716\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 962, in _handle_write\n", - " num_bytes = self.write_to_fd(self._write_buffer.peek(size))\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 1124, in write_to_fd\n", - " return self.socket.send(data) # type: ignore\n", - " ^^^^^^^^^^^^^^^^^^^^^^\n", - "BrokenPipeError: [Errno 32] Broken pipe\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 1782, in get_data\n", - " response = await comm.read(deserializers=serializers)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", - " convert_stream_closed_error(self, e)\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 141, in convert_stream_closed_error\n", - " raise CommClosedError(f\"in {obj}: {exc.__class__.__name__}: {exc}\") from exc\n", - "distributed.comm.core.CommClosedError: in : BrokenPipeError: [Errno 32] Broken pipe\n", - "2023-09-14 20:40:03,034 - distributed.nanny - WARNING - Restarting worker\n", - "2023-09-14 20:40:04,258 - distributed.worker.memory - WARNING - Worker is at 64% memory usage. Resuming worker. Process memory: 642.12 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:04,773 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 690.38 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:04,906 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 700.77 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:04,910 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 653.48 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:05,377 - distributed.worker.memory - WARNING - Worker is at 82% memory usage. Pausing worker. Process memory: 823.48 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:05,469 - distributed.worker.memory - WARNING - Worker is at 92% memory usage. Pausing worker. Process memory: 0.91 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:06,220 - distributed.worker.memory - WARNING - Worker is at 64% memory usage. Resuming worker. Process memory: 640.80 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:06,229 - distributed.worker.memory - WARNING - Worker is at 93% memory usage. Pausing worker. Process memory: 0.92 GiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:06,271 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60859 (pid=13685) exceeded 95% memory budget. Restarting...\n", - "2023-09-14 20:40:06,293 - distributed.worker.memory - WARNING - Worker is at 73% memory usage. Resuming worker. Process memory: 732.48 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:06,293 - distributed.worker - ERROR - failed during get data with tcp://127.0.0.1:60860 -> tcp://127.0.0.1:60859\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 962, in _handle_write\n", - " num_bytes = self.write_to_fd(self._write_buffer.peek(size))\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 1124, in write_to_fd\n", - " return self.socket.send(data) # type: ignore\n", - " ^^^^^^^^^^^^^^^^^^^^^^\n", - "BrokenPipeError: [Errno 32] Broken pipe\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 1782, in get_data\n", - " response = await comm.read(deserializers=serializers)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", - " convert_stream_closed_error(self, e)\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 141, in convert_stream_closed_error\n", - " raise CommClosedError(f\"in {obj}: {exc.__class__.__name__}: {exc}\") from exc\n", - "distributed.comm.core.CommClosedError: in : BrokenPipeError: [Errno 32] Broken pipe\n", - "2023-09-14 20:40:06,325 - distributed.nanny - WARNING - Restarting worker\n", - "2023-09-14 20:40:06,574 - distributed.worker - ERROR - Worker stream died during communication: tcp://127.0.0.1:60859\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 234, in read\n", - " n = await stream.read_into(chunk)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - "tornado.iostream.StreamClosedError: Stream is closed\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2055, in gather_dep\n", - " response = await get_data_from_worker(\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2848, in get_data_from_worker\n", - " response = await send_recv(\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/core.py\", line 1106, in send_recv\n", - " response = await comm.read(deserializers=deserializers)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", - " convert_stream_closed_error(self, e)\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 143, in convert_stream_closed_error\n", - " raise CommClosedError(f\"in {obj}: {exc}\") from exc\n", - "distributed.comm.core.CommClosedError: in Worker for gather local=tcp://127.0.0.1:60877 remote=tcp://127.0.0.1:60859>: Stream is closed\n", - "2023-09-14 20:40:06,887 - distributed.worker.memory - WARNING - Worker is at 80% memory usage. Pausing worker. Process memory: 808.44 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:06,891 - distributed.worker.memory - WARNING - Worker is at 80% memory usage. Pausing worker. Process memory: 806.72 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:07,063 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60717 (pid=13535) exceeded 95% memory budget. Restarting...\n", - "2023-09-14 20:40:07,093 - distributed.worker - ERROR - Worker stream died during communication: tcp://127.0.0.1:60717\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 861, in _read_to_buffer\n", - " bytes_read = self.read_from_fd(buf)\n", - " ^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/tornado/iostream.py\", line 1116, in read_from_fd\n", - " return self.socket.recv_into(buf, len(buf))\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - "ConnectionResetError: [Errno 54] Connection reset by peer\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2055, in gather_dep\n", - " response = await get_data_from_worker(\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/worker.py\", line 2848, in get_data_from_worker\n", - " response = await send_recv(\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/core.py\", line 1106, in send_recv\n", - " response = await comm.read(deserializers=deserializers)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 240, in read\n", - " convert_stream_closed_error(self, e)\n", - " File \"/Users/selman.ozleyen/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/comm/tcp.py\", line 141, in convert_stream_closed_error\n", - " raise CommClosedError(f\"in {obj}: {exc.__class__.__name__}: {exc}\") from exc\n", - "distributed.comm.core.CommClosedError: in Worker for gather local=tcp://127.0.0.1:60871 remote=tcp://127.0.0.1:60717>: ConnectionResetError: [Errno 54] Connection reset by peer\n", - "2023-09-14 20:40:07,224 - distributed.diskutils - ERROR - Failed to remove '/var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/dask-scratch-space/worker-fcdpo2g5/storage/%28%27array-38f3e1b57e3216f5f502d5ff39b51070%27%2C%200%2C%200%29#41' (failed in ): [Errno 2] No such file or directory: '%28%27array-38f3e1b57e3216f5f502d5ff39b51070%27%2C%200%2C%200%29#41'\n", - "2023-09-14 20:40:07,277 - distributed.nanny - WARNING - Restarting worker\n", - "2023-09-14 20:40:07,685 - distributed.worker.memory - WARNING - Worker is at 80% memory usage. Pausing worker. Process memory: 803.02 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:12,550 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:60860 (pid=13683) exceeded 95% memory budget. Restarting...\n", - "2023-09-14 20:40:12,583 - distributed.nanny - WARNING - Restarting worker\n" - ] - }, - { - "ename": "KilledWorker", - "evalue": "Attempted to run task ('array-b7ec564ee1accde526159f8bdd84a273', 3, 0) on 3 different workers, but all those workers died while running it. The last worker that attempt to run the task was tcp://127.0.0.1:60717. Inspecting worker logs is often a good next step to diagnose what went wrong. For more information see https://distributed.dask.org/en/stable/killed.html.", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKilledWorker\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[16], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m dataset_max_mem(max_arg\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39m1000MiB\u001b[39;49m\u001b[39m\"\u001b[39;49m, datasets\u001b[39m=\u001b[39;49mdatasets_unaligned, array_type\u001b[39m=\u001b[39;49m\u001b[39m'\u001b[39;49m\u001b[39mdense\u001b[39;49m\u001b[39m'\u001b[39;49m)\n", - "Cell \u001b[0;32mIn[11], line 65\u001b[0m, in \u001b[0;36mdataset_max_mem\u001b[0;34m(max_arg, datasets, array_type)\u001b[0m\n\u001b[1;32m 63\u001b[0m gc\u001b[39m.\u001b[39mcollect()\n\u001b[1;32m 64\u001b[0m \u001b[39m# perform profiling\u001b[39;00m\n\u001b[0;32m---> 65\u001b[0m mem_increment \u001b[39m=\u001b[39m get_mem_usage(filepaths, writepth, axis, max_arg, is_sparse)\n\u001b[1;32m 66\u001b[0m \u001b[39m# force garbage collection again\u001b[39;00m\n\u001b[1;32m 67\u001b[0m gc\u001b[39m.\u001b[39mcollect()\n", - "Cell \u001b[0;32mIn[11], line 34\u001b[0m, in \u001b[0;36mget_mem_usage\u001b[0;34m(filepaths, writepth, axis, max_arg, is_sparse)\u001b[0m\n\u001b[1;32m 31\u001b[0m stat_file\u001b[39m.\u001b[39munlink()\n\u001b[1;32m 33\u001b[0m \u001b[39mwith\u001b[39;00m memray\u001b[39m.\u001b[39mTracker(stat_file, follow_fork\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m, native_traces\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m, trace_python_allocators\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m) \u001b[39mas\u001b[39;00m tracker:\n\u001b[0;32m---> 34\u001b[0m concat_on_disk(\u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mconcat_kwargs)\n\u001b[1;32m 36\u001b[0m \u001b[39mwith\u001b[39;00m memray\u001b[39m.\u001b[39mFileReader(stat_file) \u001b[39mas\u001b[39;00m reader: \n\u001b[1;32m 37\u001b[0m max_mem \u001b[39m=\u001b[39m reader\u001b[39m.\u001b[39mmetadata\u001b[39m.\u001b[39mpeak_memory\n", - "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/experimental/merge.py:584\u001b[0m, in \u001b[0;36mconcat_on_disk\u001b[0;34m(in_files, out_file, overwrite, max_loaded_elems, axis, join, merge, uns_merge, label, keys, index_unique, fill_value, pairwise)\u001b[0m\n\u001b[1;32m 580\u001b[0m _write_alt_mapping(groups, output_group, alt_dim, alt_indices, merge)\n\u001b[1;32m 582\u001b[0m \u001b[39m# Write X\u001b[39;00m\n\u001b[0;32m--> 584\u001b[0m _write_concat_arrays(\n\u001b[1;32m 585\u001b[0m arrays\u001b[39m=\u001b[39;49mXs,\n\u001b[1;32m 586\u001b[0m output_group\u001b[39m=\u001b[39;49moutput_group,\n\u001b[1;32m 587\u001b[0m output_path\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mX\u001b[39;49m\u001b[39m\"\u001b[39;49m,\n\u001b[1;32m 588\u001b[0m axis\u001b[39m=\u001b[39;49maxis,\n\u001b[1;32m 589\u001b[0m reindexers\u001b[39m=\u001b[39;49mreindexers,\n\u001b[1;32m 590\u001b[0m fill_value\u001b[39m=\u001b[39;49mfill_value,\n\u001b[1;32m 591\u001b[0m max_loaded_elems\u001b[39m=\u001b[39;49mmax_loaded_elems,\n\u001b[1;32m 592\u001b[0m )\n\u001b[1;32m 594\u001b[0m \u001b[39m# Write Layers and {dim}m\u001b[39;00m\n\u001b[1;32m 595\u001b[0m mapping_names \u001b[39m=\u001b[39m [\n\u001b[1;32m 596\u001b[0m (\n\u001b[1;32m 597\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mdim\u001b[39m}\u001b[39;00m\u001b[39mm\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 602\u001b[0m (\u001b[39m\"\u001b[39m\u001b[39mlayers\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39mNone\u001b[39;00m, axis, reindexers),\n\u001b[1;32m 603\u001b[0m ]\n", - "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/experimental/merge.py:307\u001b[0m, in \u001b[0;36m_write_concat_arrays\u001b[0;34m(arrays, output_group, output_path, max_loaded_elems, axis, reindexers, fill_value, join)\u001b[0m\n\u001b[1;32m 303\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 304\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mConcat of following not supported: \u001b[39m\u001b[39m{\u001b[39;00m[a\u001b[39m.\u001b[39mformat\u001b[39m \u001b[39m\u001b[39mfor\u001b[39;00m\u001b[39m \u001b[39ma\u001b[39m \u001b[39m\u001b[39min\u001b[39;00m\u001b[39m \u001b[39marrays]\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\n\u001b[1;32m 305\u001b[0m )\n\u001b[1;32m 306\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 307\u001b[0m write_concat_dense(\n\u001b[1;32m 308\u001b[0m arrays, output_group, output_path, axis, reindexers, fill_value\n\u001b[1;32m 309\u001b[0m )\n", - "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/experimental/merge.py:187\u001b[0m, in \u001b[0;36mwrite_concat_dense\u001b[0;34m(arrays, output_group, output_path, axis, reindexers, fill_value)\u001b[0m\n\u001b[1;32m 178\u001b[0m darrays \u001b[39m=\u001b[39m (da\u001b[39m.\u001b[39mfrom_array(a, chunks\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mauto\u001b[39m\u001b[39m\"\u001b[39m) \u001b[39mfor\u001b[39;00m a \u001b[39min\u001b[39;00m arrays)\n\u001b[1;32m 180\u001b[0m res \u001b[39m=\u001b[39m da\u001b[39m.\u001b[39mconcatenate(\n\u001b[1;32m 181\u001b[0m [\n\u001b[1;32m 182\u001b[0m ri(a, axis\u001b[39m=\u001b[39m\u001b[39m1\u001b[39m \u001b[39m-\u001b[39m axis, fill_value\u001b[39m=\u001b[39mfill_value)\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 185\u001b[0m axis\u001b[39m=\u001b[39maxis,\n\u001b[1;32m 186\u001b[0m )\n\u001b[0;32m--> 187\u001b[0m write_elem(output_group, output_path, res)\n\u001b[1;32m 188\u001b[0m output_group[output_path]\u001b[39m.\u001b[39mattrs\u001b[39m.\u001b[39mupdate(\n\u001b[1;32m 189\u001b[0m {\u001b[39m\"\u001b[39m\u001b[39mencoding-type\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39marray\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39m\"\u001b[39m\u001b[39mencoding-version\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39m0.2.0\u001b[39m\u001b[39m\"\u001b[39m}\n\u001b[1;32m 190\u001b[0m )\n", - "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/specs/registry.py:368\u001b[0m, in \u001b[0;36mwrite_elem\u001b[0;34m(store, k, elem, dataset_kwargs)\u001b[0m\n\u001b[1;32m 344\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrite_elem\u001b[39m(\n\u001b[1;32m 345\u001b[0m store: GroupStorageType,\n\u001b[1;32m 346\u001b[0m k: \u001b[39mstr\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 349\u001b[0m dataset_kwargs: Mapping \u001b[39m=\u001b[39m MappingProxyType({}),\n\u001b[1;32m 350\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 351\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 352\u001b[0m \u001b[39m Write an element to a storage group using anndata encoding.\u001b[39;00m\n\u001b[1;32m 353\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 366\u001b[0m \u001b[39m E.g. for zarr this would be `chunks`, `compressor`.\u001b[39;00m\n\u001b[1;32m 367\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 368\u001b[0m Writer(_REGISTRY)\u001b[39m.\u001b[39;49mwrite_elem(store, k, elem, dataset_kwargs\u001b[39m=\u001b[39;49mdataset_kwargs)\n", - "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/utils.py:242\u001b[0m, in \u001b[0;36mreport_write_key_on_error..func_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[1;32m 241\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[0;32m--> 242\u001b[0m re_raise_error(e, elem, key, \u001b[39m\"\u001b[39;49m\u001b[39mwrit\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n", - "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/utils.py:180\u001b[0m, in \u001b[0;36mre_raise_error\u001b[0;34m(e, elem, key, op)\u001b[0m\n\u001b[1;32m 175\u001b[0m parent \u001b[39m=\u001b[39m _get_parent(elem)\n\u001b[1;32m 176\u001b[0m add_note(\n\u001b[1;32m 177\u001b[0m e,\n\u001b[1;32m 178\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mError raised while \u001b[39m\u001b[39m{\u001b[39;00mop\u001b[39m}\u001b[39;00m\u001b[39ming key \u001b[39m\u001b[39m{\u001b[39;00mkey\u001b[39m!r}\u001b[39;00m\u001b[39m of \u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mtype\u001b[39m(elem)\u001b[39m}\u001b[39;00m\u001b[39m to \u001b[39m\u001b[39m\"\u001b[39m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mparent\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 179\u001b[0m )\n\u001b[0;32m--> 180\u001b[0m \u001b[39mraise\u001b[39;00m e\n", - "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/utils.py:240\u001b[0m, in \u001b[0;36mreport_write_key_on_error..func_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 238\u001b[0m \u001b[39mbreak\u001b[39;00m\n\u001b[1;32m 239\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 240\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 241\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[1;32m 242\u001b[0m re_raise_error(e, elem, key, \u001b[39m\"\u001b[39m\u001b[39mwrit\u001b[39m\u001b[39m\"\u001b[39m)\n", - "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/specs/registry.py:326\u001b[0m, in \u001b[0;36mWriter.write_elem\u001b[0;34m(self, store, k, elem, dataset_kwargs, modifiers)\u001b[0m\n\u001b[1;32m 317\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcallback(\n\u001b[1;32m 318\u001b[0m write_func,\n\u001b[1;32m 319\u001b[0m store,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 323\u001b[0m iospec\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mregistry\u001b[39m.\u001b[39mget_spec(elem),\n\u001b[1;32m 324\u001b[0m )\n\u001b[1;32m 325\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 326\u001b[0m \u001b[39mreturn\u001b[39;00m write_func(store, k, elem, dataset_kwargs\u001b[39m=\u001b[39;49mdataset_kwargs)\n", - "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/specs/registry.py:54\u001b[0m, in \u001b[0;36mwrite_spec..decorator..wrapper\u001b[0;34m(g, k, *args, **kwargs)\u001b[0m\n\u001b[1;32m 52\u001b[0m \u001b[39m@wraps\u001b[39m(func)\n\u001b[1;32m 53\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrapper\u001b[39m(g, k, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[0;32m---> 54\u001b[0m result \u001b[39m=\u001b[39m func(g, k, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 55\u001b[0m g[k]\u001b[39m.\u001b[39mattrs\u001b[39m.\u001b[39msetdefault(\u001b[39m\"\u001b[39m\u001b[39mencoding-type\u001b[39m\u001b[39m\"\u001b[39m, spec\u001b[39m.\u001b[39mencoding_type)\n\u001b[1;32m 56\u001b[0m g[k]\u001b[39m.\u001b[39mattrs\u001b[39m.\u001b[39msetdefault(\u001b[39m\"\u001b[39m\u001b[39mencoding-version\u001b[39m\u001b[39m\"\u001b[39m, spec\u001b[39m.\u001b[39mencoding_version)\n", - "File \u001b[0;32m~/Documents/projects/anndata/anndata/anndata/_io/specs/methods.py:355\u001b[0m, in \u001b[0;36mwrite_basic_dask_zarr\u001b[0;34m(f, k, elem, _writer, dataset_kwargs)\u001b[0m\n\u001b[1;32m 352\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mdask\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39marray\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mda\u001b[39;00m\n\u001b[1;32m 354\u001b[0m g \u001b[39m=\u001b[39m f\u001b[39m.\u001b[39mrequire_dataset(k, shape\u001b[39m=\u001b[39melem\u001b[39m.\u001b[39mshape, dtype\u001b[39m=\u001b[39melem\u001b[39m.\u001b[39mdtype, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mdataset_kwargs)\n\u001b[0;32m--> 355\u001b[0m da\u001b[39m.\u001b[39;49mstore(elem, g, lock\u001b[39m=\u001b[39;49mGLOBAL_LOCK)\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.11/site-packages/dask/array/core.py:1236\u001b[0m, in \u001b[0;36mstore\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 1234\u001b[0m \u001b[39melif\u001b[39;00m compute:\n\u001b[1;32m 1235\u001b[0m store_dsk \u001b[39m=\u001b[39m HighLevelGraph(layers, dependencies)\n\u001b[0;32m-> 1236\u001b[0m compute_as_if_collection(Array, store_dsk, map_keys, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m 1237\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[1;32m 1239\u001b[0m \u001b[39melse\u001b[39;00m:\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.11/site-packages/dask/base.py:369\u001b[0m, in \u001b[0;36mcompute_as_if_collection\u001b[0;34m(cls, dsk, keys, scheduler, get, **kwargs)\u001b[0m\n\u001b[1;32m 367\u001b[0m schedule \u001b[39m=\u001b[39m get_scheduler(scheduler\u001b[39m=\u001b[39mscheduler, \u001b[39mcls\u001b[39m\u001b[39m=\u001b[39m\u001b[39mcls\u001b[39m, get\u001b[39m=\u001b[39mget)\n\u001b[1;32m 368\u001b[0m dsk2 \u001b[39m=\u001b[39m optimization_function(\u001b[39mcls\u001b[39m)(dsk, keys, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m--> 369\u001b[0m \u001b[39mreturn\u001b[39;00m schedule(dsk2, keys, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/client.py:3266\u001b[0m, in \u001b[0;36mClient.get\u001b[0;34m(self, dsk, keys, workers, allow_other_workers, resources, sync, asynchronous, direct, retries, priority, fifo_timeout, actors, **kwargs)\u001b[0m\n\u001b[1;32m 3264\u001b[0m should_rejoin \u001b[39m=\u001b[39m \u001b[39mFalse\u001b[39;00m\n\u001b[1;32m 3265\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m-> 3266\u001b[0m results \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mgather(packed, asynchronous\u001b[39m=\u001b[39;49masynchronous, direct\u001b[39m=\u001b[39;49mdirect)\n\u001b[1;32m 3267\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m 3268\u001b[0m \u001b[39mfor\u001b[39;00m f \u001b[39min\u001b[39;00m futures\u001b[39m.\u001b[39mvalues():\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/client.py:2392\u001b[0m, in \u001b[0;36mClient.gather\u001b[0;34m(self, futures, errors, direct, asynchronous)\u001b[0m\n\u001b[1;32m 2389\u001b[0m local_worker \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[1;32m 2391\u001b[0m \u001b[39mwith\u001b[39;00m shorten_traceback():\n\u001b[0;32m-> 2392\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49msync(\n\u001b[1;32m 2393\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_gather,\n\u001b[1;32m 2394\u001b[0m futures,\n\u001b[1;32m 2395\u001b[0m errors\u001b[39m=\u001b[39;49merrors,\n\u001b[1;32m 2396\u001b[0m direct\u001b[39m=\u001b[39;49mdirect,\n\u001b[1;32m 2397\u001b[0m local_worker\u001b[39m=\u001b[39;49mlocal_worker,\n\u001b[1;32m 2398\u001b[0m asynchronous\u001b[39m=\u001b[39;49masynchronous,\n\u001b[1;32m 2399\u001b[0m )\n", - "File \u001b[0;32m~/mambaforge/envs/dask/lib/python3.11/site-packages/distributed/client.py:2252\u001b[0m, in \u001b[0;36mClient._gather\u001b[0;34m(self, futures, errors, direct, local_worker)\u001b[0m\n\u001b[1;32m 2250\u001b[0m exc \u001b[39m=\u001b[39m CancelledError(key)\n\u001b[1;32m 2251\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m-> 2252\u001b[0m \u001b[39mraise\u001b[39;00m exception\u001b[39m.\u001b[39mwith_traceback(traceback)\n\u001b[1;32m 2253\u001b[0m \u001b[39mraise\u001b[39;00m exc\n\u001b[1;32m 2254\u001b[0m \u001b[39mif\u001b[39;00m errors \u001b[39m==\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mskip\u001b[39m\u001b[39m\"\u001b[39m:\n", - "\u001b[0;31mKilledWorker\u001b[0m: Attempted to run task ('array-b7ec564ee1accde526159f8bdd84a273', 3, 0) on 3 different workers, but all those workers died while running it. The last worker that attempt to run the task was tcp://127.0.0.1:60717. Inspecting worker logs is often a good next step to diagnose what went wrong. For more information see https://distributed.dask.org/en/stable/killed.html.", - "\u001b[0mError raised while writing key 'X' of to " - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-09-14 20:40:14,989 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.31 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:25,489 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.42 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:35,589 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.53 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:45,589 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.55 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:40:55,589 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.56 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:45:48,988 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.56 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:45:58,988 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.58 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:46:08,988 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.59 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:46:18,993 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.59 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:46:29,088 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.56 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:46:39,095 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.58 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:46:49,188 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.58 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:46:59,293 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 856.59 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:47:09,387 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.09 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:47:19,388 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.12 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:47:29,388 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.31 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:47:39,488 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.36 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:47:49,588 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.36 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:47:59,588 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.38 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:48:09,688 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.41 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:48:19,789 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.42 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:48:29,791 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.52 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:48:39,887 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.56 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:48:49,987 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.59 MiB -- Worker memory limit: 0.98 GiB\n", - "2023-09-14 20:48:59,988 - distributed.worker.memory - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker-memory.html#memory-not-released-back-to-the-os for more information. -- Unmanaged memory: 857.59 MiB -- Worker memory limit: 0.98 GiB\n" + "['873MiB', '668MiB', '804MiB', '839MiB', '668MiB', '836MiB', '668MiB', '828MiB', '843MiB']\n", + "Total size: 7032MiB\n", + "Concatenation finished\n", + "Peak Memory: 27 MiB\n", + "--------------------------------------------------\n", + "Dataset: dense 1\n", + "Concatenating 9 files with sizes:\n", + "['873MiB', '668MiB', '804MiB', '839MiB', '668MiB', '836MiB', '668MiB', '828MiB', '843MiB']\n", + "Total size: 7032MiB\n", + "Concatenation finished\n", + "Peak Memory: 27 MiB\n", + "--------------------------------------------------\n" ] } ], "source": [ - "dataset_max_mem(max_arg=\"1000MiB\", datasets=datasets_unaligned, array_type='dense')" + "dataset_max_mem(max_arg=\"4000MiB\", datasets=datasets_unaligned, array_type=\"dense\");" ] }, { @@ -1328,21 +755,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "05125e6e", "metadata": {}, "outputs": [], "source": [ "TMPDIR.cleanup()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "53c85720", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From 2c37f3ccb471ebff1d60397ad22756b74d6edeb7 Mon Sep 17 00:00:00 2001 From: selmanozleyen Date: Fri, 15 Sep 2023 15:08:39 +0200 Subject: [PATCH 07/15] fixed the shape arg blunder --- concat-on-disk.ipynb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 3961511..21badb5 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -132,9 +132,9 @@ "metadata": {}, "outputs": [], "source": [ - "def create_adata(shape, X):\n", + "def create_adata(X):\n", " # Shape of the data matrix\n", - " M, N = shape\n", + " M, N = X.shape\n", "\n", " # Generating observation and variable names\n", " obs_names = pd.Index(f\"cell{i}\" for i in range(shape[0]))\n", @@ -279,9 +279,9 @@ "metadata": {}, "outputs": [], "source": [ - "def write_data_to_zarr(X, shape, array_name, outdir, file_id):\n", - " outfile = outdir / f\"{file_id:02d}_{shape}_{array_name}.zarr\"\n", - " adata = create_adata((X.shape[0], X.shape[1]), X)\n", + "def write_data_to_zarr(X, array_name, outdir, file_id):\n", + " outfile = outdir / f\"{file_id:02d}_{X.shape}_{array_name}.zarr\"\n", + " adata = create_adata(X)\n", " z = zarr.open_group(outfile, mode=\"w\")\n", " write_elem(z, \"/\", adata)\n", " zarr.consolidate_metadata(z.store)\n", @@ -311,7 +311,7 @@ "\n", " for array_name, array_func in array_funcs.items():\n", " X = array_func(X_base)\n", - " report = write_data_to_zarr(X, shape, array_name, outdir, file_id)\n", + " report = write_data_to_zarr(X, array_name, outdir, file_id)\n", " print(report, end=\"\")\n", " saved.append(report)\n", " file_id += 1\n", From b3774857efff8b426ef184b9d975e2dbab075a6c Mon Sep 17 00:00:00 2001 From: Phil Schaf Date: Mon, 2 Oct 2023 17:11:36 +0200 Subject: [PATCH 08/15] sort imports --- concat-on-disk.ipynb | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 21badb5..1fa7094 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -24,7 +24,9 @@ "\n", "## Initializing\n", "\n", - "Let's begin by importing the necessary libraries and modules. This notebook also uses the [memray](https://pypi.org/project/memray/) module. Ensure you've installed it using `pip install memray` before proceeding." + "Let's begin by importing the necessary libraries and modules. This notebook also uses the [memray](https://pypi.org/project/memray/) module. Ensure you've installed it using `pip install memray` before proceeding.\n", + "\n", + "For all dependencies, do `pip install anndata dask[array,distributed] memray`." ] }, { @@ -34,25 +36,26 @@ "metadata": {}, "outputs": [], "source": [ - "import numpy as np\n", - "from scipy import sparse\n", - "import pandas as pd\n", - "import itertools\n", + "import gc\n", "import shutil\n", + "import logging\n", + "import tempfile\n", + "import itertools\n", + "from pathlib import Path\n", "from typing import Literal, Callable\n", - "from anndata.tests.helpers import gen_typed_df\n", - "from anndata.experimental import write_elem\n", + "\n", "import zarr\n", - "import anndata\n", - "from pathlib import Path\n", + "import numpy as np\n", + "import pandas as pd\n", "import memray\n", - "import tempfile\n", + "from scipy import sparse\n", + "\n", + "from dask.distributed import Client, LocalCluster\n", + "\n", "import anndata\n", - "import zarr\n", - "import logging\n", - "import gc\n", - "from anndata.experimental import concat_on_disk\n", - "from dask.distributed import Client, LocalCluster\n" + "from anndata.tests.helpers import gen_typed_df\n", + "from anndata.experimental import write_elem\n", + "from anndata.experimental import concat_on_disk" ] }, { From 8d9da30ad3473c948f57276707ab3db28ca86b79 Mon Sep 17 00:00:00 2001 From: Phil Schaf Date: Mon, 2 Oct 2023 17:17:32 +0200 Subject: [PATCH 09/15] fix deps array --- concat-on-disk.ipynb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 1fa7094..b908983 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -26,7 +26,7 @@ "\n", "Let's begin by importing the necessary libraries and modules. This notebook also uses the [memray](https://pypi.org/project/memray/) module. Ensure you've installed it using `pip install memray` before proceeding.\n", "\n", - "For all dependencies, do `pip install anndata dask[array,distributed] memray`." + "For all dependencies, do `pip install anndata zarr dask[array,distributed] pytest memray`." ] }, { @@ -49,7 +49,6 @@ "import pandas as pd\n", "import memray\n", "from scipy import sparse\n", - "\n", "from dask.distributed import Client, LocalCluster\n", "\n", "import anndata\n", From 58e36563b7d77059fbddd802672267cd1dddd22f Mon Sep 17 00:00:00 2001 From: Phil Schaf Date: Mon, 2 Oct 2023 17:22:52 +0200 Subject: [PATCH 10/15] fix shape bug --- concat-on-disk.ipynb | 60 ++++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 39 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index b908983..5337c19 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -31,7 +31,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 9, "id": "f65fb557", "metadata": {}, "outputs": [], @@ -50,6 +50,7 @@ "import memray\n", "from scipy import sparse\n", "from dask.distributed import Client, LocalCluster\n", + "from dask.distributed.diagnostics.memray import memray_scheduler\n", "\n", "import anndata\n", "from anndata.tests.helpers import gen_typed_df\n", @@ -81,7 +82,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 10, "id": "29f0bd5a", "metadata": {}, "outputs": [], @@ -129,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 11, "id": "6e919ecc", "metadata": {}, "outputs": [], @@ -139,8 +140,8 @@ " M, N = X.shape\n", "\n", " # Generating observation and variable names\n", - " obs_names = pd.Index(f\"cell{i}\" for i in range(shape[0]))\n", - " var_names = pd.Index(f\"gene{i}\" for i in range(shape[1]))\n", + " obs_names = pd.Index(f\"cell{i}\" for i in range(M))\n", + " var_names = pd.Index(f\"gene{i}\" for i in range(N))\n", "\n", " # Creating observation and variable dataframes\n", " obs = gen_typed_df(M, obs_names)\n", @@ -174,7 +175,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 12, "id": "c2eb98ac", "metadata": {}, "outputs": [], @@ -212,7 +213,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 13, "id": "3dd5068e", "metadata": {}, "outputs": [], @@ -276,7 +277,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 14, "id": "134c147f", "metadata": {}, "outputs": [], @@ -323,41 +324,22 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 15, "id": "fbf50dbe", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "wrote 13956x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/01_fat_csc.zarr\n", - "wrote 13956x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/02_fat_csr.zarr\n", - "wrote 12020x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/03_fat_np.zarr\n", - "wrote 10000x13248_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/04_tall_csc.zarr\n", - "wrote 10000x13248_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/05_tall_csr.zarr\n", - "wrote 10000x13044_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/06_tall_np.zarr\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/07_square_csc.zarr\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/08_square_csr.zarr\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/09_square_np.zarr\n", - "wrote 13794x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/10_fat_csc.zarr\n", - "wrote 13794x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/11_fat_csr.zarr\n", - "wrote 12537x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/12_fat_np.zarr\n", - "wrote 10000x12676_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/13_tall_csc.zarr\n", - "wrote 10000x12676_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/14_tall_csr.zarr\n", - "wrote 10000x12373_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/15_tall_np.zarr\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/16_square_csc.zarr\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/17_square_csr.zarr\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/18_square_np.zarr\n", - "wrote 12415x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/19_fat_csc.zarr\n", - "wrote 12415x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/20_fat_csr.zarr\n", - "wrote 12602x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/21_fat_np.zarr\n", - "wrote 10000x12350_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/22_tall_csc.zarr\n", - "wrote 10000x12350_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/23_tall_csr.zarr\n", - "wrote 10000x12491_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/24_tall_np.zarr\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/25_square_csc.zarr\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/26_square_csr.zarr\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp202m_6y4/27_square_np.zarr\n" + "ename": "NameError", + "evalue": "name 'shape' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m/Users/philipp.angerer/Dev/anndata-tutorials/concat-on-disk.ipynb Cell 15\u001b[0m line \u001b[0;36m2\n\u001b[1;32m 1\u001b[0m \u001b[39m# You can call the function like this:\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m write_temp_data(shapes, sizes, densities, num_runs, OUTDIR)\n", + "\u001b[1;32m/Users/philipp.angerer/Dev/anndata-tutorials/concat-on-disk.ipynb Cell 15\u001b[0m line \u001b[0;36m3\n\u001b[1;32m 31\u001b[0m \u001b[39mfor\u001b[39;00m array_name, array_func \u001b[39min\u001b[39;00m array_funcs\u001b[39m.\u001b[39mitems():\n\u001b[1;32m 32\u001b[0m X \u001b[39m=\u001b[39m array_func(X_base)\n\u001b[0;32m---> 33\u001b[0m report \u001b[39m=\u001b[39m write_data_to_zarr(X, array_name, outdir, file_id)\n\u001b[1;32m 34\u001b[0m \u001b[39mprint\u001b[39m(report, end\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m 35\u001b[0m saved\u001b[39m.\u001b[39mappend(report)\n", + "\u001b[1;32m/Users/philipp.angerer/Dev/anndata-tutorials/concat-on-disk.ipynb Cell 15\u001b[0m line \u001b[0;36m3\n\u001b[1;32m 1\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrite_data_to_zarr\u001b[39m(X, array_name, outdir, file_id):\n\u001b[1;32m 2\u001b[0m outfile \u001b[39m=\u001b[39m outdir \u001b[39m/\u001b[39m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mfile_id\u001b[39m:\u001b[39;00m\u001b[39m02d\u001b[39m\u001b[39m}\u001b[39;00m\u001b[39m_\u001b[39m\u001b[39m{\u001b[39;00mX\u001b[39m.\u001b[39mshape\u001b[39m}\u001b[39;00m\u001b[39m_\u001b[39m\u001b[39m{\u001b[39;00marray_name\u001b[39m}\u001b[39;00m\u001b[39m.zarr\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m----> 3\u001b[0m adata \u001b[39m=\u001b[39m create_adata(X)\n\u001b[1;32m 4\u001b[0m z \u001b[39m=\u001b[39m zarr\u001b[39m.\u001b[39mopen_group(outfile, mode\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mw\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m 5\u001b[0m write_elem(z, \u001b[39m\"\u001b[39m\u001b[39m/\u001b[39m\u001b[39m\"\u001b[39m, adata)\n", + "\u001b[1;32m/Users/philipp.angerer/Dev/anndata-tutorials/concat-on-disk.ipynb Cell 15\u001b[0m line \u001b[0;36m6\n\u001b[1;32m 3\u001b[0m M, N \u001b[39m=\u001b[39m X\u001b[39m.\u001b[39mshape\n\u001b[1;32m 5\u001b[0m \u001b[39m# Generating observation and variable names\u001b[39;00m\n\u001b[0;32m----> 6\u001b[0m obs_names \u001b[39m=\u001b[39m pd\u001b[39m.\u001b[39mIndex(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mcell\u001b[39m\u001b[39m{\u001b[39;00mi\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(shape[\u001b[39m0\u001b[39m]))\n\u001b[1;32m 7\u001b[0m var_names \u001b[39m=\u001b[39m pd\u001b[39m.\u001b[39mIndex(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mgene\u001b[39m\u001b[39m{\u001b[39;00mi\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(shape[\u001b[39m1\u001b[39m]))\n\u001b[1;32m 9\u001b[0m \u001b[39m# Creating observation and variable dataframes\u001b[39;00m\n", + "\u001b[0;31mNameError\u001b[0m: name 'shape' is not defined" ] } ], From ffe397cd81d8f25fb55ae8f79a799b2ea8fcbedc Mon Sep 17 00:00:00 2001 From: syelman Date: Thu, 5 Oct 2023 17:39:35 +0200 Subject: [PATCH 11/15] very strange shape bug fixed --- concat-on-disk.ipynb | 147 +++++++++++++++++++++++++++++-------------- 1 file changed, 101 insertions(+), 46 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 5337c19..5879c8a 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -31,7 +31,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 1, "id": "f65fb557", "metadata": {}, "outputs": [], @@ -50,12 +50,12 @@ "import memray\n", "from scipy import sparse\n", "from dask.distributed import Client, LocalCluster\n", - "from dask.distributed.diagnostics.memray import memray_scheduler\n", "\n", "import anndata\n", "from anndata.tests.helpers import gen_typed_df\n", "from anndata.experimental import write_elem\n", - "from anndata.experimental import concat_on_disk" + "from anndata.experimental import concat_on_disk\n", + "from dask.distributed.diagnostics.memray import memray_scheduler" ] }, { @@ -82,7 +82,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "29f0bd5a", "metadata": {}, "outputs": [], @@ -97,7 +97,7 @@ "shapes = [\"fat\", \"tall\", \"square\"]\n", "\n", "# Sizes of the dataset, indicating the number of elements\n", - "sizes = [10_000]\n", + "sizes = [5000]\n", "\n", "# Densities: Specifies the data density. A higher value means more non-zero elements\n", "densities = [0.1, 1]\n", @@ -130,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "6e919ecc", "metadata": {}, "outputs": [], @@ -175,7 +175,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "c2eb98ac", "metadata": {}, "outputs": [], @@ -205,7 +205,7 @@ "\n", "Given a shape description (like \"fat\", \"tall\", or \"square\") and a base size, this function computes the exact dimensions \\(M\\) and \\(N\\) of the dataset. \n", "\n", - "- `shape`: Description of the desired shape of the dataset.\n", + "- `shape_type`: Description of the desired shape of the dataset. In terms of a string description.\n", "- `size`: Base size for the dataset.\n", "\n", "Returns: The dimensions \\(M\\) and \\(N\\) of the dataset.\n" @@ -213,22 +213,22 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "3dd5068e", "metadata": {}, "outputs": [], "source": [ - "def generate_dimensions(shape, size):\n", + "def generate_dimensions(shape_type, size):\n", " # Default dimensions\n", " M = size\n", " N = size\n", "\n", " # If the shape isn't square, adjust the dimensions\n", - " if shape != \"square\":\n", + " if shape_type != \"square\":\n", " other_size = size + int(size * np.random.uniform(0.2, 0.4))\n", - " if shape == \"fat\":\n", + " if shape_type == \"fat\":\n", " M = other_size\n", - " elif shape == \"tall\":\n", + " elif shape_type == \"tall\":\n", " N = other_size\n", "\n", " return M, N" @@ -251,7 +251,7 @@ "\n", "- **Parameters**:\n", " - `X`: The dataset to be written.\n", - " - `shape`: Descriptive shape of the dataset.\n", + " - `shape_type`: Descriptive shape type of the dataset.\n", " - `array_name`: Name representing the type of array (e.g., \"np\", \"csc\", \"csr\").\n", " - `outdir`: Directory where the Zarr file should be stored.\n", " - `file_id`: Identifier for the file, used in naming.\n", @@ -277,13 +277,13 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 20, "id": "134c147f", "metadata": {}, "outputs": [], "source": [ - "def write_data_to_zarr(X, array_name, outdir, file_id):\n", - " outfile = outdir / f\"{file_id:02d}_{X.shape}_{array_name}.zarr\"\n", + "def write_data_to_zarr(X, shape_type, array_name, outdir, file_id):\n", + " outfile = outdir / f\"{file_id:02d}_{shape_type}_{array_name}.zarr\"\n", " adata = create_adata(X)\n", " z = zarr.open_group(outfile, mode=\"w\")\n", " write_elem(z, \"/\", adata)\n", @@ -304,17 +304,18 @@ "\n", " saved = []\n", " file_id = 1\n", - " for _, shape, size, density in itertools.product(\n", + " for _, shape_type, size, density in itertools.product(\n", " range(num_runs), shapes, sizes, densities\n", " ):\n", " array_funcs = array_creators(density)\n", - " M, N = generate_dimensions(shape, size)\n", + " M, N = generate_dimensions(shape_type, size)\n", "\n", " X_base = sparse.random(M, N, density=density, format=\"csc\")\n", "\n", " for array_name, array_func in array_funcs.items():\n", " X = array_func(X_base)\n", - " report = write_data_to_zarr(X, array_name, outdir, file_id)\n", + " report = write_data_to_zarr(X, shape_type, array_name, outdir, file_id)\n", + " del X\n", " print(report, end=\"\")\n", " saved.append(report)\n", " file_id += 1\n", @@ -324,22 +325,69 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 21, "id": "fbf50dbe", "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'shape' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m/Users/philipp.angerer/Dev/anndata-tutorials/concat-on-disk.ipynb Cell 15\u001b[0m line \u001b[0;36m2\n\u001b[1;32m 1\u001b[0m \u001b[39m# You can call the function like this:\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m write_temp_data(shapes, sizes, densities, num_runs, OUTDIR)\n", - "\u001b[1;32m/Users/philipp.angerer/Dev/anndata-tutorials/concat-on-disk.ipynb Cell 15\u001b[0m line \u001b[0;36m3\n\u001b[1;32m 31\u001b[0m \u001b[39mfor\u001b[39;00m array_name, array_func \u001b[39min\u001b[39;00m array_funcs\u001b[39m.\u001b[39mitems():\n\u001b[1;32m 32\u001b[0m X \u001b[39m=\u001b[39m array_func(X_base)\n\u001b[0;32m---> 33\u001b[0m report \u001b[39m=\u001b[39m write_data_to_zarr(X, array_name, outdir, file_id)\n\u001b[1;32m 34\u001b[0m \u001b[39mprint\u001b[39m(report, end\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m 35\u001b[0m saved\u001b[39m.\u001b[39mappend(report)\n", - "\u001b[1;32m/Users/philipp.angerer/Dev/anndata-tutorials/concat-on-disk.ipynb Cell 15\u001b[0m line \u001b[0;36m3\n\u001b[1;32m 1\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mwrite_data_to_zarr\u001b[39m(X, array_name, outdir, file_id):\n\u001b[1;32m 2\u001b[0m outfile \u001b[39m=\u001b[39m outdir \u001b[39m/\u001b[39m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mfile_id\u001b[39m:\u001b[39;00m\u001b[39m02d\u001b[39m\u001b[39m}\u001b[39;00m\u001b[39m_\u001b[39m\u001b[39m{\u001b[39;00mX\u001b[39m.\u001b[39mshape\u001b[39m}\u001b[39;00m\u001b[39m_\u001b[39m\u001b[39m{\u001b[39;00marray_name\u001b[39m}\u001b[39;00m\u001b[39m.zarr\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m----> 3\u001b[0m adata \u001b[39m=\u001b[39m create_adata(X)\n\u001b[1;32m 4\u001b[0m z \u001b[39m=\u001b[39m zarr\u001b[39m.\u001b[39mopen_group(outfile, mode\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mw\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m 5\u001b[0m write_elem(z, \u001b[39m\"\u001b[39m\u001b[39m/\u001b[39m\u001b[39m\"\u001b[39m, adata)\n", - "\u001b[1;32m/Users/philipp.angerer/Dev/anndata-tutorials/concat-on-disk.ipynb Cell 15\u001b[0m line \u001b[0;36m6\n\u001b[1;32m 3\u001b[0m M, N \u001b[39m=\u001b[39m X\u001b[39m.\u001b[39mshape\n\u001b[1;32m 5\u001b[0m \u001b[39m# Generating observation and variable names\u001b[39;00m\n\u001b[0;32m----> 6\u001b[0m obs_names \u001b[39m=\u001b[39m pd\u001b[39m.\u001b[39mIndex(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mcell\u001b[39m\u001b[39m{\u001b[39;00mi\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(shape[\u001b[39m0\u001b[39m]))\n\u001b[1;32m 7\u001b[0m var_names \u001b[39m=\u001b[39m pd\u001b[39m.\u001b[39mIndex(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mgene\u001b[39m\u001b[39m{\u001b[39;00mi\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(shape[\u001b[39m1\u001b[39m]))\n\u001b[1;32m 9\u001b[0m \u001b[39m# Creating observation and variable dataframes\u001b[39;00m\n", - "\u001b[0;31mNameError\u001b[0m: name 'shape' is not defined" + "name": "stdout", + "output_type": "stream", + "text": [ + "already done\n", + "wrote 6290x5000_csc -> /tmp/tmpkkjz3db7/01_(6290, 5000)_csc.zarr\n", + "\n", + "wrote 6290x5000_csr -> /tmp/tmpkkjz3db7/02_(6290, 5000)_csr.zarr\n", + "\n", + "wrote 6972x5000_np -> /tmp/tmpkkjz3db7/03_(6972, 5000)_np.zarr\n", + "\n", + "wrote 5000x6072_csc -> /tmp/tmpkkjz3db7/04_(5000, 6072)_csc.zarr\n", + "\n", + "wrote 5000x6072_csr -> /tmp/tmpkkjz3db7/05_(5000, 6072)_csr.zarr\n", + "\n", + "wrote 5000x6185_np -> /tmp/tmpkkjz3db7/06_(5000, 6185)_np.zarr\n", + "\n", + "wrote 5000x5000_csc -> /tmp/tmpkkjz3db7/07_(5000, 5000)_csc.zarr\n", + "\n", + "wrote 5000x5000_csr -> /tmp/tmpkkjz3db7/08_(5000, 5000)_csr.zarr\n", + "\n", + "wrote 5000x5000_np -> /tmp/tmpkkjz3db7/09_(5000, 5000)_np.zarr\n", + "\n", + "wrote 6225x5000_csc -> /tmp/tmpkkjz3db7/10_(6225, 5000)_csc.zarr\n", + "\n", + "wrote 6225x5000_csr -> /tmp/tmpkkjz3db7/11_(6225, 5000)_csr.zarr\n", + "\n", + "wrote 6440x5000_np -> /tmp/tmpkkjz3db7/12_(6440, 5000)_np.zarr\n", + "\n", + "wrote 5000x6471_csc -> /tmp/tmpkkjz3db7/13_(5000, 6471)_csc.zarr\n", + "\n", + "wrote 5000x6471_csr -> /tmp/tmpkkjz3db7/14_(5000, 6471)_csr.zarr\n", + "\n", + "wrote 5000x6117_np -> /tmp/tmpkkjz3db7/15_(5000, 6117)_np.zarr\n", + "\n", + "wrote 5000x5000_csc -> /tmp/tmpkkjz3db7/16_(5000, 5000)_csc.zarr\n", + "\n", + "wrote 5000x5000_csr -> /tmp/tmpkkjz3db7/17_(5000, 5000)_csr.zarr\n", + "\n", + "wrote 5000x5000_np -> /tmp/tmpkkjz3db7/18_(5000, 5000)_np.zarr\n", + "\n", + "wrote 6426x5000_csc -> /tmp/tmpkkjz3db7/19_(6426, 5000)_csc.zarr\n", + "\n", + "wrote 6426x5000_csr -> /tmp/tmpkkjz3db7/20_(6426, 5000)_csr.zarr\n", + "\n", + "wrote 6038x5000_np -> /tmp/tmpkkjz3db7/21_(6038, 5000)_np.zarr\n", + "\n", + "wrote 5000x6776_csc -> /tmp/tmpkkjz3db7/22_(5000, 6776)_csc.zarr\n", + "\n", + "wrote 5000x6776_csr -> /tmp/tmpkkjz3db7/23_(5000, 6776)_csr.zarr\n", + "\n", + "wrote 5000x6842_np -> /tmp/tmpkkjz3db7/24_(5000, 6842)_np.zarr\n", + "\n", + "wrote 5000x5000_csc -> /tmp/tmpkkjz3db7/25_(5000, 5000)_csc.zarr\n", + "\n", + "wrote 5000x5000_csr -> /tmp/tmpkkjz3db7/26_(5000, 5000)_csr.zarr\n", + "\n", + "wrote 5000x5000_np -> /tmp/tmpkkjz3db7/27_(5000, 5000)_np.zarr\n", + "\n" ] } ], @@ -360,7 +408,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 16, "id": "3f71e387", "metadata": {}, "outputs": [], @@ -378,7 +426,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 17, "id": "cfbc8bd5", "metadata": {}, "outputs": [], @@ -405,14 +453,13 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 18, "id": "a7c4769d", "metadata": {}, "outputs": [], "source": [ - "datasets_aligned, datasets_unaligned = create_datasets(\n", - " filesets, requires_reindexing=False\n", - "), create_datasets(filesets, requires_reindexing=True)" + "datasets_aligned = create_datasets(filesets, requires_reindexing=False)\n", + "datasets_unaligned = create_datasets(filesets, requires_reindexing=True)" ] }, { @@ -447,7 +494,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "ae86ae46", "metadata": {}, "outputs": [], @@ -561,7 +608,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "ad448529", "metadata": {}, "outputs": [ @@ -592,7 +639,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "f3b74ee3", "metadata": {}, "outputs": [ @@ -637,7 +684,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "781b2ce9", "metadata": {}, "outputs": [ @@ -668,7 +715,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "28e7d61f", "metadata": {}, "outputs": [ @@ -699,7 +746,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "28426915", "metadata": {}, "outputs": [ @@ -739,13 +786,21 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "05125e6e", "metadata": {}, "outputs": [], "source": [ "TMPDIR.cleanup()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b663cae", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -764,7 +819,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.0" } }, "nbformat": 4, From c292369710b18273276574ca73a0d28c681ccf23 Mon Sep 17 00:00:00 2001 From: syelman Date: Thu, 5 Oct 2023 18:32:54 +0200 Subject: [PATCH 12/15] fixed measurement method --- concat-on-disk.ipynb | 206 +++++++++++++++++++------------------------ 1 file changed, 90 insertions(+), 116 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 5879c8a..3f83519 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -55,7 +55,7 @@ "from anndata.tests.helpers import gen_typed_df\n", "from anndata.experimental import write_elem\n", "from anndata.experimental import concat_on_disk\n", - "from dask.distributed.diagnostics.memray import memray_scheduler" + "from dask.distributed.diagnostics.memray import memray_scheduler, memray_workers" ] }, { @@ -82,7 +82,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 2, "id": "29f0bd5a", "metadata": {}, "outputs": [], @@ -97,7 +97,7 @@ "shapes = [\"fat\", \"tall\", \"square\"]\n", "\n", "# Sizes of the dataset, indicating the number of elements\n", - "sizes = [5000]\n", + "sizes = [10_000]\n", "\n", "# Densities: Specifies the data density. A higher value means more non-zero elements\n", "densities = [0.1, 1]\n", @@ -130,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 3, "id": "6e919ecc", "metadata": {}, "outputs": [], @@ -153,8 +153,6 @@ "\n", " # Constructing the AnnData object\n", " adata = anndata.AnnData(X, obs=obs, var=var)\n", - " adata.var_names_make_unique()\n", - " adata.obs_names_make_unique()\n", "\n", " return adata" ] @@ -175,7 +173,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 4, "id": "c2eb98ac", "metadata": {}, "outputs": [], @@ -213,7 +211,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 5, "id": "3dd5068e", "metadata": {}, "outputs": [], @@ -277,7 +275,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 6, "id": "134c147f", "metadata": {}, "outputs": [], @@ -325,7 +323,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 7, "id": "fbf50dbe", "metadata": {}, "outputs": [ @@ -333,61 +331,33 @@ "name": "stdout", "output_type": "stream", "text": [ - "already done\n", - "wrote 6290x5000_csc -> /tmp/tmpkkjz3db7/01_(6290, 5000)_csc.zarr\n", - "\n", - "wrote 6290x5000_csr -> /tmp/tmpkkjz3db7/02_(6290, 5000)_csr.zarr\n", - "\n", - "wrote 6972x5000_np -> /tmp/tmpkkjz3db7/03_(6972, 5000)_np.zarr\n", - "\n", - "wrote 5000x6072_csc -> /tmp/tmpkkjz3db7/04_(5000, 6072)_csc.zarr\n", - "\n", - "wrote 5000x6072_csr -> /tmp/tmpkkjz3db7/05_(5000, 6072)_csr.zarr\n", - "\n", - "wrote 5000x6185_np -> /tmp/tmpkkjz3db7/06_(5000, 6185)_np.zarr\n", - "\n", - "wrote 5000x5000_csc -> /tmp/tmpkkjz3db7/07_(5000, 5000)_csc.zarr\n", - "\n", - "wrote 5000x5000_csr -> /tmp/tmpkkjz3db7/08_(5000, 5000)_csr.zarr\n", - "\n", - "wrote 5000x5000_np -> /tmp/tmpkkjz3db7/09_(5000, 5000)_np.zarr\n", - "\n", - "wrote 6225x5000_csc -> /tmp/tmpkkjz3db7/10_(6225, 5000)_csc.zarr\n", - "\n", - "wrote 6225x5000_csr -> /tmp/tmpkkjz3db7/11_(6225, 5000)_csr.zarr\n", - "\n", - "wrote 6440x5000_np -> /tmp/tmpkkjz3db7/12_(6440, 5000)_np.zarr\n", - "\n", - "wrote 5000x6471_csc -> /tmp/tmpkkjz3db7/13_(5000, 6471)_csc.zarr\n", - "\n", - "wrote 5000x6471_csr -> /tmp/tmpkkjz3db7/14_(5000, 6471)_csr.zarr\n", - "\n", - "wrote 5000x6117_np -> /tmp/tmpkkjz3db7/15_(5000, 6117)_np.zarr\n", - "\n", - "wrote 5000x5000_csc -> /tmp/tmpkkjz3db7/16_(5000, 5000)_csc.zarr\n", - "\n", - "wrote 5000x5000_csr -> /tmp/tmpkkjz3db7/17_(5000, 5000)_csr.zarr\n", - "\n", - "wrote 5000x5000_np -> /tmp/tmpkkjz3db7/18_(5000, 5000)_np.zarr\n", - "\n", - "wrote 6426x5000_csc -> /tmp/tmpkkjz3db7/19_(6426, 5000)_csc.zarr\n", - "\n", - "wrote 6426x5000_csr -> /tmp/tmpkkjz3db7/20_(6426, 5000)_csr.zarr\n", - "\n", - "wrote 6038x5000_np -> /tmp/tmpkkjz3db7/21_(6038, 5000)_np.zarr\n", - "\n", - "wrote 5000x6776_csc -> /tmp/tmpkkjz3db7/22_(5000, 6776)_csc.zarr\n", - "\n", - "wrote 5000x6776_csr -> /tmp/tmpkkjz3db7/23_(5000, 6776)_csr.zarr\n", - "\n", - "wrote 5000x6842_np -> /tmp/tmpkkjz3db7/24_(5000, 6842)_np.zarr\n", - "\n", - "wrote 5000x5000_csc -> /tmp/tmpkkjz3db7/25_(5000, 5000)_csc.zarr\n", - "\n", - "wrote 5000x5000_csr -> /tmp/tmpkkjz3db7/26_(5000, 5000)_csr.zarr\n", - "\n", - "wrote 5000x5000_np -> /tmp/tmpkkjz3db7/27_(5000, 5000)_np.zarr\n", - "\n" + "wrote 13149x10000_csc -> /tmp/tmpkkc5bl5p/01_fat_csc.zarr\n", + "wrote 13149x10000_csr -> /tmp/tmpkkc5bl5p/02_fat_csr.zarr\n", + "wrote 12718x10000_np -> /tmp/tmpkkc5bl5p/03_fat_np.zarr\n", + "wrote 10000x12713_csc -> /tmp/tmpkkc5bl5p/04_tall_csc.zarr\n", + "wrote 10000x12713_csr -> /tmp/tmpkkc5bl5p/05_tall_csr.zarr\n", + "wrote 10000x12504_np -> /tmp/tmpkkc5bl5p/06_tall_np.zarr\n", + "wrote 10000x10000_csc -> /tmp/tmpkkc5bl5p/07_square_csc.zarr\n", + "wrote 10000x10000_csr -> /tmp/tmpkkc5bl5p/08_square_csr.zarr\n", + "wrote 10000x10000_np -> /tmp/tmpkkc5bl5p/09_square_np.zarr\n", + "wrote 13807x10000_csc -> /tmp/tmpkkc5bl5p/10_fat_csc.zarr\n", + "wrote 13807x10000_csr -> /tmp/tmpkkc5bl5p/11_fat_csr.zarr\n", + "wrote 13328x10000_np -> /tmp/tmpkkc5bl5p/12_fat_np.zarr\n", + "wrote 10000x13606_csc -> /tmp/tmpkkc5bl5p/13_tall_csc.zarr\n", + "wrote 10000x13606_csr -> /tmp/tmpkkc5bl5p/14_tall_csr.zarr\n", + "wrote 10000x13260_np -> /tmp/tmpkkc5bl5p/15_tall_np.zarr\n", + "wrote 10000x10000_csc -> /tmp/tmpkkc5bl5p/16_square_csc.zarr\n", + "wrote 10000x10000_csr -> /tmp/tmpkkc5bl5p/17_square_csr.zarr\n", + "wrote 10000x10000_np -> /tmp/tmpkkc5bl5p/18_square_np.zarr\n", + "wrote 13494x10000_csc -> /tmp/tmpkkc5bl5p/19_fat_csc.zarr\n", + "wrote 13494x10000_csr -> /tmp/tmpkkc5bl5p/20_fat_csr.zarr\n", + "wrote 13072x10000_np -> /tmp/tmpkkc5bl5p/21_fat_np.zarr\n", + "wrote 10000x12449_csc -> /tmp/tmpkkc5bl5p/22_tall_csc.zarr\n", + "wrote 10000x12449_csr -> /tmp/tmpkkc5bl5p/23_tall_csr.zarr\n", + "wrote 10000x13835_np -> /tmp/tmpkkc5bl5p/24_tall_np.zarr\n", + "wrote 10000x10000_csc -> /tmp/tmpkkc5bl5p/25_square_csc.zarr\n", + "wrote 10000x10000_csr -> /tmp/tmpkkc5bl5p/26_square_csr.zarr\n", + "wrote 10000x10000_np -> /tmp/tmpkkc5bl5p/27_square_np.zarr\n" ] } ], @@ -408,7 +378,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 10, "id": "3f71e387", "metadata": {}, "outputs": [], @@ -426,7 +396,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 11, "id": "cfbc8bd5", "metadata": {}, "outputs": [], @@ -453,7 +423,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 12, "id": "a7c4769d", "metadata": {}, "outputs": [], @@ -494,7 +464,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "ae86ae46", "metadata": {}, "outputs": [], @@ -515,12 +485,13 @@ "\n", "\n", "def get_mem_usage(filepaths, writepth, axis, max_arg, is_sparse):\n", + " global dask_log\n", " concat_kwargs = {\n", " \"in_files\": filepaths,\n", " \"out_file\": writepth,\n", " \"axis\": axis,\n", " }\n", - " global dask_log\n", + " tracer_kwargs = dict(trace_python_allocators=True, native_traces=True, follow_fork=True)\n", " if not is_sparse:\n", " cluster = LocalCluster(\n", " memory_limit=max_arg,\n", @@ -530,18 +501,24 @@ " else:\n", " concat_kwargs[\"max_loaded_elems\"] = max_arg\n", "\n", - " stat_file = OUTDIR / \"temp_stats.bin\"\n", - " if stat_file.exists():\n", + " for stat_file in OUTDIR.glob(\"*.memray\"):\n", " stat_file.unlink()\n", "\n", - " with memray.Tracker(\n", - " stat_file, trace_python_allocators=True, native_traces=True, follow_fork=True\n", - " ):\n", - " concat_on_disk(**concat_kwargs)\n", - "\n", - " with memray.FileReader(stat_file) as reader:\n", - " max_mem = reader.metadata.peak_memory\n", - "\n", + " if not is_sparse:\n", + " with (\n", + " memray_workers(OUTDIR, report_args=False, **tracer_kwargs),\n", + " memray_scheduler(OUTDIR, report_args=False, **tracer_kwargs),\n", + " ):\n", + " concat_on_disk(**concat_kwargs)\n", + " else:\n", + " with memray.Tracker(OUTDIR / \"test-profile.memray\", **tracer_kwargs):\n", + " concat_on_disk(**concat_kwargs)\n", + "\n", + " max_mem = 0\n", + " for stat_file in OUTDIR.glob(\"*.memray\"):\n", + " with memray.FileReader(stat_file) as reader:\n", + " max_mem += reader.metadata.peak_memory\n", + " \n", " if not is_sparse:\n", " client.shutdown()\n", " client.close()\n", @@ -608,7 +585,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "ad448529", "metadata": {}, "outputs": [ @@ -618,17 +595,17 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 6 files with sizes:\n", - "['78MiB', '108MiB', '78MiB', '97MiB', '109MiB', '78MiB']\n", - "Total size: 551MiB\n", + "['78MiB', '103MiB', '105MiB', '108MiB', '78MiB', '78MiB']\n", + "Total size: 553MiB\n", "Concatenation finished\n", - "Peak Memory: 19 MiB\n", + "Peak Memory: 16 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 6 files with sizes:\n", - "['78MiB', '78MiB', '104MiB', '99MiB', '78MiB', '97MiB']\n", - "Total size: 536MiB\n", + "['106MiB', '97MiB', '78MiB', '78MiB', '99MiB', '78MiB']\n", + "Total size: 540MiB\n", "Concatenation finished\n", - "Peak Memory: 17 MiB\n", + "Peak Memory: 16 MiB\n", "--------------------------------------------------\n" ] } @@ -639,7 +616,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "f3b74ee3", "metadata": {}, "outputs": [ @@ -649,23 +626,20 @@ "text": [ "Dataset: dense 0\n", "Concatenating 6 files with sizes:\n", - "['668MiB', '839MiB', '668MiB', '668MiB', '804MiB', '843MiB']\n", - "Total size: 4493MiB\n", + "['892MiB', '874MiB', '668MiB', '668MiB', '668MiB', '851MiB']\n", + "Total size: 4625MiB\n", "Concatenation finished\n", - "Peak Memory: 16 MiB\n", + "Peak Memory: 3352 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 6 files with sizes:\n", - "['873MiB', '668MiB', '668MiB', '836MiB', '668MiB', '828MiB']\n", - "Total size: 4545MiB\n", - "Concatenation finished\n", - "Peak Memory: 16 MiB\n", - "--------------------------------------------------\n" + "['924MiB', '887MiB', '837MiB', '668MiB', '668MiB', '668MiB']\n", + "Total size: 4656MiB\n" ] } ], "source": [ - "dataset_max_mem(max_arg=\"4000MiB\", datasets=datasets_aligned, array_type=\"dense\");" + "dataset_max_mem(max_arg=\"2000MiB\", datasets=datasets_aligned, array_type=\"dense\");" ] }, { @@ -694,17 +668,17 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['97MiB', '78MiB', '99MiB', '108MiB', '78MiB', '104MiB', '97MiB', '109MiB', '78MiB']\n", - "Total size: 852MiB\n", + "['24MiB', '19MiB', '19MiB', '26MiB', '26MiB', '19MiB', '24MiB', '25MiB', '23MiB']\n", + "Total size: 210MiB\n", "Concatenation finished\n", - "Peak Memory: 282 MiB\n", + "Peak Memory: 78 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['78MiB', '78MiB', '104MiB', '109MiB', '108MiB', '99MiB', '97MiB', '78MiB', '97MiB']\n", - "Total size: 852MiB\n", + "['23MiB', '24MiB', '19MiB', '26MiB', '19MiB', '26MiB', '19MiB', '24MiB', '25MiB']\n", + "Total size: 210MiB\n", "Concatenation finished\n", - "Peak Memory: 450 MiB\n", + "Peak Memory: 112 MiB\n", "--------------------------------------------------\n" ] } @@ -725,17 +699,17 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['97MiB', '78MiB', '99MiB', '108MiB', '78MiB', '104MiB', '97MiB', '109MiB', '78MiB']\n", - "Total size: 852MiB\n", + "['24MiB', '19MiB', '19MiB', '26MiB', '26MiB', '19MiB', '24MiB', '25MiB', '23MiB']\n", + "Total size: 210MiB\n", "Concatenation finished\n", - "Peak Memory: 28 MiB\n", + "Peak Memory: 14 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['78MiB', '78MiB', '104MiB', '109MiB', '108MiB', '99MiB', '97MiB', '78MiB', '97MiB']\n", - "Total size: 852MiB\n", + "['23MiB', '24MiB', '19MiB', '26MiB', '19MiB', '26MiB', '19MiB', '24MiB', '25MiB']\n", + "Total size: 210MiB\n", "Concatenation finished\n", - "Peak Memory: 28 MiB\n", + "Peak Memory: 13 MiB\n", "--------------------------------------------------\n" ] } @@ -756,23 +730,23 @@ "text": [ "Dataset: dense 0\n", "Concatenating 9 files with sizes:\n", - "['873MiB', '668MiB', '804MiB', '839MiB', '668MiB', '836MiB', '668MiB', '828MiB', '843MiB']\n", - "Total size: 7032MiB\n", + "['206MiB', '167MiB', '204MiB', '210MiB', '167MiB', '220MiB', '230MiB', '230MiB', '167MiB']\n", + "Total size: 1804MiB\n", "Concatenation finished\n", - "Peak Memory: 27 MiB\n", + "Peak Memory: 2837 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 9 files with sizes:\n", - "['873MiB', '668MiB', '804MiB', '839MiB', '668MiB', '836MiB', '668MiB', '828MiB', '843MiB']\n", - "Total size: 7032MiB\n", + "['206MiB', '167MiB', '204MiB', '210MiB', '167MiB', '220MiB', '230MiB', '230MiB', '167MiB']\n", + "Total size: 1804MiB\n", "Concatenation finished\n", - "Peak Memory: 27 MiB\n", + "Peak Memory: 2927 MiB\n", "--------------------------------------------------\n" ] } ], "source": [ - "dataset_max_mem(max_arg=\"4000MiB\", datasets=datasets_unaligned, array_type=\"dense\");" + "dataset_max_mem(max_arg=\"2000MiB\", datasets=datasets_unaligned, array_type=\"dense\");" ] }, { From 3a0dcceee08f337cff390232dda2a43de024defc Mon Sep 17 00:00:00 2001 From: selmanozleyen Date: Thu, 5 Oct 2023 22:22:52 +0200 Subject: [PATCH 13/15] got the results --- concat-on-disk.ipynb | 208 +++++++++++++++++++++++-------------------- 1 file changed, 111 insertions(+), 97 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 3f83519..f2545f1 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -31,11 +31,22 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 19, "id": "f65fb557", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", "import gc\n", "import shutil\n", "import logging\n", @@ -82,7 +93,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 20, "id": "29f0bd5a", "metadata": {}, "outputs": [], @@ -130,7 +141,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 21, "id": "6e919ecc", "metadata": {}, "outputs": [], @@ -173,7 +184,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 22, "id": "c2eb98ac", "metadata": {}, "outputs": [], @@ -211,7 +222,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 23, "id": "3dd5068e", "metadata": {}, "outputs": [], @@ -275,7 +286,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 24, "id": "134c147f", "metadata": {}, "outputs": [], @@ -323,7 +334,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 25, "id": "fbf50dbe", "metadata": {}, "outputs": [ @@ -331,33 +342,33 @@ "name": "stdout", "output_type": "stream", "text": [ - "wrote 13149x10000_csc -> /tmp/tmpkkc5bl5p/01_fat_csc.zarr\n", - "wrote 13149x10000_csr -> /tmp/tmpkkc5bl5p/02_fat_csr.zarr\n", - "wrote 12718x10000_np -> /tmp/tmpkkc5bl5p/03_fat_np.zarr\n", - "wrote 10000x12713_csc -> /tmp/tmpkkc5bl5p/04_tall_csc.zarr\n", - "wrote 10000x12713_csr -> /tmp/tmpkkc5bl5p/05_tall_csr.zarr\n", - "wrote 10000x12504_np -> /tmp/tmpkkc5bl5p/06_tall_np.zarr\n", - "wrote 10000x10000_csc -> /tmp/tmpkkc5bl5p/07_square_csc.zarr\n", - "wrote 10000x10000_csr -> /tmp/tmpkkc5bl5p/08_square_csr.zarr\n", - "wrote 10000x10000_np -> /tmp/tmpkkc5bl5p/09_square_np.zarr\n", - "wrote 13807x10000_csc -> /tmp/tmpkkc5bl5p/10_fat_csc.zarr\n", - "wrote 13807x10000_csr -> /tmp/tmpkkc5bl5p/11_fat_csr.zarr\n", - "wrote 13328x10000_np -> /tmp/tmpkkc5bl5p/12_fat_np.zarr\n", - "wrote 10000x13606_csc -> /tmp/tmpkkc5bl5p/13_tall_csc.zarr\n", - "wrote 10000x13606_csr -> /tmp/tmpkkc5bl5p/14_tall_csr.zarr\n", - "wrote 10000x13260_np -> /tmp/tmpkkc5bl5p/15_tall_np.zarr\n", - "wrote 10000x10000_csc -> /tmp/tmpkkc5bl5p/16_square_csc.zarr\n", - "wrote 10000x10000_csr -> /tmp/tmpkkc5bl5p/17_square_csr.zarr\n", - "wrote 10000x10000_np -> /tmp/tmpkkc5bl5p/18_square_np.zarr\n", - "wrote 13494x10000_csc -> /tmp/tmpkkc5bl5p/19_fat_csc.zarr\n", - "wrote 13494x10000_csr -> /tmp/tmpkkc5bl5p/20_fat_csr.zarr\n", - "wrote 13072x10000_np -> /tmp/tmpkkc5bl5p/21_fat_np.zarr\n", - "wrote 10000x12449_csc -> /tmp/tmpkkc5bl5p/22_tall_csc.zarr\n", - "wrote 10000x12449_csr -> /tmp/tmpkkc5bl5p/23_tall_csr.zarr\n", - "wrote 10000x13835_np -> /tmp/tmpkkc5bl5p/24_tall_np.zarr\n", - "wrote 10000x10000_csc -> /tmp/tmpkkc5bl5p/25_square_csc.zarr\n", - "wrote 10000x10000_csr -> /tmp/tmpkkc5bl5p/26_square_csr.zarr\n", - "wrote 10000x10000_np -> /tmp/tmpkkc5bl5p/27_square_np.zarr\n" + "wrote 12926x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/01_fat_csc.zarr\n", + "wrote 12926x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/02_fat_csr.zarr\n", + "wrote 12150x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/03_fat_np.zarr\n", + "wrote 10000x13503_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/04_tall_csc.zarr\n", + "wrote 10000x13503_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/05_tall_csr.zarr\n", + "wrote 10000x12453_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/06_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/07_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/08_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/09_square_np.zarr\n", + "wrote 12841x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/10_fat_csc.zarr\n", + "wrote 12841x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/11_fat_csr.zarr\n", + "wrote 12440x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/12_fat_np.zarr\n", + "wrote 10000x12834_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/13_tall_csc.zarr\n", + "wrote 10000x12834_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/14_tall_csr.zarr\n", + "wrote 10000x12582_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/15_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/16_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/17_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/18_square_np.zarr\n", + "wrote 12091x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/19_fat_csc.zarr\n", + "wrote 12091x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/20_fat_csr.zarr\n", + "wrote 12808x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/21_fat_np.zarr\n", + "wrote 10000x13084_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/22_tall_csc.zarr\n", + "wrote 10000x13084_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/23_tall_csr.zarr\n", + "wrote 10000x12814_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/24_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/25_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/26_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/27_square_np.zarr\n" ] } ], @@ -378,7 +389,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 26, "id": "3f71e387", "metadata": {}, "outputs": [], @@ -396,7 +407,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 27, "id": "cfbc8bd5", "metadata": {}, "outputs": [], @@ -423,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 28, "id": "a7c4769d", "metadata": {}, "outputs": [], @@ -464,7 +475,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 29, "id": "ae86ae46", "metadata": {}, "outputs": [], @@ -585,7 +596,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 30, "id": "ad448529", "metadata": {}, "outputs": [ @@ -595,15 +606,15 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 6 files with sizes:\n", - "['78MiB', '103MiB', '105MiB', '108MiB', '78MiB', '78MiB']\n", - "Total size: 553MiB\n", + "['101MiB', '95MiB', '100MiB', '78MiB', '78MiB', '78MiB']\n", + "Total size: 533MiB\n", "Concatenation finished\n", "Peak Memory: 16 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 6 files with sizes:\n", - "['106MiB', '97MiB', '78MiB', '78MiB', '99MiB', '78MiB']\n", - "Total size: 540MiB\n", + "['78MiB', '78MiB', '78MiB', '106MiB', '102MiB', '100MiB']\n", + "Total size: 545MiB\n", "Concatenation finished\n", "Peak Memory: 16 MiB\n", "--------------------------------------------------\n" @@ -616,7 +627,38 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 31, + "id": "67da2346", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset: sparse 0\n", + "Concatenating 6 files with sizes:\n", + "['101MiB', '95MiB', '100MiB', '78MiB', '78MiB', '78MiB']\n", + "Total size: 533MiB\n", + "Concatenation finished\n", + "Peak Memory: 16 MiB\n", + "--------------------------------------------------\n", + "Dataset: sparse 1\n", + "Concatenating 6 files with sizes:\n", + "['78MiB', '78MiB', '78MiB', '106MiB', '102MiB', '100MiB']\n", + "Total size: 545MiB\n", + "Concatenation finished\n", + "Peak Memory: 16 MiB\n", + "--------------------------------------------------\n" + ] + } + ], + "source": [ + "dataset_max_mem(max_arg=100_000_000, datasets=datasets_aligned, array_type=\"sparse\");" + ] + }, + { + "cell_type": "code", + "execution_count": 32, "id": "f3b74ee3", "metadata": {}, "outputs": [ @@ -626,15 +668,18 @@ "text": [ "Dataset: dense 0\n", "Concatenating 6 files with sizes:\n", - "['892MiB', '874MiB', '668MiB', '668MiB', '668MiB', '851MiB']\n", - "Total size: 4625MiB\n", + "['668MiB', '857MiB', '668MiB', '832MiB', '668MiB', '813MiB']\n", + "Total size: 4509MiB\n", "Concatenation finished\n", - "Peak Memory: 3352 MiB\n", + "Peak Memory: 2860 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 6 files with sizes:\n", - "['924MiB', '887MiB', '837MiB', '668MiB', '668MiB', '668MiB']\n", - "Total size: 4656MiB\n" + "['668MiB', '857MiB', '668MiB', '668MiB', '834MiB', '842MiB']\n", + "Total size: 4541MiB\n", + "Concatenation finished\n", + "Peak Memory: 3412 MiB\n", + "--------------------------------------------------\n" ] } ], @@ -658,7 +703,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "781b2ce9", "metadata": {}, "outputs": [ @@ -668,17 +713,17 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['24MiB', '19MiB', '19MiB', '26MiB', '26MiB', '19MiB', '24MiB', '25MiB', '23MiB']\n", - "Total size: 210MiB\n", + "['102MiB', '100MiB', '78MiB', '78MiB', '78MiB', '103MiB', '104MiB', '98MiB', '106MiB']\n", + "Total size: 852MiB\n", "Concatenation finished\n", - "Peak Memory: 78 MiB\n", + "Peak Memory: 283 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['23MiB', '24MiB', '19MiB', '26MiB', '19MiB', '26MiB', '19MiB', '24MiB', '25MiB']\n", - "Total size: 210MiB\n", + "['104MiB', '102MiB', '103MiB', '100MiB', '98MiB', '78MiB', '78MiB', '106MiB', '78MiB']\n", + "Total size: 852MiB\n", "Concatenation finished\n", - "Peak Memory: 112 MiB\n", + "Peak Memory: 442 MiB\n", "--------------------------------------------------\n" ] } @@ -689,38 +734,7 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "28e7d61f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Dataset: sparse 0\n", - "Concatenating 9 files with sizes:\n", - "['24MiB', '19MiB', '19MiB', '26MiB', '26MiB', '19MiB', '24MiB', '25MiB', '23MiB']\n", - "Total size: 210MiB\n", - "Concatenation finished\n", - "Peak Memory: 14 MiB\n", - "--------------------------------------------------\n", - "Dataset: sparse 1\n", - "Concatenating 9 files with sizes:\n", - "['23MiB', '24MiB', '19MiB', '26MiB', '19MiB', '26MiB', '19MiB', '24MiB', '25MiB']\n", - "Total size: 210MiB\n", - "Concatenation finished\n", - "Peak Memory: 13 MiB\n", - "--------------------------------------------------\n" - ] - } - ], - "source": [ - "dataset_max_mem(max_arg=1_000_000, datasets=datasets_unaligned, array_type=\"sparse\");" - ] - }, - { - "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "28426915", "metadata": {}, "outputs": [ @@ -730,17 +744,17 @@ "text": [ "Dataset: dense 0\n", "Concatenating 9 files with sizes:\n", - "['206MiB', '167MiB', '204MiB', '210MiB', '167MiB', '220MiB', '230MiB', '230MiB', '167MiB']\n", - "Total size: 1804MiB\n", + "['847MiB', '846MiB', '901MiB', '806MiB', '668MiB', '668MiB', '881MiB', '668MiB', '899MiB']\n", + "Total size: 7189MiB\n", "Concatenation finished\n", - "Peak Memory: 2837 MiB\n", + "Peak Memory: 2576 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 9 files with sizes:\n", - "['206MiB', '167MiB', '204MiB', '210MiB', '167MiB', '220MiB', '230MiB', '230MiB', '167MiB']\n", - "Total size: 1804MiB\n", + "['847MiB', '846MiB', '901MiB', '806MiB', '668MiB', '668MiB', '881MiB', '668MiB', '899MiB']\n", + "Total size: 7189MiB\n", "Concatenation finished\n", - "Peak Memory: 2927 MiB\n", + "Peak Memory: 3195 MiB\n", "--------------------------------------------------\n" ] } @@ -760,7 +774,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "05125e6e", "metadata": {}, "outputs": [], @@ -793,7 +807,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.11.5" } }, "nbformat": 4, From e2a30137622493316c0cfda4d48f1d55b8ed3e92 Mon Sep 17 00:00:00 2001 From: selmanozleyen Date: Thu, 5 Oct 2023 23:13:25 +0200 Subject: [PATCH 14/15] update about the max_loaded_elems param --- concat-on-disk.ipynb | 264 +++++++++++++++++++++++++------------------ 1 file changed, 152 insertions(+), 112 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index f2545f1..7d6dadb 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -31,19 +31,10 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 1, "id": "f65fb557", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", @@ -93,7 +84,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 2, "id": "29f0bd5a", "metadata": {}, "outputs": [], @@ -141,7 +132,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 3, "id": "6e919ecc", "metadata": {}, "outputs": [], @@ -184,7 +175,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 4, "id": "c2eb98ac", "metadata": {}, "outputs": [], @@ -222,7 +213,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 5, "id": "3dd5068e", "metadata": {}, "outputs": [], @@ -286,7 +277,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 6, "id": "134c147f", "metadata": {}, "outputs": [], @@ -334,7 +325,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 7, "id": "fbf50dbe", "metadata": {}, "outputs": [ @@ -342,33 +333,33 @@ "name": "stdout", "output_type": "stream", "text": [ - "wrote 12926x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/01_fat_csc.zarr\n", - "wrote 12926x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/02_fat_csr.zarr\n", - "wrote 12150x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/03_fat_np.zarr\n", - "wrote 10000x13503_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/04_tall_csc.zarr\n", - "wrote 10000x13503_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/05_tall_csr.zarr\n", - "wrote 10000x12453_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/06_tall_np.zarr\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/07_square_csc.zarr\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/08_square_csr.zarr\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/09_square_np.zarr\n", - "wrote 12841x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/10_fat_csc.zarr\n", - "wrote 12841x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/11_fat_csr.zarr\n", - "wrote 12440x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/12_fat_np.zarr\n", - "wrote 10000x12834_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/13_tall_csc.zarr\n", - "wrote 10000x12834_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/14_tall_csr.zarr\n", - "wrote 10000x12582_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/15_tall_np.zarr\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/16_square_csc.zarr\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/17_square_csr.zarr\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/18_square_np.zarr\n", - "wrote 12091x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/19_fat_csc.zarr\n", - "wrote 12091x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/20_fat_csr.zarr\n", - "wrote 12808x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/21_fat_np.zarr\n", - "wrote 10000x13084_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/22_tall_csc.zarr\n", - "wrote 10000x13084_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/23_tall_csr.zarr\n", - "wrote 10000x12814_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/24_tall_np.zarr\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/25_square_csc.zarr\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/26_square_csr.zarr\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp53lfqamo/27_square_np.zarr\n" + "wrote 13747x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/01_fat_csc.zarr\n", + "wrote 13747x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/02_fat_csr.zarr\n", + "wrote 12361x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/03_fat_np.zarr\n", + "wrote 10000x13069_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/04_tall_csc.zarr\n", + "wrote 10000x13069_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/05_tall_csr.zarr\n", + "wrote 10000x12903_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/06_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/07_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/08_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/09_square_np.zarr\n", + "wrote 13588x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/10_fat_csc.zarr\n", + "wrote 13588x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/11_fat_csr.zarr\n", + "wrote 13086x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/12_fat_np.zarr\n", + "wrote 10000x13531_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/13_tall_csc.zarr\n", + "wrote 10000x13531_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/14_tall_csr.zarr\n", + "wrote 10000x13661_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/15_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/16_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/17_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/18_square_np.zarr\n", + "wrote 13539x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/19_fat_csc.zarr\n", + "wrote 13539x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/20_fat_csr.zarr\n", + "wrote 13777x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/21_fat_np.zarr\n", + "wrote 10000x12984_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/22_tall_csc.zarr\n", + "wrote 10000x12984_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/23_tall_csr.zarr\n", + "wrote 10000x12289_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/24_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/25_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/26_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/27_square_np.zarr\n" ] } ], @@ -389,7 +380,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 8, "id": "3f71e387", "metadata": {}, "outputs": [], @@ -407,7 +398,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 9, "id": "cfbc8bd5", "metadata": {}, "outputs": [], @@ -434,7 +425,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 10, "id": "a7c4769d", "metadata": {}, "outputs": [], @@ -475,7 +466,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 11, "id": "ae86ae46", "metadata": {}, "outputs": [], @@ -596,7 +587,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 12, "id": "ad448529", "metadata": {}, "outputs": [ @@ -606,15 +597,15 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 6 files with sizes:\n", - "['101MiB', '95MiB', '100MiB', '78MiB', '78MiB', '78MiB']\n", - "Total size: 533MiB\n", + "['78MiB', '78MiB', '106MiB', '78MiB', '107MiB', '106MiB']\n", + "Total size: 556MiB\n", "Concatenation finished\n", - "Peak Memory: 16 MiB\n", + "Peak Memory: 17 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 6 files with sizes:\n", - "['78MiB', '78MiB', '78MiB', '106MiB', '102MiB', '100MiB']\n", - "Total size: 545MiB\n", + "['101MiB', '106MiB', '78MiB', '78MiB', '78MiB', '102MiB']\n", + "Total size: 546MiB\n", "Concatenation finished\n", "Peak Memory: 16 MiB\n", "--------------------------------------------------\n" @@ -627,38 +618,7 @@ }, { "cell_type": "code", - "execution_count": 31, - "id": "67da2346", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Dataset: sparse 0\n", - "Concatenating 6 files with sizes:\n", - "['101MiB', '95MiB', '100MiB', '78MiB', '78MiB', '78MiB']\n", - "Total size: 533MiB\n", - "Concatenation finished\n", - "Peak Memory: 16 MiB\n", - "--------------------------------------------------\n", - "Dataset: sparse 1\n", - "Concatenating 6 files with sizes:\n", - "['78MiB', '78MiB', '78MiB', '106MiB', '102MiB', '100MiB']\n", - "Total size: 545MiB\n", - "Concatenation finished\n", - "Peak Memory: 16 MiB\n", - "--------------------------------------------------\n" - ] - } - ], - "source": [ - "dataset_max_mem(max_arg=100_000_000, datasets=datasets_aligned, array_type=\"sparse\");" - ] - }, - { - "cell_type": "code", - "execution_count": 32, + "execution_count": 13, "id": "f3b74ee3", "metadata": {}, "outputs": [ @@ -668,17 +628,17 @@ "text": [ "Dataset: dense 0\n", "Concatenating 6 files with sizes:\n", - "['668MiB', '857MiB', '668MiB', '832MiB', '668MiB', '813MiB']\n", - "Total size: 4509MiB\n", + "['668MiB', '827MiB', '668MiB', '920MiB', '875MiB', '668MiB']\n", + "Total size: 4630MiB\n", "Concatenation finished\n", - "Peak Memory: 2860 MiB\n", + "Peak Memory: 2740 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 6 files with sizes:\n", - "['668MiB', '857MiB', '668MiB', '668MiB', '834MiB', '842MiB']\n", - "Total size: 4541MiB\n", + "['912MiB', '823MiB', '668MiB', '668MiB', '668MiB', '864MiB']\n", + "Total size: 4606MiB\n", "Concatenation finished\n", - "Peak Memory: 3412 MiB\n", + "Peak Memory: 3450 MiB\n", "--------------------------------------------------\n" ] } @@ -713,17 +673,17 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['102MiB', '100MiB', '78MiB', '78MiB', '78MiB', '103MiB', '104MiB', '98MiB', '106MiB']\n", - "Total size: 852MiB\n", + "['78MiB', '78MiB', '106MiB', '102MiB', '106MiB', '102MiB', '78MiB', '107MiB', '106MiB']\n", + "Total size: 867MiB\n", "Concatenation finished\n", - "Peak Memory: 283 MiB\n", + "Peak Memory: 286 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['104MiB', '102MiB', '103MiB', '100MiB', '98MiB', '78MiB', '78MiB', '106MiB', '78MiB']\n", - "Total size: 852MiB\n", + "['106MiB', '101MiB', '106MiB', '106MiB', '108MiB', '78MiB', '78MiB', '78MiB', '102MiB']\n", + "Total size: 867MiB\n", "Concatenation finished\n", - "Peak Memory: 442 MiB\n", + "Peak Memory: 445 MiB\n", "--------------------------------------------------\n" ] } @@ -744,17 +704,17 @@ "text": [ "Dataset: dense 0\n", "Concatenating 9 files with sizes:\n", - "['847MiB', '846MiB', '901MiB', '806MiB', '668MiB', '668MiB', '881MiB', '668MiB', '899MiB']\n", - "Total size: 7189MiB\n", + "['912MiB', '823MiB', '827MiB', '668MiB', '668MiB', '920MiB', '875MiB', '668MiB', '864MiB']\n", + "Total size: 7230MiB\n", "Concatenation finished\n", - "Peak Memory: 2576 MiB\n", + "Peak Memory: 2931 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 9 files with sizes:\n", - "['847MiB', '846MiB', '901MiB', '806MiB', '668MiB', '668MiB', '881MiB', '668MiB', '899MiB']\n", - "Total size: 7189MiB\n", + "['912MiB', '823MiB', '827MiB', '668MiB', '668MiB', '920MiB', '875MiB', '668MiB', '864MiB']\n", + "Total size: 7230MiB\n", "Concatenation finished\n", - "Peak Memory: 3195 MiB\n", + "Peak Memory: 3152 MiB\n", "--------------------------------------------------\n" ] } @@ -765,30 +725,110 @@ }, { "cell_type": "markdown", - "id": "710508a7", + "id": "9cbeca28", "metadata": {}, "source": [ - "## (Optional) Cleaning Up Temporary Files\n", - "After all is done with your tests on this notebook you can cleanup the created files." + "## The effect of `max_loaded_elems` on performance\n", + "The parameter `max_loaded_elems` is used in very specific cases when the data is sparse and the concatenation requires reindexing. Ideally, for each concatenation element (i.e., file), the function would load the entire file into memory, reindex it, and then write it to disk. However, this is not always possible due to memory constraints. In such cases, the `max_loaded_elems` parameter is used to specify the maximum number of elements that can be loaded into memory at once. The function then iteratively loads the data, reindexes it, and writes it to disk. This process is repeated until all the data has been processed.\n", + "\n", + "Given the dataset we have created, to observe the effect of this parameter, we would need to set the `max_loaded_elems` to a very small number. However, this would result in a very long concatenation process. Therefore, we will use a subset dataset to demonstrate the effect of this parameter.\n", + "\n", + "Ideally, one would see the full benefits of this feature when the dataset has dissimilar sizes (e.g., a list consisting of 100 x 10mb + 2 x 1gb arrays). However, for the sake of simplicity, we will use a dataset with similar sizes. " ] }, { "cell_type": "code", - "execution_count": 16, - "id": "05125e6e", + "execution_count": 18, + "id": "7ba971e1", "metadata": {}, "outputs": [], "source": [ - "TMPDIR.cleanup()" + "subset = {\n", + " (\"sparse\", 0): list(datasets_unaligned[(\"sparse\", 0)])[:3],\n", + " (\"sparse\", 1): list(datasets_unaligned[(\"sparse\", 1)])[:3],\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "f2b1afa8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset: sparse 0\n", + "Concatenating 3 files with sizes:\n", + "['78MiB', '78MiB', '106MiB']\n", + "Total size: 263MiB\n", + "Concatenation finished\n", + "Peak Memory: 11 MiB\n", + "--------------------------------------------------\n", + "Dataset: sparse 1\n", + "Concatenating 3 files with sizes:\n", + "['106MiB', '101MiB', '106MiB']\n", + "Total size: 315MiB\n", + "Concatenation finished\n", + "Peak Memory: 38 MiB\n", + "--------------------------------------------------\n" + ] + } + ], + "source": [ + "dataset_max_mem(max_arg=10_000_000, datasets=subset, array_type=\"sparse\");" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "57823bff", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset: sparse 0\n", + "Concatenating 3 files with sizes:\n", + "['78MiB', '78MiB', '106MiB']\n", + "Total size: 263MiB\n", + "Concatenation finished\n", + "Peak Memory: 11 MiB\n", + "--------------------------------------------------\n", + "Dataset: sparse 1\n", + "Concatenating 3 files with sizes:\n", + "['106MiB', '101MiB', '106MiB']\n", + "Total size: 315MiB\n", + "Concatenation finished\n", + "Peak Memory: 432 MiB\n", + "--------------------------------------------------\n" + ] + } + ], + "source": [ + "dataset_max_mem(max_arg=1_000_000_000, datasets=subset, array_type=\"sparse\");" + ] + }, + { + "cell_type": "markdown", + "id": "710508a7", + "metadata": {}, + "source": [ + "## (Optional) Cleaning Up Temporary Files\n", + "After all is done with your tests on this notebook you can cleanup the created files." ] }, { "cell_type": "code", "execution_count": null, - "id": "2b663cae", + "id": "05125e6e", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "TMPDIR.cleanup()" + ] } ], "metadata": { From b12e539cd0a73aff1e304706a24bff3684756a4c Mon Sep 17 00:00:00 2001 From: selmanozleyen Date: Sun, 8 Oct 2023 18:52:50 +0200 Subject: [PATCH 15/15] results with the chunking change --- concat-on-disk.ipynb | 162 +++++++++++++++++++++++++------------------ 1 file changed, 94 insertions(+), 68 deletions(-) diff --git a/concat-on-disk.ipynb b/concat-on-disk.ipynb index 7d6dadb..5527cd1 100644 --- a/concat-on-disk.ipynb +++ b/concat-on-disk.ipynb @@ -55,7 +55,7 @@ "\n", "import anndata\n", "from anndata.tests.helpers import gen_typed_df\n", - "from anndata.experimental import write_elem\n", + "from anndata.experimental import write_dispatched\n", "from anndata.experimental import concat_on_disk\n", "from dask.distributed.diagnostics.memray import memray_scheduler, memray_workers" ] @@ -282,11 +282,37 @@ "metadata": {}, "outputs": [], "source": [ + "# TODO: Refer to Ilan's notebook for the code below\n", + "# write a short description of below function also\n", + "# also why/when writing chunked is better but not needed\n", + "\n", + "def write_chunked(func, store, k, elem, dataset_kwargs, iospec):\n", + " \"\"\"Write callback that chunks X and layers\"\"\"\n", + "\n", + " def set_chunks(d, chunks=None):\n", + " \"\"\"Helper function for setting dataset_kwargs. Makes a copy of d.\"\"\"\n", + " d = dict(d)\n", + " if chunks is not None:\n", + " d[\"chunks\"] = chunks\n", + " else:\n", + " d.pop(\"chunks\", None)\n", + " return d\n", + "\n", + " if iospec.encoding_type == \"array\":\n", + " if 'layers' in k or k.endswith('X'):\n", + " dataset_kwargs = set_chunks(dataset_kwargs, (1000, 1000))\n", + " else:\n", + " dataset_kwargs = set_chunks(dataset_kwargs, None)\n", + "\n", + " func(store, k, elem, dataset_kwargs=dataset_kwargs)\n", + "\n", "def write_data_to_zarr(X, shape_type, array_name, outdir, file_id):\n", " outfile = outdir / f\"{file_id:02d}_{shape_type}_{array_name}.zarr\"\n", " adata = create_adata(X)\n", " z = zarr.open_group(outfile, mode=\"w\")\n", - " write_elem(z, \"/\", adata)\n", + " \n", + "\n", + " write_dispatched(z, \"/\", adata, callback=write_chunked)\n", " zarr.consolidate_metadata(z.store)\n", " return f\"wrote {X.shape[0]}x{X.shape[1]}_{array_name} -> {str(outfile)}\\n\"\n", "\n", @@ -333,33 +359,33 @@ "name": "stdout", "output_type": "stream", "text": [ - "wrote 13747x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/01_fat_csc.zarr\n", - "wrote 13747x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/02_fat_csr.zarr\n", - "wrote 12361x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/03_fat_np.zarr\n", - "wrote 10000x13069_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/04_tall_csc.zarr\n", - "wrote 10000x13069_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/05_tall_csr.zarr\n", - "wrote 10000x12903_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/06_tall_np.zarr\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/07_square_csc.zarr\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/08_square_csr.zarr\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/09_square_np.zarr\n", - "wrote 13588x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/10_fat_csc.zarr\n", - "wrote 13588x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/11_fat_csr.zarr\n", - "wrote 13086x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/12_fat_np.zarr\n", - "wrote 10000x13531_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/13_tall_csc.zarr\n", - "wrote 10000x13531_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/14_tall_csr.zarr\n", - "wrote 10000x13661_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/15_tall_np.zarr\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/16_square_csc.zarr\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/17_square_csr.zarr\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/18_square_np.zarr\n", - "wrote 13539x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/19_fat_csc.zarr\n", - "wrote 13539x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/20_fat_csr.zarr\n", - "wrote 13777x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/21_fat_np.zarr\n", - "wrote 10000x12984_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/22_tall_csc.zarr\n", - "wrote 10000x12984_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/23_tall_csr.zarr\n", - "wrote 10000x12289_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/24_tall_np.zarr\n", - "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/25_square_csc.zarr\n", - "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/26_square_csr.zarr\n", - "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp75esna2p/27_square_np.zarr\n" + "wrote 12454x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/01_fat_csc.zarr\n", + "wrote 12454x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/02_fat_csr.zarr\n", + "wrote 13757x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/03_fat_np.zarr\n", + "wrote 10000x12370_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/04_tall_csc.zarr\n", + "wrote 10000x12370_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/05_tall_csr.zarr\n", + "wrote 10000x13235_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/06_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/07_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/08_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/09_square_np.zarr\n", + "wrote 12558x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/10_fat_csc.zarr\n", + "wrote 12558x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/11_fat_csr.zarr\n", + "wrote 13957x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/12_fat_np.zarr\n", + "wrote 10000x12236_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/13_tall_csc.zarr\n", + "wrote 10000x12236_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/14_tall_csr.zarr\n", + "wrote 10000x12851_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/15_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/16_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/17_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/18_square_np.zarr\n", + "wrote 12888x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/19_fat_csc.zarr\n", + "wrote 12888x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/20_fat_csr.zarr\n", + "wrote 13955x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/21_fat_np.zarr\n", + "wrote 10000x12558_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/22_tall_csc.zarr\n", + "wrote 10000x12558_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/23_tall_csr.zarr\n", + "wrote 10000x13348_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/24_tall_np.zarr\n", + "wrote 10000x10000_csc -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/25_square_csc.zarr\n", + "wrote 10000x10000_csr -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/26_square_csr.zarr\n", + "wrote 10000x10000_np -> /var/folders/w4/rlbyb2md7y50tspf85v1lc440000gn/T/tmp6_ga523e/27_square_np.zarr\n" ] } ], @@ -597,15 +623,15 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 6 files with sizes:\n", - "['78MiB', '78MiB', '106MiB', '78MiB', '107MiB', '106MiB']\n", - "Total size: 556MiB\n", + "['78MiB', '78MiB', '101MiB', '98MiB', '97MiB', '78MiB']\n", + "Total size: 533MiB\n", "Concatenation finished\n", - "Peak Memory: 17 MiB\n", + "Peak Memory: 16 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 6 files with sizes:\n", - "['101MiB', '106MiB', '78MiB', '78MiB', '78MiB', '102MiB']\n", - "Total size: 546MiB\n", + "['97MiB', '98MiB', '78MiB', '78MiB', '96MiB', '78MiB']\n", + "Total size: 527MiB\n", "Concatenation finished\n", "Peak Memory: 16 MiB\n", "--------------------------------------------------\n" @@ -628,23 +654,23 @@ "text": [ "Dataset: dense 0\n", "Concatenating 6 files with sizes:\n", - "['668MiB', '827MiB', '668MiB', '920MiB', '875MiB', '668MiB']\n", - "Total size: 4630MiB\n", + "['668MiB', '668MiB', '919MiB', '668MiB', '932MiB', '932MiB']\n", + "Total size: 4789MiB\n", "Concatenation finished\n", - "Peak Memory: 2740 MiB\n", + "Peak Memory: 388 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 6 files with sizes:\n", - "['912MiB', '823MiB', '668MiB', '668MiB', '668MiB', '864MiB']\n", - "Total size: 4606MiB\n", + "['859MiB', '668MiB', '885MiB', '668MiB', '892MiB', '668MiB']\n", + "Total size: 4641MiB\n", "Concatenation finished\n", - "Peak Memory: 3450 MiB\n", + "Peak Memory: 344 MiB\n", "--------------------------------------------------\n" ] } ], "source": [ - "dataset_max_mem(max_arg=\"2000MiB\", datasets=datasets_aligned, array_type=\"dense\");" + "dataset_max_mem(max_arg=\"4000MiB\", datasets=datasets_aligned, array_type=\"dense\");" ] }, { @@ -673,17 +699,17 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 9 files with sizes:\n", - "['78MiB', '78MiB', '106MiB', '102MiB', '106MiB', '102MiB', '78MiB', '107MiB', '106MiB']\n", - "Total size: 867MiB\n", + "['78MiB', '78MiB', '101MiB', '98MiB', '98MiB', '97MiB', '96MiB', '97MiB', '78MiB']\n", + "Total size: 825MiB\n", "Concatenation finished\n", - "Peak Memory: 286 MiB\n", + "Peak Memory: 273 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 9 files with sizes:\n", - "['106MiB', '101MiB', '106MiB', '106MiB', '108MiB', '78MiB', '78MiB', '78MiB', '102MiB']\n", - "Total size: 867MiB\n", + "['97MiB', '101MiB', '97MiB', '98MiB', '98MiB', '78MiB', '78MiB', '96MiB', '78MiB']\n", + "Total size: 825MiB\n", "Concatenation finished\n", - "Peak Memory: 445 MiB\n", + "Peak Memory: 425 MiB\n", "--------------------------------------------------\n" ] } @@ -704,23 +730,23 @@ "text": [ "Dataset: dense 0\n", "Concatenating 9 files with sizes:\n", - "['912MiB', '823MiB', '827MiB', '668MiB', '668MiB', '920MiB', '875MiB', '668MiB', '864MiB']\n", - "Total size: 7230MiB\n", + "['859MiB', '668MiB', '885MiB', '668MiB', '919MiB', '892MiB', '668MiB', '932MiB', '932MiB']\n", + "Total size: 7426MiB\n", "Concatenation finished\n", - "Peak Memory: 2931 MiB\n", + "Peak Memory: 662 MiB\n", "--------------------------------------------------\n", "Dataset: dense 1\n", "Concatenating 9 files with sizes:\n", - "['912MiB', '823MiB', '827MiB', '668MiB', '668MiB', '920MiB', '875MiB', '668MiB', '864MiB']\n", - "Total size: 7230MiB\n", + "['859MiB', '668MiB', '885MiB', '668MiB', '919MiB', '892MiB', '668MiB', '932MiB', '932MiB']\n", + "Total size: 7426MiB\n", "Concatenation finished\n", - "Peak Memory: 3152 MiB\n", + "Peak Memory: 389 MiB\n", "--------------------------------------------------\n" ] } ], "source": [ - "dataset_max_mem(max_arg=\"2000MiB\", datasets=datasets_unaligned, array_type=\"dense\");" + "dataset_max_mem(max_arg=\"4000MiB\", datasets=datasets_unaligned, array_type=\"dense\");" ] }, { @@ -738,7 +764,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "id": "7ba971e1", "metadata": {}, "outputs": [], @@ -751,7 +777,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "id": "f2b1afa8", "metadata": {}, "outputs": [ @@ -761,17 +787,17 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 3 files with sizes:\n", - "['78MiB', '78MiB', '106MiB']\n", - "Total size: 263MiB\n", + "['78MiB', '78MiB', '101MiB']\n", + "Total size: 258MiB\n", "Concatenation finished\n", "Peak Memory: 11 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 3 files with sizes:\n", - "['106MiB', '101MiB', '106MiB']\n", - "Total size: 315MiB\n", + "['97MiB', '101MiB', '97MiB']\n", + "Total size: 296MiB\n", "Concatenation finished\n", - "Peak Memory: 38 MiB\n", + "Peak Memory: 39 MiB\n", "--------------------------------------------------\n" ] } @@ -782,7 +808,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "id": "57823bff", "metadata": {}, "outputs": [ @@ -792,17 +818,17 @@ "text": [ "Dataset: sparse 0\n", "Concatenating 3 files with sizes:\n", - "['78MiB', '78MiB', '106MiB']\n", - "Total size: 263MiB\n", + "['78MiB', '78MiB', '101MiB']\n", + "Total size: 258MiB\n", "Concatenation finished\n", "Peak Memory: 11 MiB\n", "--------------------------------------------------\n", "Dataset: sparse 1\n", "Concatenating 3 files with sizes:\n", - "['106MiB', '101MiB', '106MiB']\n", - "Total size: 315MiB\n", + "['97MiB', '101MiB', '97MiB']\n", + "Total size: 296MiB\n", "Concatenation finished\n", - "Peak Memory: 432 MiB\n", + "Peak Memory: 416 MiB\n", "--------------------------------------------------\n" ] } @@ -822,7 +848,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "05125e6e", "metadata": {}, "outputs": [],