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",