A Component Architecture for High-Performance Scientific Computing
read more
Citations
Open MPI: Goals, Concept, and Design of a Next Generation MPI Implementation
The Tau Parallel Performance System
NWChem: Past, present, and future
References
The Grid 2: Blueprint for a New Computing Infrastructure
The Case Study
Component Software: Beyond Object-Oriented Programming
The GRID: Blueprint for a New Computing Infrastructure
Related Papers (5)
Frequently Asked Questions (22)
Q2. What are the three ports that are specified conveniences for component writers?
BasicParameterPort, and ParameterPortFactory are specified conveniences for component writers, to standardize some basic operations.
Q3. What is the focus of the research on richer interface descriptions?
Suitable specification, efficient enforcement, and extension of such constraints will be a focus area of long term research on richer interface descriptions.
Q4. What is the level of capability that is made available through the quantum chemistry interface?
Very high level capability, such as setting molecular geometries, wavefunction type, and basis sets and then computing energies, gradients, and Hessians is made available through the quantum chemistry interface.
Q5. What is the main reason why the CCA has been able to leverage Babel?
Since component technologies are an evolutionary step beyond object-oriented programming, the CCA has been able to leverage Babel and SIDL in the development of its component framework.
Q6. How does the dependence of F on neighboring points be achieved?
The dependence of F on neighboring points requires that steep variations of Φ be fully resolved in scattered time-dependent regions of the domain, which is usually achieved by increasing the grid density locally.
Q7. What are the main issues that must be resolved to build applications of such components?
Issues that must be resolved to build applications of such components include interacting with multiple communicating processes, the coexistence of multiple sophisticated run-time systems, message-passing libraries, threads, and efficient transfers of large data sets.
Q8. What are the main physics sub-problems of the reacting flow system?
For the class of reacting flow problems in which the authors are interested, the main physics sub-problems are: diffusion and convection (F), and chemical reactions (G).
Q9. What is the main reason for the trend toward multi-language applications to continue?
as the community builds more CCAcompliant components, some based on legacy codes, there is every reason to expect the trend toward multi-language applications to continue.
Q10. What is the MCT software package for constructing parallel couplings between distributed-memor?
MCT is a software package for constructing parallel couplings between MPIbased distributed-memory parallel applications which supports both sequential and concurrent couplings.
Q11. What are the other utilities that a component can use?
Additional utility services include permitting a component to access MPI, to receive connection events, and to establish its own interactive window with a user.
Q12. What are the main concerns of software developers for high-performance scientific computing?
the principal concerns of software developers for high-performance scientific computing have centered on increasing the scope and fidelity of their simulations, and then increasing the performance and efficiency to address the exceedingly long execution times that can accompany these goals.
Q13. What is the importance of a common interface for scientific data components?
Common interfaces are especially important for scientific data components, as the interfaces for numerical tools and application components often include a certain degree of specificity of the data structures used as input and output arguments.
Q14. What does the performance of the parallel component implementation show?
The parallel performance on 1 to 16 processes of a Linux cluster also demonstrate that the SPMD component implementation does not adversely affect parallel performance and scalability.
Q15. What other methods can be used to get a handle to a port?
Services also allows a user to get a handle to a port in order to make method calls on it (getPort(), getPortNonblocking(), releasePort()).
Q16. What is the common approach to ensuring that data is appropriately redistributed?
A much more user-friendly approach, which is also being actively pursued in the CCA, is to subsume the M × N data transfer capabilities into the CCA framework (i.e. as an optional CCA service) and make the framework responsible for ensuring that data is appropriately redistributed when required by method calls.
Q17. What is the approach to acquiring handles to all relevant ports?
This approach is considered better CCA programming practice than acquiring handles to all relevant ports once at the beginning of the component execution and releasing them only at the end, as it allows the use of a more dynamic component programming model.
Q18. What services allow the easy construction of application builder GUIs?
These services not only allow the easy construction of application builder GUIs, but also allow dynamic behavior of the application itself, for example, swapping components based on numerical or computational performance (Hovland et al.
Q19. What is the TSTT interface expected to evolve?
This interface is expected to evolve as the TSTT discretization library is developed, and this prototype component will be replaced with a more sophisticated variant that supports multiple discretization schemes and mesh types.
Q20. What are the main considerations for a component model?
the ease with which “legacy” code bases can be incorporated into a component-based environment, and the cost of doing so, are also important considerations.
Q21. What is the approach to integrating existing parallel code in a CCA environment?
The simplest approach to integrating existing parallel code in a CCA environment is to accept the parallel programming model used in the original code, rather than trying to impose a new CCAspecific one.
Q22. What are some of the tools which facilitate the componentization of existing software?
These include tools which automate much of the relatively mechanical work of setting up the “skeleton” of the files required to create ports and components, graphical “application builder” interfaces which connect to CCA frameworks, and tools which facilitate the “componentization” of existing software.