10 likes | 145 Views
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.
E N D
P0 P1 P2 P3 Builder Construct application using framework builder services f energy u cartesian coordinates uinternal coordinates g gradient in cartesians g gradient in internals H Hessian in cartesians H Hessian in internals s update in internals GA NWChem MPQC PETSc Center for Component Technology for Terascale Simulation Software CCA Common Component Architecture CCA-Chemistry Project GUI User Input • 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. Build options • Evaluate component technology as an approachfor 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? Ui+1 (Visualization) Solver ui+1 = ui + αs … Coordinate Model perform transformations f,g,H Ui+1 g,H s Ui+1 f,g,H Model Object Linear Algebra Objects Linear Algebra Factory Model Factory 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. Component-based software engineering • 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 CCaffeine framework snapshot. 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) 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 Components: Blue, Green, Red Framework: Gray Component-framework interaction in high-performance, parallel computing. CCA in Grid Workflow for Weather Prediction Isoprene HF/6-311G(2df,2pd) parallel speedup in MPQC-based Applications. CCA does not adversely impact application performance. • 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. f77 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 f90 C C++ Python f77 Java Language interoperability before Babel. f90 C • 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++ SCIRun 2 - bridging component technologies. • An example of a PDE solver that integrates SciRun, CORBA and VTK components. C++ Python Java Language interoperability with Babel.