diff --git a/01_nb_cncf_optimization/02-objective_multi-core_gridsearch.ipynb b/01_nb_cncf_optimization/02-objective_multi-core_gridsearch.ipynb index 41ce86b..79d0073 100644 --- a/01_nb_cncf_optimization/02-objective_multi-core_gridsearch.ipynb +++ b/01_nb_cncf_optimization/02-objective_multi-core_gridsearch.ipynb @@ -162,13 +162,19 @@ "outputs": [], "source": [ "def optimize_ttl(optimized_hitrates, lambda_vals):\n", - " ti_values = np.where(\n", - " optimized_hitrates < 1,\n", - " -1 / lambda_vals * np.log(1 - optimized_hitrates),\n", - " np.inf\n", - " )\n", + " result = []\n", + " for i in range(len(lambda_vals)):\n", + " if optimized_hitrates[i] < 1:\n", + " result.append(-1 / lambda_vals[i] * np.log(1 - optimized_hitrates[i]))\n", + " else:\n", + " result.append(np.inf)\n", + " # ti_values = np.where(\n", + " # optimized_hitrates < 1,\n", + " # -1 / lambda_vals * np.log(1 - optimized_hitrates),\n", + " # np.inf\n", + " # )\n", " \n", - " return ti_values" + " return np.array(result)" ] }, { @@ -220,7 +226,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "a92c6772-6609-41a8-a3d1-4d640b69a864", "metadata": {}, "outputs": [ @@ -229,139 +235,18 @@ "output_type": "stream", "text": [ "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 12 concurrent workers.\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "[Parallel(n_jobs=-1)]: Done 26 tasks | elapsed: 0.6s\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", + "[Parallel(n_jobs=-1)]: Done 26 tasks | elapsed: 0.7s\n", "[Parallel(n_jobs=-1)]: Done 1420 tasks | elapsed: 1.3s\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n", - "/tmp/ipykernel_137117/3256270718.py:4: RuntimeWarning: divide by zero encountered in log\n" + "[Parallel(n_jobs=-1)]: Done 54501 tasks | elapsed: 1.1min\n", + "[Parallel(n_jobs=-1)]: Done 64152 out of 64152 | elapsed: 2.5min finished\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 54.8 s, sys: 1.33 s, total: 56.1 s\n", + "Wall time: 3min 23s\n" ] } ], @@ -387,9 +272,188 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "45d7f86f-edee-4fc5-835f-1e311ab2e411", "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ObjectiveOptimal TTLdb_object_countcache_sizec_f (Miss Cost)c_delta (Refresh Cost)
00.715000[-0.0, -0.0, inf, -0.0, -0.0, -0.0, -0.0, inf,...101.00.10.01
10.640000[inf, -0.0, -0.0, -0.0, -0.0, -0.0, inf, -0.0,...101.00.10.02
20.840000[-0.0, -0.0, -0.0, inf, -0.0, -0.0, -0.0, inf,...101.00.10.04
31.550000[-0.0, -0.0, -0.0, -0.0, -0.0, inf, -0.0, -0.0...101.00.10.05
42.679577[0.07466480059267179, -0.0, -0.0, 0.0338036715...101.00.10.07
.....................
327198560.000000[0.5493061443340548, 1.0986122886681096, 0.078...500500.010.015.00
3272011625.000000[0.17328679513998632, 0.6931471805599453, 0.69...500500.010.020.00
3272121466.000000[0.5108256237659907, 0.1702752079219969, 0.170...500500.010.025.00
3272215644.000000[0.2231435513142097, 0.022314355131420972, 0.1...500500.010.050.00
3272315892.000000[0.10536051565782628, 0.02634012891445657, 0.0...500500.010.0100.00
\n", + "

32724 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " Objective Optimal TTL \\\n", + "0 0.715000 [-0.0, -0.0, inf, -0.0, -0.0, -0.0, -0.0, inf,... \n", + "1 0.640000 [inf, -0.0, -0.0, -0.0, -0.0, -0.0, inf, -0.0,... \n", + "2 0.840000 [-0.0, -0.0, -0.0, inf, -0.0, -0.0, -0.0, inf,... \n", + "3 1.550000 [-0.0, -0.0, -0.0, -0.0, -0.0, inf, -0.0, -0.0... \n", + "4 2.679577 [0.07466480059267179, -0.0, -0.0, 0.0338036715... \n", + "... ... ... \n", + "32719 8560.000000 [0.5493061443340548, 1.0986122886681096, 0.078... \n", + "32720 11625.000000 [0.17328679513998632, 0.6931471805599453, 0.69... \n", + "32721 21466.000000 [0.5108256237659907, 0.1702752079219969, 0.170... \n", + "32722 15644.000000 [0.2231435513142097, 0.022314355131420972, 0.1... \n", + "32723 15892.000000 [0.10536051565782628, 0.02634012891445657, 0.0... \n", + "\n", + " db_object_count cache_size c_f (Miss Cost) c_delta (Refresh Cost) \n", + "0 10 1.0 0.1 0.01 \n", + "1 10 1.0 0.1 0.02 \n", + "2 10 1.0 0.1 0.04 \n", + "3 10 1.0 0.1 0.05 \n", + "4 10 1.0 0.1 0.07 \n", + "... ... ... ... ... \n", + "32719 500 500.0 10.0 15.00 \n", + "32720 500 500.0 10.0 20.00 \n", + "32721 500 500.0 10.0 25.00 \n", + "32722 500 500.0 10.0 50.00 \n", + "32723 500 500.0 10.0 100.00 \n", + "\n", + "[32724 rows x 6 columns]" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b3dbf01b-84f8-4404-b635-381b46679876", + "metadata": {}, "outputs": [], "source": [] }