Parallel computers are often viewed as the only way to provide enough computing power to solve complex problems in scientific simulation. Unfortunately, the complexity of developing and validating a parallel program has limited the use of massive parallelism to “heroic" programmers. One solution to this problem is to build better, more programmable parallel computers or more effective parallel languages. Unfortunately, scientific computing no longer drives computing, even for parallel computers. As a result, the systems that many researchers use do not provide good support for massively parallel programming, and help is unlikely to come from computer system vendors. At the same time, numerical algorithms are increasingly sophisticated, making it difficult for any one group to develop or maintain a state-of-the-art code. The solution to these problems is the development of community-based standards and software for scientific computing. Open source software in particular has been an effective method for developing and distributing software, in large part because it makes it easy for any interested party to participate. Open source software such as the PETSc or Parasol libraries also makes it possible to tackle large scale scientific simulation problems. This point is illustrated by the success of PETSc in achieving over 220 GFlops on a fully unstructured CFD application, running on over 6000 processors.