1<HTML> 2<HEAD> 3<BASE HREF="http://www.mcs.anl.gov/petsc/petsc.html"> 4<TITLE>PETSc - The Portable, Extensible Toolkit for Scientific Computation</TITLE> 5</HEAD> 6<BODY BGCOLOR="#ffffff" LINK="#0000ff" VLINK="#ff0000" ALINK="#ff0000" TEXT="#000000"> 7<font size="4"> 8 9<center> 10<IMG SRC="petsc_title.gif"> 11</center> 12<P><HR><P> 13<center> The current version of <b>PETSc</b> is 2.0.17; released April 5, 1997.</center> 14<P><HR><P> 15Recent paper on the PETSc parallel design: 16<A HREF="ftp://info.mcs.anl.gov/pub/petsc/scitools96.ps.gz">Efficient 17 Management of Parallelism in Object-Oriented Numerical Software Libraries</A>. 18 To appear in <b>Modern Software Tools in Scientific Computing</b>, E. Arge, 19 A. M. Bruaset and H. P. Langtangen, Ed., Birkhauser Press, 1997. 20<P> 21Unofficial PETSc benchmarks: Single processor floating point performance of the PETSc 22sparse <A HREF="ftp://info.mcs.anl.gov/pub/petsc/matmultbench.ps">matrix vector product</A> 23and <A HREF="ftp://info.mcs.anl.gov/pub/petsc/solvebench.ps">linear system solve</A> 24(with GMRES and preconditioner ILU(0)) for a 1503 by 1503 sparse matrix with a block 25size of three, using the SeqBAIJ matrix data structure. These tests were run using 26the SLES example src/sles/examples/tutorials/ex10.c. 27<P><HR><P> 28<H3> 29<MENU> 30<LI> <a href="petsc.html#Overview"> Overview </a> 31<LI> <a href="petsc.html#Features"> Features of PETSc 2.0 </a> 32<LI> <a href="petsc.html#Documentation"> Documentation including Online Man Pages </a> 33<LI> <a href="petsc.html#Installation"> Obtaining and Installing PETSc </a> 34<LI> <a href="petsc.html#PETScView"> PETScView - Visualization of PETSc Programs </a> 35<LI> <a href="petsc.html#PETScTeam"> The PETSc Team </a> 36<LI> <a href="petsc.html#MailingList"> PETSc Users Mailing List </a> 37<LI> <a href="petsc.html#BugReports"> Support and Submitting Bug Reports </a> 38<LI> <a href="petsc.html#Design"> Design of PETSc: Talks and Papers </a> 39<LI> <a href="petsc.html#Tutorials"> Online Tutorials </a> 40<LI> <a href="petsc.html#Applications"> Computational Science Applications using PETSc </a> 41</MENU> 42</H3> 43<P><HR><P> 44 45<A NAME="Overview"> <H1 align=center>Overview</H1> </A> 46 47 <b>PETSc, the Portable, Extensible Toolkit for Scientific Computation</b> 48 is a suite of data structures and routines for the 49 uni- and parallel-processor solution of large-scale scientific 50 application problems modeled by partial differential equations. 51 52 <p> 53 <b>PETSc 2.0</b> is fully usable from Fortran, C/C++, and runs on most 54 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/Machines">machines</A>, now 55 including Windows NT/95. 56 57 <p> 58 <center> 59 <IMG SRC="petscwww.gif"><br> 60</center> 61<P><HR><P> 62<A NAME="Features"> <H1 align=center>Features of <b>PETSc</b> 2.0</H1> </A> 63 64 <MENU> 65 <LI> Parallel vectors. 66 <LI> Parallel scatters and gathers. 67 <LI> Parallel matrices, including several sparse matrix storage formats. 68 <LI> Easy, efficient parallel matrix assembly. 69 <LI> Sequential sparse matrix direct solvers. 70 <LI> Scalable parallel preconditioners and Krylov subspace methods, including 71 ICC, ILU, block Jacobi, overlapping Schwarz, CG, GMRES, Bi-CG-stab. 72 <LI> Scalable parallel nonlinear equation solvers, including line search 73 and trust region Newton methods. 74 <LI> Scalable parallel unconstratined minimization solvers, including line search 75 and trust region Newton methods. 76 <LI> Simple parallel ODE solvers for application of the method of 77 lines to large scale nonlinear (or linear) time-dependent PDEs. 78 <LI> Distributed arrays. 79 <LI> Automatic profiling of floating point and memory usage. 80 <LI> Consistent interface for all solvers and data structures. 81 <LI> Complete documentation including users manual and man pages. 82 <LI> Intensive error checking. 83 <LI> Portable to all reasonable UNIX systems and Windows NT/95. 84 <LI> <b>PETSc</b> is <a href="petsc.html#BugReports">supported</a> and will 85 be actively enhanced for the next several years. 86 </MENU> 87 88<a href="http://www.mcs.anl.gov/petsc/petsc-components.html">More details on some of the 89important PETSc components</a> 90 91<P><HR><P> 92<A NAME="Documentation"><H1 align=center>PETSc Documentation</H1></A> 93 94<b>PETSc</b> 95is a sophisticated package; as such, fully understanding its 96its usage and design requires some time. However, application programmers 97can easily begin to use <b>PETSc</b> from a high level, and then 98gradually learn more details about various facets of the software 99according to their needs. To ease this transition, PETSc is fully 100documented, including a users manual and complete manual pages for 101every function. There are over 100 examples demonstrating software 102use for a variety of problem classes. 103Users should 104read the users manual before attempting to do any serious coding with 105<b>PETSc</b>! 106 107<p> 108<b>PETSc</b> is not for everyone; if your problem can be coded 109efficiently and relatively easily with, for example, Matlab, then you 110should use Matlab. If you have little experience with programming on 111a Unix machine, then it may require some time to get up to snuff using 112<b>PETSc</b>, since it employs many advanced features of Unix utilities 113(e.g., make). <b>PETSc</b> is intended to make the development of large-scale 114codes tractable; thus, our design emphasis has been on 115features required in large projects, not on making it trivial to run 116simple problems. 117 118 <p> 119 One page <A HREF="onepager.html"> summary of <b>PETSc</b></A>, also in 120 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/onepager.ps"> PostScript.</A> 121 <p> 122 123 <MENU> 124 <LI> <A HREF="manual.html"> PETSc Users Manual (in HTML) </A> 125 <LI> <A HREF="www/www.html">PETSc Man Pages (in HTML)</A> 126 </MENU> 127 128 <MENU> 129 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/petsc/intro.ps">Introduction to PETSc 130 (in Postscript)</A> - Part I of the Users Manual 131 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/petsc/manual.ps">Users Manual (in Postscript)</A> 132 </MENU> 133 134<P><HR><P> 135<A NAME="Installation"><H1 align=center>Obtaining and Installing PETSc</H1></A> 136 <b>PETSc</b> is available by anonymous ftp from 137 <A HREF="ftp://info.mcs.anl.gov">info.mcs.anl.gov</A> in 138 <A HREF="ftp://info.mcs.anl.gov/pub/petsc">pub/petsc</A> 139 as <A HREF="ftp://info.mcs.anl.gov/pub/petsc/petsc.tar.Z">petsc.tar.Z</A> 140 or <A HREF="ftp://info.mcs.anl.gov/pub/petsc/petsc.tar.gz">petsc.tar.gz</A> 141 and the bugfixes are in 142 <A HREF="http://www.mcs.anl.gov/petsc/petsc-patches.html"><b>BUGLIST</b></A> 143<P> 144 For Windows NT and Windows 95 using the Microsoft Developers Studio (Visual C++) 145retrieve <A HREF="ftp://info.mcs.anl.gov/pub/petsc/petsc.zip">petsc.zip</A> 146 147 <MENU> 148 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/petsc/Installation"> 149 Instructions for installing <b>PETSc</b></A> 150 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/petsc/Machines"> 151 Details of the machines we currently support</A> 152 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/petsc/Changes"> 153 Changes and new features in recent versions of <b>PETSc</b></A> 154 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/petsc/Troubleshooting"> 155 Trouble shooting guide for <b>PETSc</b></A> 156 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/petsc/Performance"> 157 Performance enhancement tips for <b>PETSc</b> programs</A> 158 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/petsc/CodeManagement"> 159 Suggestions for managing <b>PETSc</b> application codes</A> 160 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/petsc/FAQ">The <b>PETSc</b> FAQ</A> 161 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/petsc/README">FTP README file</A> 162 </MENU> 163 164 <p> 165 Before installing <b>PETSc</b>, the following software packages must 166 be installed on your machine. Many systems will already have them 167 installed; speak to your system administrator. 168 169 <MENU> 170 <LI> BLAS and LAPACK in 171 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/blas_lapack.tar.Z"> 172 blas_lapack.tar.Z</A> or 173 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/blas_lapack.tar.gz"> 174 in blas_lapack.tar.gz</A>. 175 <LI> An implementation of <A HREF="http://www.mcs.anl.gov/mpi/index.html">MPI</A>; 176 we recommend <A HREF="ftp://info.mcs.anl.gov/pub/mpi/mpich.tar.Z">MPICH</A> 177 <A HREF="http://www.mcs.anl.gov/home/lusk/mpich/index.html">(more info)</A>. 178 <LI> <A HREF="ftp://info.mcs.anl.gov/pub/BlockSolve95/BlockSolve95.tar.Z"> 179 BlockSolve95 </A> (optional) - parallel ICC(0) and ILU(0) 180 <A HREF="http://www.mcs.anl.gov/blocksolve95/index.html">(more info)</A>. 181 182 </MENU> 183 184 If you are ONLY planning to use <b>PETSc</b> as a sequential library, you do 185 NOT have to install MPI before installing <b>PETSc</b>. See the file 186 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/Installation">Installation</A> 187 (also available in the main directory of the <b>PETSc</b> distribution) for 188 details on installing <b>PETSc</b> without MPI. 189 <p> 190 191 Once you have untarred the <b>PETSc</b> directory, but before installing, 192 check the 193 <A HREF="http://www.mcs.anl.gov/petsc/petsc-patches.html"><b>BUGLIST</b></A> 194 for patches/fixes you may need to make. 195 196 <p> 197 You can also browse all of the 198 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/petsc"> 199 <b>PETSc</b> source code</A> without retrieving it. 200 Since we use wide source (100 characters per line), you probably will want to 201 widen your browser window accordingly. 202 203<P><HR><P> 204<A NAME="PETScView"> <H1 align=center>PETScView</H1> </A> 205 <b>PETSc</b> comes with high level tools for profiling and visualizing 206 <b>PETSc</b> programs. A short 207 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/petscview.ps.gz">description</A> 208 of PETScView and 209 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/petscview2.ps.gz">example output</A> 210 are available in PostScript. 211 212 213<P><HR><P> 214<A NAME="PETScTeam"> <H1 align=center>The PETSc Team</H1> </A> 215 216 <H3 align=center> <a href="http://www.mcs.anl.gov/home/balay"> Satish Balay</a><Br> 217 <a href="http://www.mcs.anl.gov/home/gropp"> William Gropp</a><Br> 218 <a href="http://www.mcs.anl.gov/home/curfman"> Lois Curfman McInnes</a><Br> 219 <a href="http://www.mcs.anl.gov/home/bsmith"> Barry Smith</a><P> 220 221 <a href="http://www.mcs.anl.gov/index.html"> 222 Mathematics and Computer Science Division</a><Br> 223 <a href="http://www.anl.gov/">Argonne National Laboratory</a>.<P></H3> 224 225 226<P><HR><P> 227<A NAME="BugReports"> <H1 align=center>PETSc Questions and Bug Reports</H1></A> 228 229 <p> 230 Please send all maintenance requests and questions to the <b>PETSc</b> developers at 231 <a href="mailto:petsc-maint@mcs.anl.gov"> petsc-maint@mcs.anl.gov </a>. 232 Please do <em>not</em> send maintenance requests 233 to the individual <b>PETSc</b> authors; all e-mail to 234 <b>petsc-maint@mcs.anl.gov</b> is automatically distributed to all of 235 the <b>PETSc</b> authors, so our response time using this address 236 will be fastest. 237 238 239<P><HR><P> 240<A NAME="MailingList"> <H1 align=center>PETSc Users Mailing List</H1> </A> 241 242 You can join the <b>PETSc</b> users mailing list by sending email to 243 <a href="mailto:majordomo@mcs.anl.gov"> majordomo@mcs.anl.gov </a> 244 with the message, "subscribe petsc-users". 245 We will update users regarding new releases, changes, etc. through this 246 mailing list. 247 248<P><HR><P> 249<A NAME="Design"> <H1 align=center>The PETSc Design: Talks and Papers</H1> </A> 250 251 <p> 252 Several papers describe various facets of our design philosophy: 253 254 <MENU> 255 S. Balay, W. D. Gropp. L. C. McInnes, and B. F. Smith, <A HREF="ftp://info.mcs.anl.gov/pub/petsc/scitools96.ps.gz">Efficient 256 Management of Parallelism in Object-Oriented Numerical Software Libraries</A>. 257 To appear in <b>Modern Software Tools in Scientific Computing</b>, E. Arge, 258 A. M. Bruaset and H. P. Langtangen, Ed., Birkhauser Press, 1997. 259 <P> 260 L. C. McInnes and B. F. Smith, <b> PETSc 2.0: A case study of using MPI 261 to develop numerical software libraries</b> 262 <A HREF="http://www.mcs.anl.gov/petsc/mpidev.html"> 263 [View document in hypertext format]</A>. 264 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/mpidev.ps"> 265 [Get the PostScript version]</A>. This is our contribution to the 266 1995 MPI Developers Conference, held at the University of Notre Dame, 267 June 22 and 23, 1995. 268 <P> 269 W. D. Gropp and B. F. Smith, <b> The design of data-structure-neutral 270 libraries for the iterative solution of sparse linear 271 systems</b>, Scientific Programming, 1996, Vol. 5, pp. 329--336. 272 <P> 273 W. D. Gropp and B. F. Smith, <b> Scalable, extensible, and portable numerical 274 libraries</b>, Proceedings of the Scalable Parallel Libraries 275 Conference, IEEE 1994, pp. 87-93. 276 <P> 277 W. D. Gropp, L. C. McInnes, and B. F. Smith, <b> Scalable libraries for solving 278 systems of nonlinear equations and unconstrained minimization 279 problems</b>, Proceedings of the Scalable 280 Parallel Libraries Conference, IEEE 1995, pp. 60-67. 281 <P> 282 Abstract discussing <b>PETSc</b> design and use within a reacting flow code 283 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/pooma96_abstract.ps"> 284 in PostScript.</A> 285 </MENU> 286 287 Talks related to <b>PETSc</b>: 288 <MENU> 289 Slides from 1996 SIAM Annual Meeting mini-symposium on Numerical 290 Simulation of Oil and Gas Reservoirs 291 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/siam96.ps.gz"> 292 in PostScript</A>. 293 <P> 294 Poster from 1996 MPI Developers Meeting 295 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/mpi96.ps.gz"> 296 in PostScript</A>. 297 <P> 298 Three examples demonstrating the use of <b>PETSc</b> for linear, nonlinear 299 and time dependent problems - slides 300 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/cts.ps"> 301 in PostScript.</A> 302 <P> 303 Workshop on Iterative 304 Methods for Large Scale Nonlinear Systems, September 1995, 305 Logan, Utah - slides <A HREF="ftp://info.mcs.anl.gov/pub/petsc/utah.ps.gz"> 306 in PostScript.</A> 307 <P> 308 OONSCI 96, Workshop on Object Oriented Numerical Software, March 1996. 309 Overview of <b>PETSc</b> 2.0 - slides 310 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/oonsci96_overview.ps.gz"> 311 in PostScript.</A> 312 <P> 313 Discussion of reacting flow application written using <b>PETSc</b> - slides 314 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/oonsci96_app.ps.gz"> 315 in PostScript.</A> 316 <P> 317 Discussion of implementing multigrid algorithms using <b>PETSc</b> and its 318 abstract multigrid concepts. 319 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/amg_petsc.ps.gz">Suitable 320 for viewing on screen.</A> 321 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/amg_petsc4.ps.gz">Suitable 322 for printing.</A> Presented at the Ninth GAMM workshop on Parallel 323 Multigrid Methods, May 13-17, 1996 324 <P> 325 Discussion of <b>PETSc</b> 2.0 for applications. 326 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/sweden96.ps.gz">Suitable 327 for viewing on screen.</A> 328 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/sweden964.ps.gz">Suitable 329 for printing.</A> Presented in Stockholm, May 30-31, 1996 330 <P> 331 Slides from 1995 MPI Developers Meeting 332 <A HREF="ftp://info.mcs.anl.gov/pub/petsc/mpidev_slides.ps.gz"> 333 in PostScript</A>. 334 </MENU> 335 336 Designing a scalable and portable numerical library requires 337 consideration of many factors, including choice of parallel 338 communication technology, data structures, and user interfaces. 339 The <b>PETSc</b> package uses modern software technology to provide a 340 portable, flexible, and extensible library environment. 341 Thus, the package serves a wide range of users with varying 342 needs and different levels of experience, including algorithmic 343 researchers as well as black-box and high-performance application 344 programmers. 345 346 <p> 347 We use an aggressive data-structure-neutral implementation that 348 minimizes dependence on particular data structures (even vectors). 349 This approach permits separation of the implementation language 350 from the user-interface language and enables the library to 351 adapt to the user, rather than the other way around. 352 Issues of parallelism are separated from the choice of algorithms. 353 354 355<P><HR><P> 356<A NAME="Tutorials"><H1 align=center>PETSc Tutorials</H1> 357 358We are currently developing an on-line tutorial in conjunction with 359our <a href="http://www.mcs.anl.gov/petsc/petsc-byoc.html"> PETSc 360Bring Your Own Code (BYOC) Workshops</a>. Stay tuned for further 361details. 362<P> 363 364Liyang Xu and Tom Robey have developed an on-line <b>PETSc</b> tutorial at the 365<A HREF="http://www.arc.unm.edu/workshop/pmatlib/petsctut.html"> 366University of New Mexico.</A> 367<P> 368 369<P><HR><P> 370<A NAME="Applications"><H1 align=center>PETSc Computational Science Applications</H1> 371 372 Computational science presents a variety of challenges, including the 373 coordination of detailed physical models and various algorithmic 374 approaches. The complexity inherent in these applications demands a 375 framework such as <b>PETSc</b> that provides broad-based 376 infrastructure with provisions for easy customization and extension. 377 378 By devoting strict attention to component interoperability, 379 <b>PETSc</b> enables the integration of independently developed 380 application modules, which often most naturally employ different 381 coding styles and data structures. In addition, users can seamlessly 382 replace models as well as combine and nest algorithms. 383 384 <P> 385 Several ongoing computational science projects are built around 386 the <b>PETSc 2.0</b> framework. Within each of these projects 387 <b>PETSc</b> facilitates the efficient solution of PDEs by 388 managing the complexity of evolving data structures and detailed 389 simulation models, and by providing access to the latest linear 390 algebra solution technology. These projects include: 391 392 <MENU> 393 <LI> <A HREF="http://www.cs.odu.edu/~keyes/nsf.html"> 394 <b>Multi-Model Multi-Domain Computational Methods in Aerodynamics and 395 Acoustics</b> </A> 396 397 <P> 398 This NSF funded multidisciplinary research project focuses 399 on the development of effective multi-domain parallel solutions to 400 multi-model coupled field problems. Here <b>PETSc</b> provides the 401 foundation for designing advanced domain decomposition software for 402 use within the context of a numerical laboratory for engineering 403 analysis. 404 405 <P> 406 <em>PIs - David Keyes, Alex Pothen (Old Dominion University); 407 Hafiz Atassi (University of Notre Dame); 408 Xiao-Chuan Cai (University of Colorado-Boulder); 409 William Gropp, Lois Curfman McInnes, Barry Smith (Argonne National Laboratory); 410 Olof Widlund (Courant Institute of Mathematical Sciences, NYU); 411 David P. Young (Boeing Computer Services).</em> 412 413 <P> 414 <LI> <A HREF="http://www.mcs.anl.gov/Projects/acti/acti.html"> 415 <b>Development of a New Generation Framework for Petroleum Reservoir 416 Simulation</b> </A> 417 418 <P> 419 The goal of this project, which is an Advanced 420 Computational Technology Initiative of DOE, is the design of a 421 prototype code supporting complex reservoir description with 422 three-dimensional seismic and geostatistical models, irregular 423 gridding, and multiple model realizations. Within this project 424 <b>PETSc</b> provides the foundation of linear algebra and nonlinear 425 solvers for developing an object oriented framework for general 426 purpose parallel reservoir simulation. 427 428 <P> 429 <em> PIs - William Gropp, Tom Morgan, Barry 430 Smith (Argonne National Laboratory); Mary Wheeler, Gary Pope, Kamy 431 Sepehrnoori, Todd Arbogast, Clint Dawson, Daene McKinney, Larry Lake 432 (University of Texas at Austin).</em> 433 </MENU> 434 435 <P><HR><P> 436 The documentation for <b>PETSc</b> was created using the 437 <b>doctext</b> and <b>tohtml</b> text processing packages 438 written by William Gropp. More information regarding this software 439 may be obtained from 440 <a href="http://www.mcs.anl.gov/home/gropp">gropp@mcs.anl.gov</a><Br> 441 442</BODY> 443</HTML>