Title: The DOE ACTS Collection Interfaces, Functionality and Interoperability New Methods for Developing Pe
1The DOE ACTS CollectionInterfaces,
Functionality and InteroperabilityNew Methods
for Developing Peta-Scalable CodesPittsburgh
Supercomputing Center, 2004
- Tony Drummond
- Lawrence Berkeley National Laboratory
- acts-support_at_nersc.gov
- LADrummond_at_lbl.gov
2Motivation- Why do we need software libraries?
Large Scientific Codes A Common Programming
Practice
Algorithmic Implementations
I/O
Application Data Layout
Control
Tuned and machine Dependent modules
3Motivation- Why do we need software libraries?
Algorithmic Implementations
I/O
Application Data Layout
Control
Tuned and machine Dependent modules
4Motivation- Why do we need software libraries?
An Alternative Approach
USER's APPLICATION CODE (Main Control)
AVAILABLE
AVAILABLE
Algorithmic Implementations
AVAILABLE
I/O
Application Data Layout
LIBRARIES
LIBRARIES PACKAGES
LIBRARIES PACKAGES
Tuned and machine Dependent modules
5Shortcomings?
"We need to move away from a coding style suited
for serial machines, where every macrostep of an
algorithm needs to be thought about and
explicitly coded, to a higher-level style, where
the compiler and library tools take care of the
details. And the remarkable thing is, if we
adopt this higher-level approach right now, even
on today's machines, we will see immediate
benefits in our productivity." W. H. Press and
S. A. Teukolsky, 1997 Numerical Recipes Does
This Paradigm Have a future?
6Software Interfaces
CALL BLACS_GET( -1, 0, ICTXT ) CALL
BLACS_GRIDINIT( ICTXT, 'Row-major', NPROW, NPCOL
) CALL BLACS_GRIDINFO( ICTXT, NPROW, NPCOL,
MYROW, MYCOL ) CALL PDGESV( N, NRHS, A, IA,
JA, DESCA, IPIV, B, IB, JB, DESCB,
INFO )
Language Calls
Command lines
Problem Domain
7ACTS Numerical Tools Functionality
8ACTS Numerical Tools Functionality
9Structure of PETSc
10PETSc Example - Basic Linear Solver in C
SLES sles / linear solver
context / Mat A /
matrix / Vec x, b /
solution, RHS vectors / int n, its
/ problem dimension, number of
iterations / MatCreate(MPI_COMM_WORLD,PETSC_DEC
IDE,PETSC_DECIDE, n,n,A) / assemble
matrix / VecCreate(MPI_COMM_WORLD,PETSC_DECIDE,n,
x) VecDuplicate(x,b)
/ assemble RHS vector
/ SLESCreate(MPI_COMM_WORLD,sles)
SLESSetOperators(sles,A,A,DIFFERENT_NONZERO_PATTE
RN) SLESSetFromOptions(sles) SLESSolve(sles,b,x,
its) SLESDestroy(sles)
11Hypre Conceptual Interfaces
12Hypre Conceptual Interfaces
INTERFACE TO SOLVERS
List of Solvers and Preconditioners per
Conceptual Interface
13ACTS Numerical Tools Functionality
14ACTS Numerical Tools Functionality
15ACTS Numerical Tools Functionality
16ACTS Numerical Tools Functionality
17ACTS Numerical Tools Functionality
18TAO - Interface with PETSc
19OPT Interfaces
- Four major classes of problems available
- NLF0(ndim, fcn, init_fcn, constraint)
- Basic nonlinear function, no derivative
information available - NLF1(ndim, fcn, init_fcn, constraint)
- Nonlinear function, first derivative information
available - FDNLF1(ndim, fcn, init_fcn, constraint)
- Nonlinear function, first derivative information
approximated - NLF2(ndim, fcn, init_fcn, constraint)
- Nonlinear function, first and second derivative
information available
20ACTS Numerical Tools Functionality
21ACTS Numerical Tools Functionality
22ACTS Numerical Tools Functionality
23ACTS Numerical Tools Functionality
24- Automatic Tuning
- PHiPAC www.icsi.berkeley.edu/bilmes/phipac
- ATLAS www.netlib.org/atlas
- XBLAS www.nersc.gov/xiaoye/XBLAS
- Sparsity www.cs.berkeley.edu/yelick/sparsity
- FFTW www.fftw.org
25ACTS Numerical Tools Functionality
26Tool Interoperability Tool-to-Tool
TOOL B
TOOL C
TOOL A
TOOL F
TOOL E
TOOL D
27Component Technology!
Tool C
Tool A
Tool D
Tool B
ESI
CCA
28PSE's and Frameworks
Ax b
PMatlab
View_field(T1)
User
PyACTS
29PyACTS
30ACTS Collection Tutorials
http//acts.nersc.gov/events/Workshop2003/
SIAM PP04 Short Course Workshop 2003
CD Request acts-support_at_nersc.gov - Its FREE!
ACTS Workshop 2004 http//acts.nersc.gov/events/Wo
rkshop2004