1
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. CCA Common 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. Builder Construct application using framework builder services f,g,H U i+1 s g,H User Input U i+1 f,g,H Build options GA PETSc U i+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 Algebra Factory Solver u i+1 = u i + αs Model Factory MPQC NWChem Linear Algebra Objects Coordinate Model perform transformations Model Object 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(n 2 ) 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)

Center for Component Technology for Terascale Simulation Software

  • Upload
    micheal

  • View
    44

  • Download
    5

Embed Size (px)

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 Presentation

Citation preview

Page 1: Center for Component Technology for Terascale Simulation Software

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)