Parallelized Decomposition is still the go-to for most problems and should always be your first approach.
GMRES iteration is your next tool, but it needs strong preconditioning for effective use.
If you are studying a well-known model, you can generally find good preconditioners natively in the literature. Use them!
If not, most modern PDE solvers will have the ability to test different preconditioners and combine them hierarchically (e.g., COMSOL Multiphysics, PETSc*, etc).
Additive Schwarz with on the subdomains is the most robust preconditioner I’ve found (aim for about per compute node to balance size with communication overhead).
Geometric Multigrid is finicky, but if you can get it working it is remarkable (Use it for elasticity!).
PETSc is the Portable, Extensible Toolkit for Scientific Computation.