From f283a8f8da364934ddaf6a6dc36d690cb62b2dcf Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Mon, 14 Aug 2023 18:42:36 +0200 Subject: [PATCH] Saving --- notebooks/jacobi_method.ipynb | 160 ++++++++-------------------------- 1 file changed, 35 insertions(+), 125 deletions(-) diff --git a/notebooks/jacobi_method.ipynb b/notebooks/jacobi_method.ipynb index 16d48d5..1dfc5ad 100644 --- a/notebooks/jacobi_method.ipynb +++ b/notebooks/jacobi_method.ipynb @@ -35,21 +35,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "1dc78750", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "jacobi_2_check (generic function with 1 method)" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "using Printf\n", "\n", @@ -109,21 +98,10 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "14a58308", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "jacobi (generic function with 1 method)" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "function jacobi(n,niters)\n", " u = zeros(n+2)\n", @@ -142,28 +120,10 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "76e1eba1", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "7-element Vector{Float64}:\n", - " -1.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 1.0" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "jacobi(5,0)" ] @@ -276,20 +236,12 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "4edad93f", "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "It's not correct. Keep trying! 💪\n" - ] - } - ], + "outputs": [], "source": [ "answer = \"x\" # replace x with a, b, c or d\n", "gauss_seidel_1_check(answer)" @@ -326,7 +278,7 @@ } }, "cell_type": "markdown", - "id": "60d64ef2", + "id": "a9667c42", "metadata": {}, "source": [ "
\n", @@ -336,7 +288,7 @@ }, { "cell_type": "markdown", - "id": "a4b9af33", + "id": "3f90d701", "metadata": {}, "source": [ "### Data dependencies\n", @@ -353,7 +305,7 @@ } }, "cell_type": "markdown", - "id": "b9656556", + "id": "210e80e7", "metadata": {}, "source": [ "
\n", @@ -376,7 +328,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ab1d263d", + "id": "3c437326", "metadata": {}, "outputs": [], "source": [ @@ -400,7 +352,7 @@ } }, "cell_type": "markdown", - "id": "33aeb726", + "id": "98e0eb71", "metadata": {}, "source": [ "
\n", @@ -410,7 +362,7 @@ }, { "cell_type": "markdown", - "id": "06e45af2", + "id": "0148f9b3", "metadata": {}, "source": [ "Thus, the algorithm is usually implemented following two main phases at each iteration Jacobi:\n", @@ -426,7 +378,7 @@ } }, "cell_type": "markdown", - "id": "d4da41d9", + "id": "baccd833", "metadata": {}, "source": [ "
\n", @@ -436,7 +388,7 @@ }, { "cell_type": "markdown", - "id": "486c46bf", + "id": "8b436c73", "metadata": {}, "source": [ "## Efficiency" @@ -459,18 +411,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "3a03fc4c", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "It's not correct. Keep trying! 💪\n" - ] - } - ], + "outputs": [], "source": [ "answer = \"x\" # replace x with a, b, c or d\n", "jacobi_1_check(answer)" @@ -627,7 +571,7 @@ } }, "cell_type": "markdown", - "id": "d3c3a458", + "id": "7d66b1a2", "metadata": {}, "source": [ "
\n", @@ -653,7 +597,7 @@ } }, "cell_type": "markdown", - "id": "43040f66", + "id": "f14142ea", "metadata": {}, "source": [ "
\n", @@ -686,21 +630,10 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "id": "4ab59b2f", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "jacobi_2d (generic function with 1 method)" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "function jacobi_2d(n,niters)\n", " u = zeros(n+2,n+2)\n", @@ -724,33 +657,10 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "id": "6da0aa54", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "12×12 Matrix{Float64}:\n", - " 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "u = jacobi_2d(10,0)" ] @@ -804,7 +714,7 @@ } }, "cell_type": "markdown", - "id": "dc342d8a", + "id": "e52959a5", "metadata": {}, "source": [ "
\n", @@ -814,7 +724,7 @@ }, { "cell_type": "markdown", - "id": "766bc1d4", + "id": "e0cee28b", "metadata": {}, "source": [ "Which of the thee alternatives is more efficient? To answer this question we need to quantify how much data is processed and communicated in each case. The following analysis assumes that the grid is of $N$ by $N$ cells and that the number of processes is $P$." @@ -822,7 +732,7 @@ }, { "cell_type": "markdown", - "id": "2580b969", + "id": "f6ea16f5", "metadata": {}, "source": [ "### 1D block partition\n" @@ -835,7 +745,7 @@ } }, "cell_type": "markdown", - "id": "e51f4de6", + "id": "0cfeca62", "metadata": {}, "source": [ "
\n", @@ -845,7 +755,7 @@ }, { "cell_type": "markdown", - "id": "6a061b83", + "id": "4600c94a", "metadata": {}, "source": [ "- We update $N^2/P$ items per iteration\n", @@ -869,7 +779,7 @@ } }, "cell_type": "markdown", - "id": "d16e5534", + "id": "e5142fa1", "metadata": {}, "source": [ "
\n", @@ -879,7 +789,7 @@ }, { "cell_type": "markdown", - "id": "3459d6bd", + "id": "091b0310", "metadata": {}, "source": [ "- We update $N^2/P$ items per iteration\n", @@ -890,10 +800,10 @@ }, { "cell_type": "markdown", - "id": "cac2194d", + "id": "a8fb49a3", "metadata": {}, "source": [ - "### 2D Cyclic partition" + "### 2D cyclic partition" ] }, { @@ -903,7 +813,7 @@ } }, "cell_type": "markdown", - "id": "9c2d4518", + "id": "1bc30b74", "metadata": {}, "source": [ "
\n", @@ -913,7 +823,7 @@ }, { "cell_type": "markdown", - "id": "88c6c735", + "id": "c45f4e44", "metadata": {}, "source": [ "- We update $N^2/P$ items\n",