Hi all,
I need to solve a large linear system, often in parallel since the number of unknowns won't fit on one computer. The code should also work in serial on smaller systems. So if the I ask for cholesky on 1 processor, the performance should be like in LAPACK... if not, let me know and I'll call out to LAPACK instead.
**The matrix is SPD.** (It's from a linear elasticity problem discretized with CG finite elements.)
**I'm coding in C.** (The rest of the project is in C; this is not negotiable.)
**This is a temporary solution, so it needs to work correctly & not be horribly slow. But I don't have long to set it up, so ease of implementation is a plus.**
I would like a linear algebra library/package (or set of of libraries/packages) that can cover the following capabilities:
1) reasonable speed in parallel AND serial*
2) iterative solver (Conjugate Gradients) AND preconditioners (at least ILU(0))
3) Cholesky with the option of reordering for sparsity (e.g. nested dissection)
4) Easy to interface with C (i.e. written in like F77 or C).
Could you guys suggest/share experiences with libraries/packages that provide my desired features? I'd prefer only dealing with 1 'jack-of-all-trades' package, but if picking up a few specialized ones is better, that's fine too.
I've been searching around, and it seems like the most comprehensive package is going to be PETSc. I have 0 experience with PETSc but people in my group don't like it, claiming that it carries around a lot of overhead. Anyone have experience working with PETSc (in terms of performance & ease of use)?
Thanks,
-Eric
I need to solve a large linear system, often in parallel since the number of unknowns won't fit on one computer. The code should also work in serial on smaller systems. So if the I ask for cholesky on 1 processor, the performance should be like in LAPACK... if not, let me know and I'll call out to LAPACK instead.
**The matrix is SPD.** (It's from a linear elasticity problem discretized with CG finite elements.)
**I'm coding in C.** (The rest of the project is in C; this is not negotiable.)
**This is a temporary solution, so it needs to work correctly & not be horribly slow. But I don't have long to set it up, so ease of implementation is a plus.**
I would like a linear algebra library/package (or set of of libraries/packages) that can cover the following capabilities:
1) reasonable speed in parallel AND serial*
2) iterative solver (Conjugate Gradients) AND preconditioners (at least ILU(0))
3) Cholesky with the option of reordering for sparsity (e.g. nested dissection)
4) Easy to interface with C (i.e. written in like F77 or C).
Could you guys suggest/share experiences with libraries/packages that provide my desired features? I'd prefer only dealing with 1 'jack-of-all-trades' package, but if picking up a few specialized ones is better, that's fine too.
I've been searching around, and it seems like the most comprehensive package is going to be PETSc. I have 0 experience with PETSc but people in my group don't like it, claiming that it carries around a lot of overhead. Anyone have experience working with PETSc (in terms of performance & ease of use)?
Thanks,
-Eric