diff --git a/notebooks/asp.ipynb b/notebooks/asp.ipynb index a14e0d1..8509089 100644 --- a/notebooks/asp.ipynb +++ b/notebooks/asp.ipynb @@ -38,18 +38,10 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "1dc78750", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "🥳 Well done!\n" - ] - } - ], + "outputs": [], "source": [ "using Printf\n", "\n", @@ -65,11 +57,19 @@ "function q1_answer(bool)\n", " bool || return\n", " msg = \"\"\"\n", - " It is not needed to start the loop over `j` with `j=k` as none of the entries of the matrix will be updated\n", - " in this particular case. Rememebr: `C[i,j] = min(C[i,j],C[i,k]+C[k,j])` if we substitute `j=k`, we get:\n", - " `C[i,k] = min(C[i,k],C[i,k]+C[k,k])`. Rememeber that `C[k,k]=0, thus, `C[i,k] = min(C[i,k],C[i,k])`, or\n", - " `C[i,k] = C[i,k]`. In other words, the new value of `C[i,k]` will correspond to the old value.\n", - " The same is true for `i=k`.\n", + " The we can change the loop order over i and j without changing the result. Rememebr:\n", + " \n", + " C[i,j] = min(C[i,j],C[i,k]+C[k,j])\n", + " \n", + " if we substitute j=k, we get\n", + " \n", + " C[i,k] = min(C[i,k],C[i,k]+C[k,k]).\n", + " \n", + " Since C[k,k]=0, thus, C[i,k] = min(C[i,k],C[i,k]), and C[i,k] = C[i,k].\n", + " \n", + " In other words, the value of C[i,k] will not be updated at iteration k.\n", + " \n", + " The same is true for i=k.\n", " \"\"\"\n", " println(msg)\n", "end\n", @@ -97,8 +97,8 @@ "id": "1faddbfa", "metadata": {}, "source": [ - "We represent the distance table as a matrix $C$, where $C_{ij}$ is the distance from node $i$ to node $j$ via a direct connection (a single hop in the graph). If there is no direct connection from $i$ to $j$, this is represented using a very large value in $C_{ij}$ (e.g. the largest possible floating point number, `inf`). \n", - "The next figure shows a simple directed graph with 4 nodes an its corresponding distance matrix (matrix labeled as \"input\")." + "We represent the distance table as a matrix $C$, where $C_{ij}$ is the distance from node $i$ to node $j$ via a direct connection (a single hop in the graph). If there is no direct connection from $i$ to $j$, this is represented using a large value in $C_{ij}$ representing infinity. \n", + "The next figure shows a simple directed graph with 4 nodes an its corresponding distance matrix (labeled as \"input\")." ] }, { @@ -121,7 +121,7 @@ "id": "ade31d26", "metadata": {}, "source": [ - "The ASP problem consists in computing the minimum distance between any two pair of nodes $i$ and $j$ in the graph. All these values can be also represented as a matrix (matrix labeled as \"output\" in the figure above). For instance, the minimum distance from node 2 to node 3 is 8 as highlighted in the figure." + "The ASP problem consists in computing the minimum distance between any two pair of nodes $i$ and $j$ in the graph. All these values can be also represented as a matrix (labeled as \"output\" in the figure above). For instance, the minimum distance from node 2 to node 3 is 8 as highlighted in the figure. You can understand both input and output matrices as distance tables. The key difference is that the input contains the distance using direct connections only, whereas the output contains the (minimum) distance allowing indirect connections." ] }, { @@ -136,21 +136,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "4fe447c5", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "floyd! (generic function with 1 method)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "function floyd!(C)\n", " n = size(C,1)\n", @@ -176,25 +165,10 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "860e537c", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "4×4 Matrix{Int64}:\n", - " 0 9 6 1\n", - " 2 0 8 3\n", - " 5 3 0 6\n", - " 10 8 5 0" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "inf = 1000\n", "C = [\n", @@ -228,7 +202,7 @@ "source": [ "### The algorithm explained\n", "\n", - "The main idea of the algorithm is to perform as many iterations as nodes in the graph. At iteration $k$, we update the distance matrix $C$ by finding the shortest paths between each pair of nodes, allowing indirect paths via nodes from 1 to $k$. At the last iteration, it is allowed to visit all nodes and, thus, the distance table will contain the minimum possible distances, i.e. the solution of the ASP problem.\n", + "The main idea of the Floyd–Warshall algorithm is to perform as many iterations as nodes in the graph. At iteration $k$, we update the distance matrix $C$ by finding the shortest paths between each pair of nodes, allowing indirect paths via nodes from 1 to $k$. At the last iteration, it is allowed to visit all nodes and, thus, the distance table will contain the minimum possible distances, i.e. the solution of the ASP problem.\n", "\n", "This process is cleverly done with three nested loops:\n", "\n", @@ -243,7 +217,7 @@ "end\n", "```\n", "\n", - "At each outer iteration $k$, we do a loop over the distance matrix $C$. For each pair of nodes $i$ and $j$ we compare the current distance $C_{ij}$ against the distance via node $k$, namely $C_{ik}+C_{kj}$, and update $C_{ij}$ with the minimum." + "At each outer iteration $k$, we do a loop over the distance matrix $C$. For each pair of nodes $i$ and $j$ we compare the current distance $C_{ij}$ against the distance via node $k$, namely $C_{ik}+C_{kj}$, and update $C_{ij}$ with the minimum. I.e., at iteration $k$ one checks if it is beneficial to visit node $k$ to reduce the distance between nodes $i$ and $j$." ] }, { @@ -266,7 +240,7 @@ "id": "722e330c", "metadata": {}, "source": [ - "The update of the distance matrix at each iteration is illustrated in the next figure for a small ASP presented above. We highlight in green the distances that are updated in each iteration." + "The update of the distance matrix at each iteration is illustrated in the next figure for the small ASP presented above. We highlight in green the distances that are updated in each iteration. Note that some distances that were initially infinity (i.e., no connection) will be updated with a finite value in this process. You can understand this as adding new edges in the graph as illustrated in the figures below." ] }, { @@ -352,28 +326,17 @@ "source": [ "### Serial performance\n", "\n", - "This algorithm is memory bound, meaning that the main cost is in getting and setting data from the input matrix `C`. In this situation, the order in which we traverse the entries of matrix `C` has a significant performance impact.\n", + "Before starting to parallelize this code, we want to make sure that we have an efficient sequential implementation. In this algorithm, the order in which we traverse the entries of matrix `C` has a significant performance impact.\n", "\n", "The following function computes the same result as for the previous function `floyd!`, but the nesting of loops over i and j is changed.\n" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "75cac17e", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "floyd2! (generic function with 1 method)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "function floyd2!(C)\n", " n = size(C,1)\n", @@ -399,19 +362,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "907bc8c9", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 1.777208 seconds\n", - " 2.967238 seconds\n" - ] - } - ], + "outputs": [], "source": [ "n = 1000\n", "C = rand(n,n)\n", @@ -457,32 +411,19 @@ "\n", "\n", "
\n", - "Question (hard): Can we really parallelize the loops over `i` and `j` ? To compute `C[i,j]` at iteration `k`, we first need to compute `C[i,k]` and `C[k,j]`. In order words, it seems that the order of the loops over `i` and `j` cannot be arbitrary. The first value of `i` and `j` in the loops should be `k`. However, this is not really necessary, why?\n", + "Question (hard): Can we really parallelize the loops over `i` and `j` ? To compute `C[i,j]` at iteration `k`, we first need to compute `C[i,k]` and `C[k,j]`. In order words, it seems that the order of the loops over `i` and `j` cannot be arbitrary. However, this is not really true, why?\n", "
" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "8d05b686", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "It is not needed to start the loop over `j` with `j=k` as none of the entries of the matrix will be updated\n", - "in this particular case. Rememebr: `C[i,j] = min(C[i,j],C[i,k]+C[k,j])` if we substitute `j=k`, we get:\n", - "`C[i,k] = min(C[i,k],C[i,k]+C[k,k])`. Rememeber that `C[k,k]=0, thus, `C[i,k] = min(C[i,k],C[i,k])`, or\n", - "`C[i,k] = C[i,k]`. In other words, the new value of `C[i,k]` will correspond to the old value.\n", - "The same is true for `i=k`.\n", - "\n" - ] - } - ], + "outputs": [], "source": [ - "uncover = true\n", - "q1_answer(uncover)" + "uncover = false\n", + "q1_answer(true)" ] }, { @@ -616,7 +557,7 @@ "metadata": {}, "source": [ "
\n", - "Question: How much data is communicated in each iteration in this parallel algorithm?\n", + "Question: How much data is send from the owner of row k in each iteration in this parallel algorithm?\n", "
\n", "\n", " a) O(N²/P)\n", @@ -627,18 +568,10 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "id": "1bf4de56", "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", "floyd_check(answer)" @@ -659,7 +592,7 @@ "source": [ "### Computation complexity\n", "\n", - "Each process updates $N^2/P$ entries per iteration. The computation complexity is $O(N^2/P)$." + "Each process updates $N^2/P$ entries per iteration. The computation complexity per iteration is $O(N^2/P)$." ] }, { @@ -699,7 +632,7 @@ "metadata": {}, "source": [ "
\n", - "\n", + "\n", "
" ] }, @@ -714,7 +647,7 @@ "- On the receive side $O(N)/O(N^2/P) = O(P/N)$\n", "\n", "\n", - "In summary, the send/computation ratio is $O(P^2/N)$ and the receive/computation ratio is $O(P/N)$. The algorithm is potentially scalable if $P^2<\n", - "Question: Which of the following statements is true?\n", + "### Running Floyd's updates in parallel\n", + "\n", + "As discussed above, we need to communicate row $k$ of matrix $C$ in order to perform iteration $k$ of the algorithm. The function below is similar to the sequential function `floyd!`, but there is a key difference. At the start of iteration $k$, the owner of row $k$ sends it to the other processors. Once row $k$ is available, all ranks can do the Floyd update locally on their portion of matrix $C$." + ] + }, + { + "attachments": { + "fig-asp-efficiency-comm-2.png": { + "image/png": "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p08fpkyZwsUXX0y7djFzq1atqqqKp556ittuu42PPvoo3rDdwK+AG909bsdeSQwlUCIiIiKSVGZ2EFBI2K7XNdaYgw8+mKuuuooJEyaQm5ub1PjSUWVlJUuXLuXOO+9kw4a4OdJWoBi4zd3jduyV5lECJSIiIiJJYWbtgcuAW4CYjZo6derEZZddxqRJk+jcuXMyw8sI27dvZ/HixSxYsIAtW+LmSJ8DdwL3uHvcjr3SNEqgRERERKRFmVkW8F1CL6cjY43p0KEDl156KZMnT6Z79+5JjS8Tbd68meLiYu6//3527oybI60lNB5+wN33JC+61k0JlIiIiIi0CAvVHsYSvokfGGtMTk4OBQUFTJ06lV69Yi5KSR3Wr19PcXExDz/8MLt374437B1CP61H3L0qedG1TkqgRERERCThzOwcworTybE+z8rKYvTo0UyfPp3+/fsnNbbWaO3atSxYsIAlS5awd+/eeMPeBG5192VJDK3VUQIlIiIiIgljZqcRVjtGxhszYsQIbrrpJo499tikxdVWvPPOO9x1112UlJTUNWwFMMPd/5KksFoVJVAiIiIi0mxmdhxwE3BRvDFDhgxh+vTpDB06NHmBtVGrVq1izpw5vPDCC3UNexYocvdXkxRWq6AESkRERESazMz6E8qRTwCyYo0ZNGgQU6ZMIT8/P4mRCUBpaSmzZs3ijTfeiDfEgceAme7+bvIiy1xKoERERESk0cysL3AjcDkQs8PtgAEDuP766xkzZgyhnoSkgrvz5JNPMnfuXN5///14wyqBxcAt7r4uedFlHiVQIiIiItJgZnYIcD0wCegQa0yfPn2YMmUKF198Me3axcytJAWqqqp46qmnmDVrFh9//HG8YbuBXwE3unvcjr1tmRIoEREREamXmR0EFBK263WNNebggw/mqquuYsKECeTm5iY1Pmm4yspKli5dyp133smGDXFzpK1AMXCbu8ft2NsWKYESERERkbjMrD1wGXALELNRU6dOnbjsssuYNGkSnTt3TmZ40gzbt29n8eLFLFiwgC1b4uZInwN3Ave4e9yOvW2JEigREREROYCZZQHfJfRyOjLWmA4dOnDppZcyefJkunfvntT4JHE2b95McXEx999/Pzt3xs2R1hIaIj/g7nuSF136UQIlIiIiIvtYqPYwlvDN8sBYY3JycigoKGDq1Kn06hVzUUoy0Pr16ykuLuahhx6isrIy3rC3CeXqH/M2mkgogRIRERERAMzsHMKK08mxPs/KymL06NFMnz6d/v37JzU2SZ61a9eyYMEClixZwt69e+MNexO41d2XJTG0tKAESkRERKSNM7PTgFnAWfHGjBgxghtvvJHjjjsueYFJSr3zzjvcddddlJSU1DVsBTDD3f+SpLBSTgmUiIiISBtlZt8gJE4XxBszbNgwpk2bxuDBg5MXmKSVl19+mdmzZ/PSSy/VNewD4Ep3fyZJYaWMEigRERGRNsbMBhKq6o0DYna4PfHEE5k2bRpnnnlmUmOT9PXHP/6ROXPm8NZbb8UbUgX0dfdPkxhW0imBEhEREWkjzKwvoQDA94GYHW6POuooioqKuOCCCwj1JERqVFRUcPHFF7N69ep4Qy5398XJjCnZ1BpaREREpJUzs+6EBrg/AvJijenbty9Tp05l7NixZGdnJzU+SX9btmxh4cKF3HfffWzbtg2Ak046iVdffbX20A+THlySKYESERERaaXMrDNwLTAViNnhtnv37kyePJl/+7d/o3379kmNT9Lfzp07eeCBB/j5z3/O5s2bARg8eDDTpk2ja9eunHvuubVviVu2r7VQAiUiIiLSyphZe+AywjmnmI2aOnXqxGWXXcakSZPo3DlmbiVtWGVlJUuXLuWuu+5i/fr1ABx99NFce+215OfnA9R1FqpVUwIlIiIi0kqYWRbwXUIvpyNjjWnfvj3jxo2jqKiI7t27JzU+SX/uzpNPPsmcOXP48MOwG69fv35cc801XHLJJdreiRIoERERkYxnodrDWOA/gIGxxuTk5FBQUMDUqVPp1SvmopS0caWlpdx66637VpZ69+5NYWGhtnfWogRKREREJIOZ2TnAHCBmo6asrCxGjx7NtGnTOPLImItS0sb97W9/Y/bs2bz44osAdOvWjcLCQq644gry8mLWHGnTlECJiIiIZCAzGwrcBpwVb8yIESO48cYbOe6445IXmGSM1atXc/fdd1NSUgJAx44d+f73v88111xDly5dUhxd+lICJSIiIpJBzOxY4CfARfHGnHLKKcyYMYOhQ4cmLzDJGO+//z733HMPjz/+OFVVVfu2d1533XX07Nkz1eGlPSVQIiIiIhnAzPoTejldAcQ8yT9o0CCmTJmyr0qaSLRPPvmEu+++m9/85jfs2bOHrKws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blQi4jclUPXLBXh/58lY9llERCTZ3Ia3cgJeQYg3gdnA381sl29RiYivdA9U/XJwYWFhPPtYiIiI1GXvA0uBXOBIMzvLzP6q5EmkftMKVD0TKGde4HccIiIiyc7M/gL8xe846oh3gRZljkV7D9QO4NEIx5dGef0rwKYyxzZEea1IOUqg6plAOfNb/I5DRERE6g8z+xvwt2peuwm4qgbPfU91rxWJRFv46p9j1q5d28PvIEREREREUpESqHooPT39Qr9jEBERERFJRUqg6qdMvwMQEREREUlFSqDqp//ZsmWLGsiJiIiIiMRICVT91KioqOg8v4MQEREREUk1SqDqKefcQL9jEBERERFJNUqg6ikzG4j+/kVEREREYqI30PVXh40bN/bzOwgRERERkVSiBKoeKy4uVjW+WnLgwAE2bSrbBF1EREREUo0SqPpNCVQtePnllznnnHOYP39+ybGGDRv6GJGIiIiIVFcDvwMQX/UuLCw8tHPnzqv9DqQuWrRoEbm5uSxZsiTseMeOHfntb3/rU1QiIiIiUhNKoOQC4AG/g6hLli1bxvTp08NWnABatGjBkCFDGDFiBC1atPApOhERERGpCSVQkokSqLhYs2YN9957L0888QTFxcUlxxs2bMjgwYPJzs6mXbt2PkYoIiIiIjWlBErOLiwsbNa5c+ddfgeSqrZu3coDDzzAQw89xL59+0qON2jQgEsvvZSbb76ZTp06+RihiIiIiMSLEihpamY/A+ZXOVLCfP/999x3333Mnj2bPXv2lBx3zpGZmcktt9zCEUcc4WOEIiIiIhJvSqAE59xAlEBFbffu3cyZM4f77ruP77//PuxcRkYGEyZM4IQTTvApOhERERFJJCVQgnNuEHA9YH7HksyKioqYN28eU6dOZePGjWHnTjrpJMaOHcuAAQN8ik5EREREaoMSKMHMuqxfv753ly5dPvI7lmRkZixYsIBJkyaxatWqsHM9e/Zk9OjRZGZm4pzzJ0ARERERqTVKoASAtLS0QYASqDIKCgr485//zGeffRZ2vEuXLtx0001cdtllpKen+xSdiIiIiNQ2JVACgJkNBO7wO45ksWTJEiZNmsQ777wTdvzggw/m+uuvZ+jQoTRu3Nin6BJn586d5Ofn889//pMTTzyR6dOn06CBvk2IiIiIBOmdkQT13bx5c6f27dtv8DsQP61atYohQ4bwyiuvhB1v2bIlWVlZZGVl0bx5c5+iS5x9+/bx+OOPM2PGDLZu3QrAV199xeWXX87pp5/uc3QiIiIiyUMJlASlFRUVXQjM8TsQP7366qthXweb4I4ZM4b27dv7FFXiHDhwgL///e9MmTKFtWvXlju/d+9eH6ISERERSV5KoKSEcy6Tep5ABTVo0IBLLrmEUaNG0aVLF7/DSYiCggL+9Kc/8cUXX/gdioiIiEjKSPM7AEkq561ataqJ30HUttAtec45Bg4cyGuvvcbUqVPrZPL0zjvvMGjQIAYPHhyWPHXs2JFJkybRrl07H6MTERERSW5agZJQzRs3bvw/wMt+B1Kbrr/+ejZu3EhaWhpZWVn07t3b75ASYtmyZUyfPp3588N7Jrdo0YIhQ4YwYsQIWrRowT333ONThCIiIiLJTwmUhHHODaSeJVCdO3cmPz/f7zASZs2aNdx777088cQTFBcXlxxv2rQpl19+OTfddBNt27b1MUIRERGR1KEESsKY2S+A4X7HITW3YcMGZs2axeOPP05RUVHJ8WBhjFGjRtGxY0cfIxQRERFJPUqgpKxDN2zYcGynTp0+9zsQqZ7t27cza9YsZs+ezZ49e0qOO+fIzMxk7NixHH744T5GKCIiIpK6lEBJOWY2CFAClWJ2797NnDlzuPfee9mxY0fYuYyMDP74xz9y/PHH+xSdiIiISN2gBEoiGQhM9jsIiU5RURHz5s1j6tSpbNy4MezcSSedxLhx4zjjjDN8ik5ERESkblECJZGcXlhY2K5z585b/A5EKlZcXMw//vEP7r77blavXh127uijj2bs2LGcd955Mc25d+/esPulRERERCScEiiJJB04H5jrdyAS2SuvvMLkyZNZunRp2PHu3bszevRoLr74YtLSom/zduDAAZ555hmmTJnCtm3bSo43aKBvESIiIiKh9O5IInLOZaIEKuksXryY3NxcFi9eHHa8Xbt23HTTTfzud7+jYcOGUc9nZrz44ovcddddrFixIuxcr1696NOnT1ziFhEREakrlEBJRGZ2PtAQ0H6uJLB8+XKmTp1arglu8+bNufLKKxk+fDgtW7aMac7333+fnJyccslYp06duOGGGxgyZEhMyZiIiIhIfaAESirSasOGDQM6der0ut+B1Gfr1q1jxowZPPnkkxw4cKDkeLCX05gxY2jfvn1Mc3788cdMnz6dV155Jex469atGTZsGNdccw1NmjSJS/wiIiIidY0SKKmQmQ0ElED5YNu2bdx///089NBD7Nu3r+R4WloaAwcOZMKECRxyyCExzbly5Ury8vJYsGABZlZyvGnTplx99dXceOONHHTQQXF7DSIiIiJ1kRIoqUwmMNrvIOqTH3/8kUcffZSZM2fyww8/hJ3LyMhg4sSJ9OrVK6Y5CwsLmT59Ok899RT79+8vOR5cxRo1ahQdO3aMS/wiIiIidZ0SKKnMUevWrTuya9euy/0OpK4L9nLKy8tjy5bw6vH9+vVjwoQJnHLKKTHNuX37dmbNmsXs2bPZs2dPyXHnHJmZmYwbN47DDjssHuGLiIiI1BtKoKRSaWlpmcA0v+Ooq/bv38///d//MWXKFNasWRN2rnfv3owfP54BAwbENOeuXbt45JFHuPfee9mxY0fYuYyMDG699VaOO+64GscuIiIiUh8pgZJKBe6DUgIVZ2bGggULuOuuu/j666/DzvXo0YMxY8aQmZmJcy7qOYOrWFOnTmXjxo1h504++WTGjRtH//794xK/iIiISH2lBEoq5ZzLWLVqVevDDjtsu9+x1BUFBQXk5OTwySefhB3v3LkzI0eO5NJLL42pgW1xcTELFy5k0qRJrFq1KuzckUceyahRoxg0aFA8QhcRERGp95RASVUaNmnS5Dzgab8DSXUfffQRkyZN4q233go73qZNG2644YZqlQ8vKCjgjjvu4PPPPw873rVrV0aMGMFll11Genp61PPt37+fp59+mmeeeYa+ffsyfvz4mFbBREREROo6JVBSJTPLRAlUta1YsYIpU6aUKx/erFkzrrrqqmqVD1+yZAm5ubksWrQo7PjBBx/M9ddfz7XXXkujRo2ini+4pTAvL4+VK1cC8N5773HeeefRr1+/mGITERERqcuUQEk0BgLpwIGqBkqp9evXc88991TYBHf06NF06NAhpjm//PJLpk2bxvz588OON2/enCuvvJLhw4fTsmXLmOZ88803yc3NLbelELyy6iIiIiJSSgmUROPg9evXn9alS5e3/Q4kFXz33Xf85S9/4eGHH2bv3r0lx4NNcKtTPnzt2rXMnDmzwmQsOzubdu3axTRnRVsKRURERKRiSqAkKs65gYASqEoEm+BWVD789ttv55hjjolpzq1bt/LAAw/w0EMPsW/fvpLjDRo04KKLLmLMmDF07949pjmXL1/OXXfdxUsvvRS2pbB58+Zce+21PPbYY3z33XcxzSkiIiJSXyiBkmhlAuP9DiIZBcuH33333WzevDnsXLAQw2mnnRbTnN9//z0PP/ww+fn57Ny5s+R4sAnuLbfcwhFHHBHTnMEthU899RT79+8vOR5cxRo1ahQdO3bkySefjGleERERkfpECZRE6/iNGzce3rFjx2/8DiRZBMuH5+bmsnr16rBzRx99NCNHjoy5fPju3buZM2cO9913H99//33YuYyMDCZMmMAJJ5wQ05yJ2FIoIiIiUl8pgZKoHThwYCBwn99xJIOCggImTpzI0qVLw453796dG2+8kcsvv5y0tLSo56usCW6fPn0YN24cAwYMiCnGXbt28cgjj1S4pfC2227j2GOPjWlOERERkfpOCZRELXAfVL1OoN5//31yc3N57733wo63bduW6667jt///vc0bNgw6vmC5cMnT57MN9+EL+717NmT0aNHk5mZGVMvpmAyNmXKFDZt2hR27uSTT2b8+PGcfvrpUc8nIiIiIqWUQEksfrply5aW7dq1+8HvQGrb0qVLueeee8qVD2/dujXDhg2rdhPcO++8k08//TTseJcuXbjppptiboJb2ZbCo446iptvvjnmLYUiIiIiEk4JlMSicVFR0c+Af/gdSG1ZuXIleXl55ZrgNm3alKuvvrraTXAnT57M22+HFzVs06YNN9xwA0OHDqVx48YxzVlQUMCf/vQnvvjii7Dj3bp1Y/jw4TEnYyIiIiISmRIoiVUm9SCBKiwsZPr06VVWrIvF8uXLmTp1arlkLNgEtzrJ2Ntvv82kSZP48MMPw4537NiRkSNHctlll8W8pTC0z5SIiIiIhFMCJbEaBKQBxX4Hkgjbt29n1qxZzJ49mz179pQcD5YPr07FunXr1jFjxowKm+COGTOG9u3bxzTnJ598wqRJk/jPf/4TdrxVq1YlWwqbNm0a05yvv/46kyZNYsuWLSXHYimEUZsC9+NdBAw3s91+x1MXOEcHoBmw2gyraryIiEh9pQRKYtVhw4YNJ3fq1Ol9vwOJp6oq1t16660cd9xxMc25bds27r///grLh48fP55DDz00pjm//vpr8vLymD9/frkthddccw3Dhg2jVatWMc25ZMkScnNzWbRoUdjxrl27xlwyvTY457oB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" + } + }, + "cell_type": "markdown", + "id": "18a9f60f", + "metadata": {}, + "source": [ + "
\n", + "\n", "
" ] }, - { - "cell_type": "markdown", - "id": "4ec6718c", - "metadata": {}, - "source": [ - " a) The processes are synchronized in each iteration due to the blocking send and receive of row k.\n", - " b) Receiving processes may overwrite the data in row k, which can lead to incorrect behavior.\n", - " c) The sending process can only continue the computation after the data are received in every other process.\n", - " d) The receiving process does not know the source of the received data." - ] - }, { "cell_type": "code", "execution_count": null, - "id": "4f4a57de", + "id": "138c77eb", "metadata": {}, "outputs": [], "source": [ - "answer = \"x\" # replace x with a, b, c or d\n", - "floyd_impl_check(answer)" - ] - }, - { - "cell_type": "markdown", - "id": "c624722a", - "metadata": {}, - "source": [ - "### Testing the implementation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "09937668", - "metadata": {}, - "outputs": [], - "source": [ - "function rand_distance_table(n)\n", - " threshold = 0.4\n", - " mincost = 3\n", - " maxcost = 10\n", - " infinity = 10000*maxcost\n", - " C = fill(infinity,n,n)\n", - " for j in 1:n\n", - " for i in 1:n\n", - " if rand() > threshold\n", - " C[i,j] = rand(mincost:maxcost)\n", - " end\n", + "code3 = quote\n", + " function floyd_iterations!(myC,comm)\n", + " L = size(myC,1)\n", + " N = size(myC,2)\n", + " rank = MPI.Comm_rank(comm)\n", + " P = MPI.Comm_size(comm)\n", + " lb = L*rank+1\n", + " ub = L*(rank+1)\n", + " C_k = similar(C,N)\n", + " for k in 1:N\n", + " if (lb<=k) && (k<=ub)\n", + " # Send row k to other workers if I have it\n", + " myk = (k-lb)+1\n", + " C_k[:] = view(myC,myk,:)\n", + " for dest in 0:(P-1)\n", + " if rank == dest\n", + " continue\n", + " end\n", + " MPI.Send(C_k,comm;dest)\n", + " end\n", + " else\n", + " # Wait until row k is received\n", + " MPI.Recv!(C_k,comm,source=MPI.ANY_SOURCE)\n", + " end\n", + " # Now, we have the data dependencies and\n", + " # we can do the updates locally\n", + " for j in 1:N\n", + " for i in 1:L\n", + " myC[i,j] = min(myC[i,j],myC[i,k]+C_k[j])\n", + " end\n", + " end\n", + " end\n", + " myC\n", " end\n", - " C[j,j] = 0\n", - " end\n", - " C\n", - "end" + "end;" + ] + }, + { + "cell_type": "markdown", + "id": "ad1c3fca", + "metadata": {}, + "source": [ + "### Collecting back the results\n", + "\n", + "At this point, we have solved the ASP problem, but the solution is cut in different pieces, each one stored on a different MPI rank. It is often useful to gather the solution into a single matrix, e.g., to compare it against the sequential algorithm.The following function collects all pieces and stores them in $C$ on rank 0. Again, we implement this with `MPI.Send` and `MPI.Recv!` as it is easier as we are working with a row-partition. However, we could do it also with `MPI.Gather!`." ] }, { "cell_type": "code", "execution_count": null, - "id": "dd77ee3d", + "id": "c12fd15d", "metadata": {}, "outputs": [], "source": [ - "using Test\n", - "load = 10\n", - "n = nworkers()*load\n", - "C = rand_distance_table(n)\n", - "C_seq = floyd!(copy(C))\n", - "C_par = floyd_dist!(copy(C))\n", - "@test C_seq == C_par" + "code4 = quote\n", + " function collect_result!(C,myC,comm)\n", + " L = size(myC,1)\n", + " rank = MPI.Comm_rank(comm)\n", + " P = MPI.Comm_size(comm)\n", + " if rank == 0\n", + " lb = L*rank+1\n", + " ub = L*(rank+1)\n", + " C[lb:ub,:] = myC\n", + " for source in 1:(P-1)\n", + " lb = L*source+1\n", + " ub = L*(source+1)\n", + " MPI.Recv!(view(C,lb:ub,:),comm;source)\n", + " end\n", + " else\n", + " dest = 0\n", + " MPI.Send(myC,comm;dest)\n", + " end\n", + " C\n", + " end\n", + "end;" + ] + }, + { + "cell_type": "markdown", + "id": "cbca58aa", + "metadata": {}, + "source": [ + "### Running and testing the code\n", + "\n", + "In the cell below, we run the parallel code and compare it against the sequential. Note that we can only compare both results on rank 0 since this is the only one that contains the result of the parallel code. We have also included a function that generates random distance tables of a given size $N$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2daef9be", + "metadata": {}, + "outputs": [], + "source": [ + "code = quote\n", + " using MPI\n", + " MPI.Init()\n", + " $code1\n", + " $code2\n", + " $code3\n", + " $code4\n", + " function input_distance_table(n)\n", + " threshold = 0.1\n", + " mincost = 3\n", + " maxcost = 9\n", + " inf = 10000\n", + " C = fill(inf,n,n)\n", + " for j in 1:n\n", + " for i in 1:n\n", + " if rand() > threshold\n", + " C[i,j] = rand(mincost:maxcost)\n", + " end\n", + " end\n", + " C[j,j] = 0\n", + " end\n", + " C\n", + " end\n", + " function floyd!(C)\n", + " n = size(C,1)\n", + " @assert size(C,2) == n\n", + " for k in 1:n\n", + " for j in 1:n\n", + " for i in 1:n\n", + " @inbounds C[i,j] = min(C[i,j],C[i,k]+C[k,j])\n", + " end\n", + " end\n", + " end\n", + " C\n", + " end\n", + " comm = MPI.Comm_dup(MPI.COMM_WORLD)\n", + " rank = MPI.Comm_rank(comm)\n", + " if rank == 0\n", + " N = 24\n", + " else\n", + " N = 0\n", + " end\n", + " C = input_distance_table(N)\n", + " C_par = copy(C)\n", + " floyd_mpi!(C_par,comm)\n", + " if rank == 0\n", + " C_seq = copy(C)\n", + " floyd!(C_seq)\n", + " if C_seq == C_par\n", + " println(\"Test passed 🥳\")\n", + " else\n", + " println(\"Test failed\")\n", + " end\n", + " end\n", + "end\n", + "run(`$(mpiexec()) -np 3 julia --project=. -e $code`);" ] }, { @@ -909,10 +971,12 @@ "id": "91a772df", "metadata": {}, "source": [ - "### Is this implementation correct?\n", + "## Is this implementation correct?\n", "\n", - "Point-to-point messages are *non-overtaking* (i.e. FIFO order) between the specified sender and receiver according to section 3.5 of the MPI standard 4.0.\n", - "Unfortunately this is not enough in this case. The messages can still arrive in the wrong order if messages from different processes overtake each other." + "In the cell above, the result of the parallel code was provably the same as for the sequential code. However, is this sufficient to assert that the code is correct? Unfortunately no. In fact, the parallel code we implemented is not correct. There is no guarantee that this code computes the correct result. This is why:\n", + "\n", + "In MPI, point-to-point messages are *non-overtaking* between a given sender and receiver. Say that process 1 sends several messages to process 3. All these will arrive in FIFO order. This is according to section 3.5 of the MPI standard 4.0.\n", + "Unfortunately, this is not enough in our case. The messages could arrive in the wrong order *from different senders*. If process 1 sends messages to process 3, and then process 2 sends other messages to process 3, it is not granted that process 3 will receive first the messages from process 1 and then from process 2 (see figure below)." ] }, { @@ -920,7 +984,7 @@ "id": "1277772d", "metadata": {}, "source": [ - "If we are lucky all messages will arrive in order and we will process all rows in the right order in all processors." + "If we are lucky all messages will arrive in order. In our parallel code, all processors would receive first row one, then row 2, then row 3, etc. The computed result will be correct." ] }, { @@ -943,7 +1007,7 @@ "id": "df60e4e7", "metadata": {}, "source": [ - "However, FIFO ordering is not enough. In the next figure, communication between process 1 and process 3 is particularly slow. Note that process 3 receives messages from process 1 after it receives the messages from 2 even though FIFO ordering is satisfied between any two processors." + "However, FIFO ordering between pairs of processors is not enough to guarantee that rows arrive in consecutive order. The next figure shows a counter example. In this case, communication between process 1 and process 3 is particularly slow for some unknown reason. As result processor 3 receives first messages from processor 2, even though processor 1 sent the messages first. In our parallel code, the received rows would be first row 3, then row 4, then row 1, then row 2, which is not correct. Note however that process 3 received all messages from process 1 in the correct order (guaranteed by MPI). But this is not enough in our algorithm." ] }, { @@ -968,10 +1032,25 @@ "source": [ "### Possible solutions\n", "\n", + "There are several solution to this synchronization problem:\n", + "\n", "1. **Synchronous sends**: Use synchronous send MPI_SSEND. This is less efficient because we spend time waiting until each message is received. Note that the blocking send MPI_SEND used above does not guarantee that the message was received. \n", "2. **MPI.Barrier**: Use a barrier at the end of each iteration over $k$. This is easy to implement, but we get a synchronization overhead.\n", - "3. **Order incoming messages**: The receiver orders the incoming messages, e.g. according to MPI.Status or the sender rank. This requires buffering and extra user code.\n", - "4. **MPI.Bcast!**: Communicate row k using `MPI.Bcast!`. One needs to know which are the rows owned by the other ranks." + "3. **Order incoming messages**: The receiver orders the incoming messages, e.g. using to MPI.Status to get the sender rank. This requires buffering and extra user code.\n", + "4. **MPI.Bcast!**: Communicate row k using `MPI.Bcast!`. One needs to know which are the rows owned by the other ranks since we cannot use `MPI.ANY_SOURCE` in `MPI.Bcast!`. This is trivial however if the number of rows is multiple of the number of ranks." + ] + }, + { + "cell_type": "markdown", + "id": "7c8a16e4", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "- We learned how to parallelize Floyd's algorithm.\n", + "- The considered strategy based on a row-wise data partition has little communication overhead if the problem size is large enough.\n", + "- One needs to be careful in which order the messages are received to have a correct algorithm.\n", + "- There are several strategies to solve this synchronization problem, each one with pros and cons.\n" ] }, { @@ -979,61 +1058,11 @@ "id": "de96ad1b", "metadata": {}, "source": [ - "## Exercise \n", - "Rewrite the worker code of the parallel ASP algorithm so it runs correctly. Use the `MPI.Bcast!` to solve the problem of overtaking messages. Note: Only use `MPI.Bcast!`, do not use other MPI directives in addition. You can test your function with the following code cell. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "31194529", - "metadata": {}, - "outputs": [], - "source": [ - "function floyd_par!(C,N)\n", - " comm = MPI.Comm_dup(MPI.COMM_WORLD)\n", - " nranks = MPI.Comm_size(comm)\n", - " rank = MPI.Comm_rank(comm)\n", - " T = eltype(C)\n", - " if rank == 0\n", - " buffer_root = Vector{T}(undef,N*N)\n", - " buffer_root[:] = transpose(C)[:]\n", - " else\n", - " buffer_root = Vector{T}(undef,0)\n", - " end \n", - " Nw = div(N,nranks)\n", - " buffer = Vector{T}(undef,Nw*N)\n", - " MPI.Scatter!(buffer_root,buffer,comm;root=0)\n", - " Cw = Matrix{T}(undef,Nw,N)\n", - " transpose(Cw)[:] = buffer\n", - " MPI.Barrier(comm)\n", - " floyd_worker_bcast!(Cw,comm)\n", - " buffer[:] = transpose(Cw)[:]\n", - " MPI.Gather!(buffer,buffer_root,comm;root=0)\n", - " if rank == 0\n", - " transpose(C)[:] = buffer_root[:]\n", - " end\n", - " C\n", - "end\n", + "## Exercise\n", "\n", - "@everywhere function floyd_worker_bcast!(Cw,comm)\n", - " # Your implementation here\n", - "end\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1b7eb4c2", - "metadata": {}, - "outputs": [], - "source": [ - "load = 10\n", - "n = nworkers()*load\n", - "C = rand_distance_table(n)\n", - "C_seq = floyd!(copy(C))\n", - "C_par = floyd_par!(copy(C),n)\n", - "@test C_seq == C_par" + "### Exercise 1\n", + "\n", + "Modify the `floyd_iterations!` function so that it is guaranteed that the result is computed correctly. Use `MPI.Bcast!` to solve the synchronization problem. Note: only use `MPI.Bcast!`in `floyd_iterations!`, do not use other MPI directives. " ] }, { diff --git a/notebooks/figures/fig_jacobi.svg b/notebooks/figures/fig_jacobi.svg index b2d5321..0babb12 100644 --- a/notebooks/figures/fig_jacobi.svg +++ b/notebooks/figures/fig_jacobi.svg @@ -2985,9 +2985,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.48951065" - inkscape:cx="9359.0459" - inkscape:cy="1494.9076" + inkscape:zoom="1.3845452" + inkscape:cx="9572.9314" + inkscape:cy="1546.0048" inkscape:document-units="mm" inkscape:current-layer="layer1" inkscape:document-rotation="0" @@ -137511,991 +137511,6 @@ y="484.46548" />81234921531234123412935000012341234129350000Inputk=0infinf1234921531234123412935000012341234infinf1infinf2infinfinf9infinf3infinf5infinf0000Inputk=0infinfinfinfinfinfinfinfinfinfinfinfinfinf