Abstract. We describe Cactus, a framework for building a variety of computing applications in science and engineering, including astrophysics, relativity and chemical engineering. We first motivate by example the need for such frameworks to support multi-platform, high performance applications across diverse communities. We then describe the design of the latest release of Cactus (Version 4.0) a complete rewrite of earlier versions, which enables highly modular, multi-language, parallel applications to be developed by single researchers and large collaborations alike. Making extensive use of abstractions, we detail how we are able to provide the latest advances in computational science, such as interchangeable parallel data distribution and high performance IO layers, while hiding most details of the underlying computational libraries from the application developer. We survey how Cactus 4.0 is being used by various application communities, and describe how it will also enable these applications to run on the computational Grids of the near future.
Application Frameworks in Scientific ComputingVirtually all areas of science and engineering, as well as an increasing number of other fields, are turning to computational science to provide crucial tools to further their disciplines. The increasing power of computers offers unprecedented ability to solve complex equations, simulate natural and man-made complex processes, and visualise data, as well as providing novel possibilities such as new forms of art and entertainment. As computational power advances rapidly, computational tools, libraries, and computing paradigms themselves also advance. In such an environment, even experienced computational scientists and engineers can easily find themselves falling behind the pace of change, while they redesign and rework their codes to support the next computer architecture. This