Download - Center for Component Technology for Terascale Simulation Software

Transcript
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)