Get yourself a copy of GreenbaumQuoteOriginally posted by: Dcole[...]However, it needs to be parallelized. I am having a bit of difficulty with this. Does anyone have any links to a good discussion of the PCG algorithm's parts, as well as what needs to be shared when doing it across multiple processors? I basically have my x0 defined as my initial mesh for this particle in cell problem. I am thinking i dont want to mess with CSR for the parallel version because the accounting and packing/unpacking could get nasty.[...]CG comprises simple vector operations (dot products, addition etc) and matrix-vector products. The vector operations easily parallelised. The matrix-vector products require more thought but can be well parallelised. I presume you will be able to find some reference implementations with google.QuoteOriginally posted by: Dcole[...]Also as a side note - it seems every single reference i find on the internet has a different set of vars defined for the PCG algorithm, and uses a different pre-conditioner. And none of them seem to use the same preconditioner this linear solver I am working on uses (basically a multiply through by the original diagonal best I can tell). Does the preconditioner part happen only at the beggining of the iterations, before they start, or sporadically throughout if the solver is starting to get stuck or some such thing?[...]Preconditioners are inherently problem specific. The diagonal preconditioner you describe is about the simplest, and is rarely useful. The preconditioner is applied within every iteration of CG.