1. A computer-implemented method for solving linear equations, the method comprising: receiving, into a common memory, a plurality of coefficients, the common memory being accessible by one or more first processors and by one or more secondary processors, wherein the one or more first processors and the one or more second processors being chosen from a group of heterogeneous processors, and the coefficients corresponding to the linear equations; dividing the coefficients into a plurality of coefficient blocks using the one or more first processors; identifying an available processor from the secondary processors for processing one of the coefficient blocks; processing the coefficient block using the available secondary processor, the processing resulting in a sub-result; and storing the sub-result in the common memory.