I need to solve the same sparse linear system (300x300 to 1000x1000) with many right hand sides (300 to 1000). In addition to this first problem, I would also like to solve different systems, but with the same non-zero elements (just different values), that is many sparse systems with constant sparsity pattern. My matrices are undefinite.
Performance of the factorization and initialization is not important, but performance of the solve stage is. Currently I'm considering PaStiX or Umfpack, and I will probably play around with Petsc (which supports both solver) Are there libraries capable of taking advantage of my specific needs (vectorization, multi-threading) or should I rely on general solvers, and maybe modify them slightly for my needs ?
What if the sparse matrix is larger, up to $10^6 \times 10^6$ ?