1 / 1

Center for Component Technology for Terascale Simulation Software

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.

micheal
Download Presentation

Center for Component Technology for Terascale Simulation Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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.

More Related