center for component technology for terascale simulation software
DESCRIPTION
P0. P1. P2. P3. Builder Construct application using framework builder services. f energy u cartesian coordinates u internal coordinates g gradient in cartesians g gradient in internals H Hessian in cartesians H Hessian in internals s update in internals. GA. NWChem. - PowerPoint PPT PresentationTRANSCRIPT
Center for Component Technology for Terascale Simulation Software
CCA is about:
• Enhancing Programmer Productivity without sacrificing performance.
•Supporting multiple Programming Contexts: Local, parallel and distributed without imposing a specific model or environment on the user.
•Supporting multiple Programming languages: C, C++, Fortran, Fortran90, Java, Python
•Providing interchangeable data type standards: including multi-dimensional arrays and complex numbers.
•Enabling the reuse of Legacy Software: minimizing the effort required to incorporate existing software into a CCA environment.
CCACommon Component Architecture
P0 P1 P2 P3
Components: Blue, Green, Red
Framework: Gray
C
C++
f77
f90
Python
Java
C
C++
f77
f90
Python
Java
Isoprene HF/6-311G(2df,2pd) parallel speedup in MPQC-based Applications. CCA does not adversely impact application performance.
BuilderConstruct application using framework builder services
f,g,HUi+1sg,H
User Input
Ui+1
f,g,H
Build options
GA
PETSc
Ui+1
(Visualization)
f energy
u cartesian coordinates
u internal coordinates
g gradient in cartesians
g gradient in internals
H Hessian in cartesians
H Hessian in internals
s update in internals
Linear AlgebraFactory
Solverui+1 = ui + αs …
ModelFactory
MPQC
NWChem
Linear AlgebraObjects
Coordinate Modelperform transformations
ModelObject
GUI
• Difficult problems require complex software solutions – Collaboration allows developers to focus on their area of expertise so
functionality and quality of software are increased • Components = Composition
– A component is a unit of software deployment/reuse
– Components interact through standard interfaces without restrictions on implementation (language, parallel model, etc.)
– A component architecture specifies a framework for composition of units into applications
– Application programming tasks are reduced to interaction with a framework interface – users construct custom applications from “off-the-shelf” components
• The Common Component Architecture (CCA) Forum provides a specification and software tools for the development of high-performance components
Component-based software engineering
CCaffeine framework snapshot.
Components in SPMD/MPI simulations
• “Direct-connect” single-component multiple-data model– Identical components loaded into each
process• Framework allows sharing of
interfaces between components in the same process, overhead similar to virtual function call
– Interprocess communication handled by standard parallel models, no component-imposed overhead
Language interoperability with Babel
• Existing language interoperability approaches are insufficient– Pairwise solutions require a programmer
to learn O(n2) approaches to integrate packages in n different languages
– No support for scientific data types
• Babel provides a unified approach to language interoperability
• Scientific data types (complex types, fully-featured arrays, etc.) and a Java-like object model are available in all supported languages– For example, Fortran implementations are exposed as
classes in C++
Component-framework interaction in high-performance, parallel computing.
CCA-Chemistry Project
• Evaluate component technology as an approach for high-performance software development, both within and outside the chemistry domain
• Provide feedback to CCA Forum and framework/tool developers
• Proof of concept: molecular structure optimization– Gain interoperability between chemistry packages– Incorporate and evaluate generic mathematics
packages– What improvements are needed for good performance
of generic mathematics routines in the chemistry domain?
– Will state-of-the-art mathematics routines provide better performance than application specific routines written by chemistry package developers?
Language interoperability before Babel.
Language interoperability with Babel.
SCIRun 2 - bridging component technologies.
• An example of a PDE solver that integrates SciRun, CORBA and VTK components.
Figure 6. Schematic of component architecture for molecular structure optimization.
CCA Frameworks:
• CCaffeine – SPMD with MPI components. The CCA gold standard
• SCIRun 2 – Multithreaded parallel distributed and multi-paradigm
• XCAT4 – Web Services and Grid computing with workflow
• Legion-CCA – Merge of the Legion Grid platform with CCA
• CCAIN – A lightweight framework for Fortran90 apps
CCA Tools and Components:
• DCA – Coupling parallel apps running on different supercomputers
•Eclipse plugins -- Making interface design simple.
• The problem: compose a diverse set of applications running on a distributed set of resources into an adaptive event-driven workflow (NSF ITR LEAD Project)
• Each component is a web service that wraps an application.– Provides ports = web service ports– Uses ports = distributed events/notifications
+ redirected return values
• Control is Python script or BPEL.
CCA in Grid Workflow for Weather Prediction
CCA Component Libraries• Components derived from ARMCI (one-sided messaging), CUMULVS (visualization and parallel data redistribution),
CVODE (integrators), DRA (parallel I/O), Epetra (sparse linear solvers), Global Arrays (parallel programming), GrACE (structured adaptive meshes), netCDF and parallel netCDF (input/output), TAO (optimization), TAU (performance measurement), and TOPS (linear and nonlinear solvers).
• Web Services wrapped legacy applications (WRF, ARPS, ADAS (weather), ADaM (data mining), BLAST (genomics)• SCIRun library and VTK (visualization)