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", + " | Objective | \n", + "Optimal TTL | \n", + "db_object_count | \n", + "cache_size | \n", + "c_f (Miss Cost) | \n", + "c_delta (Refresh Cost) | \n", + "
|---|---|---|---|---|---|---|
| 0 | \n", + "0.715000 | \n", + "[-0.0, -0.0, inf, -0.0, -0.0, -0.0, -0.0, inf,... | \n", + "10 | \n", + "1.0 | \n", + "0.1 | \n", + "0.01 | \n", + "
| 1 | \n", + "0.640000 | \n", + "[inf, -0.0, -0.0, -0.0, -0.0, -0.0, inf, -0.0,... | \n", + "10 | \n", + "1.0 | \n", + "0.1 | \n", + "0.02 | \n", + "
| 2 | \n", + "0.840000 | \n", + "[-0.0, -0.0, -0.0, inf, -0.0, -0.0, -0.0, inf,... | \n", + "10 | \n", + "1.0 | \n", + "0.1 | \n", + "0.04 | \n", + "
| 3 | \n", + "1.550000 | \n", + "[-0.0, -0.0, -0.0, -0.0, -0.0, inf, -0.0, -0.0... | \n", + "10 | \n", + "1.0 | \n", + "0.1 | \n", + "0.05 | \n", + "
| 4 | \n", + "2.679577 | \n", + "[0.07466480059267179, -0.0, -0.0, 0.0338036715... | \n", + "10 | \n", + "1.0 | \n", + "0.1 | \n", + "0.07 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 32719 | \n", + "8560.000000 | \n", + "[0.5493061443340548, 1.0986122886681096, 0.078... | \n", + "500 | \n", + "500.0 | \n", + "10.0 | \n", + "15.00 | \n", + "
| 32720 | \n", + "11625.000000 | \n", + "[0.17328679513998632, 0.6931471805599453, 0.69... | \n", + "500 | \n", + "500.0 | \n", + "10.0 | \n", + "20.00 | \n", + "
| 32721 | \n", + "21466.000000 | \n", + "[0.5108256237659907, 0.1702752079219969, 0.170... | \n", + "500 | \n", + "500.0 | \n", + "10.0 | \n", + "25.00 | \n", + "
| 32722 | \n", + "15644.000000 | \n", + "[0.2231435513142097, 0.022314355131420972, 0.1... | \n", + "500 | \n", + "500.0 | \n", + "10.0 | \n", + "50.00 | \n", + "
| 32723 | \n", + "15892.000000 | \n", + "[0.10536051565782628, 0.02634012891445657, 0.0... | \n", + "500 | \n", + "500.0 | \n", + "10.0 | \n", + "100.00 | \n", + "
32724 rows × 6 columns
\n", + "