mirror of
https://github.com/fverdugo/XM_40017.git
synced 2025-11-08 21:44:23 +01:00
540 lines
161 KiB
Plaintext
540 lines
161 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "46d0dd15",
|
||
"metadata": {},
|
||
"source": [
|
||
"<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/VU_logo.png/800px-VU_logo.png?20161029201021\" width=\"350\">\n",
|
||
"\n",
|
||
"### Programming large-scale parallel systems\n",
|
||
"\n",
|
||
"# Gaussian elimination"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ff0fbd76",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Contents\n",
|
||
"\n",
|
||
"In this notebook, we will learn\n",
|
||
"\n",
|
||
"- How to parallelize Gaussian elimination\n",
|
||
"- How to fix static load imbalance"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "480af594",
|
||
"metadata": {},
|
||
"source": [
|
||
"<div class=\"alert alert-block alert-info\">\n",
|
||
"<b>Note:</b> Do not forget to execute the cell below before starting this notebook! \n",
|
||
"</div>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "7e93809a",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"ge_dep_check (generic function with 1 method)"
|
||
]
|
||
},
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"using Printf\n",
|
||
"function answer_checker(answer,solution)\n",
|
||
" if answer == solution\n",
|
||
" \"🥳 Well done! \"\n",
|
||
" else\n",
|
||
" \"It's not correct. Keep trying! 💪\"\n",
|
||
" end |> println\n",
|
||
"end\n",
|
||
"ge_par_check(answer) = answer_checker(answer, \"a\")\n",
|
||
"ge_dep_check(answer) = answer_checker(answer, \"b\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8dcee319",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Gaussian elimination\n",
|
||
"\n",
|
||
"\n",
|
||
"[Gaussian elimination](https://en.wikipedia.org/wiki/Gaussian_elimination) is a method to solve systems of linear equations, e.g.\n",
|
||
"\n",
|
||
"$$\n",
|
||
"\\left[\n",
|
||
"\\begin{matrix}\n",
|
||
"1 & 3 & 1 \\\\\n",
|
||
"1 & 2 & -1 \\\\\n",
|
||
"3 & 11 & 5 \\\\\n",
|
||
"\\end{matrix}\n",
|
||
"\\right]\n",
|
||
"\\left[\n",
|
||
"\\begin{matrix}\n",
|
||
"x \\\\\n",
|
||
"y \\\\\n",
|
||
"z \\\\\n",
|
||
"\\end{matrix}\n",
|
||
"\\right]\n",
|
||
"=\n",
|
||
"\\left[\n",
|
||
"\\begin{matrix}\n",
|
||
"9 \\\\\n",
|
||
"1 \\\\\n",
|
||
"35 \\\\\n",
|
||
"\\end{matrix}\n",
|
||
"\\right]\n",
|
||
"$$\n",
|
||
"\n",
|
||
"The steps of the Gaussian elimination will transform the system into an upper triangular matrix. The system of linear equations can now easily be solved by backward substitution. \n",
|
||
"\n",
|
||
"\n",
|
||
"$$\n",
|
||
"\\left[\n",
|
||
"\\begin{matrix}\n",
|
||
"1 & 3 & 1 & 9 \\\\\n",
|
||
"1 & 2 & -1 & 1 \\\\\n",
|
||
"3 & 11 & 5 & 35 \\\\\n",
|
||
"\\end{matrix}\n",
|
||
"\\right]\n",
|
||
"\\rightarrow\n",
|
||
"\\left[\n",
|
||
"\\begin{matrix}\n",
|
||
"1 & 3 & 1 & 9 \\\\\n",
|
||
"0 & -1 & -2 & -8 \\\\\n",
|
||
"0 & 2 & 2 & 8 \\\\\n",
|
||
"\\end{matrix}\n",
|
||
"\\right]\n",
|
||
"\\rightarrow\n",
|
||
"\\left[\n",
|
||
"\\begin{matrix}\n",
|
||
"1 & 3 & 1 & 9 \\\\\n",
|
||
"0 & 1 & 2 & 8 \\\\\n",
|
||
"0 & 2 & 2 & 8 \\\\\n",
|
||
"\\end{matrix}\n",
|
||
"\\right]\n",
|
||
"\\rightarrow\n",
|
||
"\\left[\n",
|
||
"\\begin{matrix}\n",
|
||
"1 & 3 & 1 & 9 \\\\\n",
|
||
"0 & 1 & 2 & 8 \\\\\n",
|
||
"0 & 0 & -2 & -8 \\\\\n",
|
||
"\\end{matrix}\n",
|
||
"\\right]\n",
|
||
"\\rightarrow\n",
|
||
"\\left[\n",
|
||
"\\begin{matrix}\n",
|
||
"1 & 3 & 1 & 9 \\\\\n",
|
||
"0 & 1 & 2 & 8 \\\\\n",
|
||
"0 & 0 & 1 & 4 \\\\\n",
|
||
"\\end{matrix}\n",
|
||
"\\right]\n",
|
||
"$$\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "94c10106",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Serial implementation\n",
|
||
"The following algorithm computes the Gaussian elimination on a matrix which represents a system of linear equations.\n",
|
||
"- The first inner loop in line 4 divides the current row by the value of the diagonal entry, thus transforming the diagonal to contain only ones. \n",
|
||
"- The second inner loop beginning in line 8 substracts the rows from one another such that all entries below the diagonal become zero. "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "e4070214",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"gaussian_elimination! (generic function with 1 method)"
|
||
]
|
||
},
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"function gaussian_elimination!(B)\n",
|
||
" n,m = size(B)\n",
|
||
" @inbounds for k in 1:n\n",
|
||
" for t in (k+1):m\n",
|
||
" B[k,t] = B[k,t]/B[k,k]\n",
|
||
" end\n",
|
||
" B[k,k] = 1\n",
|
||
" for i in (k+1):n \n",
|
||
" for j in (k+1):m\n",
|
||
" B[i,j] = B[i,j] - B[i,k]*B[k,j]\n",
|
||
" end\n",
|
||
" B[i,k] = 0\n",
|
||
" end\n",
|
||
" end\n",
|
||
" B\n",
|
||
"end"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3763b000",
|
||
"metadata": {},
|
||
"source": [
|
||
"<div class=\"alert alert-block alert-info\">\n",
|
||
"<b>Note:</b> This algorithm is not correct for all matrices: if any diagonal element <code>B[k,k]</code> is zero, the computation in the first inner loop fails. To get around this problem, another step can be added to the algorithm that swaps the rows until the diagonal entry of the current row is not zero. This process of finding a nonzero value is called <b>pivoting</b>. \n",
|
||
"</div>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "eb30df0d",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"3×4 Matrix{Float64}:\n",
|
||
" 1.0 3.0 1.0 9.0\n",
|
||
" 0.0 1.0 2.0 8.0\n",
|
||
" 0.0 0.0 1.0 4.0"
|
||
]
|
||
},
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"A = Float64[1 3 1; 1 2 -1; 3 11 5]\n",
|
||
"b = Float64[9,1,35]\n",
|
||
"B = [A b]\n",
|
||
"gaussian_elimination!(B)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8d941741",
|
||
"metadata": {},
|
||
"source": [
|
||
"The result is an upper triangular matrix which can be used to solve the system by backward substitution. "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "39f2e8ef",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Parallelization\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1b1a6469",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Where can we extract parallelism?\n",
|
||
"\n",
|
||
"```julia\n",
|
||
"n,m = size(B)\n",
|
||
"for k in 1:n\n",
|
||
" for t in (k+1):m\n",
|
||
" B[k,t] = B[k,t]/B[k,k]\n",
|
||
" end\n",
|
||
" B[k,k] = 1\n",
|
||
" for i in (k+1):n \n",
|
||
" for j in (k+1):m\n",
|
||
" B[i,j] = B[i,j] - B[i,k]*B[k,j]\n",
|
||
" end\n",
|
||
" B[i,k] = 0\n",
|
||
" end\n",
|
||
"end\n",
|
||
"```"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e52c4b38",
|
||
"metadata": {},
|
||
"source": [
|
||
"<div class=\"alert alert-block alert-success\">\n",
|
||
"<b>Question:</b> Which of the loops can be parallelized?\n",
|
||
"</div>\n",
|
||
"\n",
|
||
" a) the inner loops, but not the outer loop\n",
|
||
" b) the outer loop, but not the inner loops\n",
|
||
" c) all loops\n",
|
||
" d) only the first inner loop"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "078e974e",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"It's not correct. Keep trying! 💪\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"answer = \"x\" # replace x with a, b, c, or d \n",
|
||
"ge_par_check(answer)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "14d57c52",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Two possible data partitions"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "c518f863",
|
||
"metadata": {},
|
||
"source": [
|
||
"The outer loop of the algorithm is not parallelizable, since the iterations depend on the results of the previous iterations. However, we can extract parallelism from the inner loops. Let's have a look at two different parallelization schemes. \n",
|
||
"\n",
|
||
"1. **Block-wise partitioning**: Each processor gets a block of subsequent rows. \n",
|
||
"2. **Cyclic partitioning**: The rows are cyclicly distributed among the processors. "
|
||
]
|
||
},
|
||
{
|
||
"attachments": {
|
||
"g23933.png": {
|
||
"image/png": "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"
|
||
}
|
||
},
|
||
"cell_type": "markdown",
|
||
"id": "f06f0869",
|
||
"metadata": {},
|
||
"source": [
|
||
"<div>\n",
|
||
"<img src=\"attachment:g23933.png\" align=\"left\" width=\"400\"/>\n",
|
||
"</div>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a67e0aad",
|
||
"metadata": {},
|
||
"source": [
|
||
"## What is the work per process at iteration k?\n",
|
||
"To evaluate the efficiency of both partitioning schemes, consider how much work the processors do in the following example. \n",
|
||
"In any iteration k, which part of the matrix is updated in the inner loops? "
|
||
]
|
||
},
|
||
{
|
||
"attachments": {
|
||
"g26595.png": {
|
||
"image/png": "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"
|
||
}
|
||
},
|
||
"cell_type": "markdown",
|
||
"id": "53a94ed3",
|
||
"metadata": {},
|
||
"source": [
|
||
"<div>\n",
|
||
"<img src=\"attachment:g26595.png\" align=\"left\" width=\"250\"/>\n",
|
||
"</div>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d083cd53",
|
||
"metadata": {},
|
||
"source": [
|
||
"It is clear from the code that at a given iteration `k`, the matrix is updated from row `k` to `n` and from column `k` to `m`. If we look at how that reflects the distribution of work over the processes, we can see that CPU 1 does not have any work, whereas CPU 2 does a little work and CPU 3 and 4 do a lot of work. Thus, the work load is _imbalanced_ across the different processes. "
|
||
]
|
||
},
|
||
{
|
||
"attachments": {
|
||
"g26786.png": {
|
||
"image/png": "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"
|
||
}
|
||
},
|
||
"cell_type": "markdown",
|
||
"id": "0d80cd72",
|
||
"metadata": {},
|
||
"source": [
|
||
"<div>\n",
|
||
"<img src=\"attachment:g26786.png\" align=\"left\" width=\"250\"/>\n",
|
||
"</div>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6409890d",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Load imbalance\n",
|
||
"\n",
|
||
"- CPUs with rows <k are idle during iteration k\n",
|
||
"- Bad load balance means bad speedups, as some CPUs are waiting instead of doing useful work\n",
|
||
"- Solution: cyclic partition \n",
|
||
" \n",
|
||
"### Data dependencies\n",
|
||
" \n",
|
||
"<div class=\"alert alert-block alert-success\">\n",
|
||
"<b>Question:</b> What are the data dependencies of this partitioning?\n",
|
||
"</div>\n",
|
||
"\n",
|
||
" a) CPUs with rows >k need all rows <=k\n",
|
||
" b) CPUs with rows >k need part of row k\n",
|
||
" c) All CPUs need row k \n",
|
||
" d) CPUs with row k needs all rows >k \n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "e0565e92",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"It's not correct. Keep trying! 💪\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"answer = \"x\" # replace x with a, b, c, or d \n",
|
||
"ge_dep_check(answer)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b90252f1",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Cyclic partition\n",
|
||
"\n",
|
||
"In contrast, if we look at how the work is balanced for the same example and cyclic partitioning, we find that the processes have similar work load. "
|
||
]
|
||
},
|
||
{
|
||
"attachments": {
|
||
"g27009.png": {
|
||
"image/png": "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EHcRERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERGpji2AtzzTGfGGIyIikl9D3AGISEV1A3byzD8RVyAiIiJh1MUdgIiIiIhImpJTEREREUkMJaciIiIikhhKTkVEREQkMZScioiIiEhiKDkVERERkcTQUFIikks3oLNv2RKgLYZYntGJiwAAIABJREFURESkRqjkVESC7A5MBxZ6pl8BbowxiYiIiEgHtwOWUKany0NscyTQ5NmmBT1ZSkRERETKIGpyei7Q6ll/OXBIJQMUERERkdoRNjmtB270rTsH2LkKMYqIiHxFHaJEpAtwF3C0Z9kUYCTwSSwRiYhIzVJyKlLb+gKPAnt4lo0DDgO+iCUiERGpaeqtL1K7NgNeJTMxfQTYByWmIiISEyWnIrXpW8BrwBaeZdcDR2E99UVEREREyi6oQ9QoYIVnWRs2hqmIiIiISEX5k9NJZA4V1URmRygRERERkYrxJ6f+6ab4QhMRERGRWuNPTt8Cmn3LLootOhERERGpKUFtTg8FVvmWXxlXgCIiIiJSO3I9IWoksNL3t6sBJ4YYRURERKRG5Ht86V7AUt/f/4qGmBMRERGRCsmXnALsCSzxrXM3enqciIjERCUkIrXtZeyJUAs8y0ZjCWqnWCISEZGapuRURMYDw4E5nmXHAg8DXWKJSEREapaSUxEB+ADYG/jcs+wQLEHtGktEIiJSk5ScikjaR1gb1M88y0YCTwE9YolIRERqjpJTEfGahpWgfuJZtheWoPaMIyAREaktSk5FxG8GMAx4z7NsD+A5oG8sEYmISM3QgNsia7cewLc881OBKSG37Qvs6FsWZXsRERERERERERERERERERERERERERERERERERERkbVXgnrru32BI+OOQkRERBLtHXDejDsIqZyGuAPw2Ai4Oe4gREREJNF+Byg5XYslYBB+tw+423aqv+6suCMRERGRZGtoGHsUuNuCu2ncsUhlJKBa3z0LuCnuKERERKRDeQGcEXEHIeWXgJJTERERERGTpDanX5n33CS6dW6LO4wMF11/Pa1tbc1Xn3dep7hjCTJr/nwOOPPMtvcfeiixNxxbjhrV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"
|
||
}
|
||
},
|
||
"cell_type": "markdown",
|
||
"id": "6a4c4051",
|
||
"metadata": {},
|
||
"source": [
|
||
"<div>\n",
|
||
"<img src=\"attachment:g27009.png\" align=\"left\" width=\"250\"/>\n",
|
||
"</div>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "866824c6",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Conclusion\n",
|
||
"Cyclic partitioning tends to work well in problems with predictable load imbalance. It is a form of **static load balancing** which means using a pre-defined load schedule based on prior information about the algorithm (as opposed to **dynamic load balancing** which can schedule loads more flexibly during runtime). The data dependencies are the same as for the 1d block partitioning.\n",
|
||
"\n",
|
||
"At the same time, cyclic partitioning is not suitable for all communication patterns. For example, it can lead to a large communication overhead in the parallel Jacobi method, since the computation of each value depends on its neighbouring elements."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "20982b04",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Exercise\n",
|
||
"The actual implementation of the parallel algorithm is left as an exercise. Implement both 1d block and 1d cyclic partitioning and compare their performance. The implementation is closely related to that of Floyd's algorithm. To test your algorithms, generate input matrices with the function below (a random matrix is not enough, we need a non singular matrix that does not require pivoting). "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "a65cf8e6",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"tridiagonal_matrix (generic function with 1 method)"
|
||
]
|
||
},
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"function tridiagonal_matrix(n)\n",
|
||
" C = zeros(n,n)\n",
|
||
" stencil = [(-1,2,-1),(-1,0,1)]\n",
|
||
" for i in 1:n\n",
|
||
" for (coeff,o) in zip((-1,2,-1),(-1,0,1))\n",
|
||
" j = i+o\n",
|
||
" if j in 1:n\n",
|
||
" C[i,j] = coeff\n",
|
||
" end\n",
|
||
" end\n",
|
||
" end\n",
|
||
" C\n",
|
||
"end"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "31d8586a",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"n = 5\n",
|
||
"C = tridiagonal_matrix(n)\n",
|
||
"b = ones(n)\n",
|
||
"gaussian_elimination!(C)"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Julia 1.9.1",
|
||
"language": "julia",
|
||
"name": "julia-1.9"
|
||
},
|
||
"language_info": {
|
||
"file_extension": ".jl",
|
||
"mimetype": "application/julia",
|
||
"name": "julia",
|
||
"version": "1.9.1"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|