Multithreading: Introduction to Process Scheduling

Process Scheduling (via wikipedia) is defined as: The method by which threads, processes or data flows are given access to system resources (e.g. processor time, communications bandwidth). This is usually done to load balance and share system resources effectively or achieve a target quality of service. The need for a scheduling algorithm arises from the requirement for most modern systems to perform multitasking (executing more […]

Jacobi Method – An Iterative Method for Solving Linear Systems

Jacobi Method (via wikipedia): An algorithm for determining the solutions of a diagonally dominant system of linear equations. Each diagonal element is solved for, and an approximate value is plugged in. The process is then iterated until it converges. This algorithm is a stripped-down version of the Jacobi transformation method of matrix diagonalization.  In other words, Jacobi’s method […]

Gauss-Seidel Method – An Iterative Method for Solving Linear Systems

Gauss-Seidel Method (via wikipedia): also known as the Liebmann method or the method of successive displacement, is an iterative method used to solve a linear system of equations. It is named after the German mathematicians Carl Friedrich Gauss and Philipp Ludwig von Seidel, and is similar to the Jacobi method. Though it can be applied to any matrix with non-zero elements on the diagonals, convergence is only […]