SupraLu ============================================= The module is available through the NTCC Webpage, w3.pppl.gov/NTTC under "Modules Library", as compressed tarfile, supralu.tar.gz, and as zip archive, supralu.zip. Alternatively it can be obtained from ftp.pppl.gov in pub/NTCC/. o AUTHORS Alex Pletzer and Doug McCune o CONTACT transp_support transp_support@pppl.gov A. Pletzer pletzer@txcorp.com o REVISION HISTORY date Description Dec 3, 2003 -- Created Jul 27, 2005 -- C. Ludescher-Furth: Repackaged with ezcdf -------------------------------------------------------------------------- Index: 1. UNPACKING INSTRUCTIONS 2. CONTENTS 3. DESTINATIONS 4. BUILDING INSTRUCTIONS 5. TESTING 6. FINAL INSTALLATION ************************** 1. UNPACKING INSTRUCTIONS: ************************** for tarfiles: > gunzip supralu.tar.gz > tar xvf supralu.tar or, for zip archives: > unzip supralu.zip ************ 2. CONTENTS: ************ Makefile: NOTE, "GNU make" must be used (usually in /usr/gnu/bin or /usr/local/bin). Main Makefile to invoke Makefile(s) in subdirectories. README_SupraLu: Brief descriptions of libsupralu.a and the python Interface. INSTALL_SupraLu: This file. Brief descriptions of the other files, and instructions for compiling libsupralu.a and a test. --in subdirectory supralu: README: A copy of README_Supralu from above. Makefile: to build library and test program. INSTALL: This file. A copy of INSTALL_Supralu from above. Sources to build c/fortran Interface libsupralu.a (supralu_mod.f90, {d,z}dsupralu_meth.c) Sources to build pytyhon interfcae, the shared objects {d,z}supralu.so ({d,z}supralumodule.c {d,z}dsupralu_meth.c) Scripts for the python Interface Test programs: supralu_test.f90 tester.py -- in subdirectory share: Make.flags: Include file for Makefile, to setup Flags, etc. Make.local.sample: Include file for Makefile, to setup non-conventional, site specific locations. -- in subdirectory fpreproc: Python scripts for fortran pre-processing: ./ezcdf Makefile -- to build libezcdf.a Sources to build libezcdf.a, for fortran test program. **************** 3. DESTINATIONS: **************** Or where do the files go? (this refers to building and testing; see FINAL INSTALLATION for end result) When you extract the tar file you get sub directories: ./supralu -- Sources, Documents and Makefile ./ezcdf -- Easy Interface for netCDF Routines ./share -- include file Make.flags ./fpreproc -- python scripts for fortran preprocessing The makefile will create more sub directories, lib: for the libraries mod: for the f90 modules obj/: for compiled objects test: for the test programs and the sample output files. By default these directories are created in ./, which is determined by Make.flags. e.g.: if you are running Linux, and the tar file resides in $HOME/foo, the directories would be in $HOME/foo/LINUX/{lib,mod,obj,test}. You can overwrite the destination by defining OBJ, as an environment variable (e.g. export OBJ=/dir1/dir2), or with make (e.g. "gmake OBJ=."). If OBJ is defined, the destinations will be $OBJ/{lib,mod,obj,test}. If OBJ is defined as "." then, in the example above, the destination would be $HOME/foo/{lib,mod,obj,test}. The rationale behind is to facilitate building for various platforms. Note: If you define OBJ as option to gmake, you have to consistently do so; e.g: gmake clean OBJ=., gmake install OBJ=. Alternatively you can modify share/Make.local.sample and rename it to share/Make.local. ************************* 4. BUILDING INSTRUCTIONS: ************************* Required Compilers: =================== Fortran 90 C Required Libraries: =================== SuperLu - Solution of large, linear equations. BLAS - Basic Linear Algebra Subprograms. For Python Interface: Python For Fortran Interface: netCDF The library is assumed to be in /usr/local/{lib,include} If your site has it somwhere else, define NETCDF_DIR e.g. gmake NETCDF_DIR=/my/nonstandard Alternatively you can modify share/Make.local.sample and rename it to share/Make.local. > gmake -- to compile library and link all test programs > gmake checklibs -- tells you what the makefile will do (without any action); it says which libraries it will make and which ones it already found and where. It also tells you how to rebuild an existing library. > gmake clean -- to remove objects > gmake realclean -- to remove objects and library > gmake show_makeflags -- to see what flags, definitions Make will use Compiling on Linux: ------------------- By default the Makefile will select Fujitsu f95. To select a different compiler define FORTRAN_VARIANT to "Portland" "NagWare" "Fujitsu" "Intel" or "Absoft" e.g.: setenv FORTRAN_VARIANT Portland (csh) FORTRAN_VARIANT=Portland; export FORTRAN_VARIANT (sh) Alternatively, FORTRAN_VARIANT can be passed directly to the gmake command, as in: gmake FORTRAN_VARIANT=Portland To use vastf90: > gmake VAST90=y To use NAG90: > gmake NAG90=y Compiling on Alpha Linux: ------------------------- The Makefile assumes the Compaq compiler and specifies the " -assume no2underscores " option. Therefore the calling user software must also be compiled with this option, or you should edit share/Make.flags to remove the option. Compiling on SUN: ----------------- The Makefile specifies the " -fast " option which includes -dalign. Therefore the calling user software must also be compiled with this option, or you should edit share/Make.flags to remove the option. ************************ 5. TESTING INSTRUCTIONS: ************************ To verify functioning of the software: -------------------------------------- There is no input required. Run pspltes{t,8} and compare it's output with pspltes{t,8}.output: e.g.: > cd /test or > cd $OBJ/test > ./pspltes{t,8} > foo > diff foo pspltes{t,8}.output To study performance of supralu software: ----------------------------------------- e.g.: > ./{r8}lookup_test > {r8}foo > diff {r8}foo {r8}lookup_test.output To test ezspline: ----------------- e.g.: > ./ezspline_test_{r4,r8} then look at it with matlab: > matlab >> ezspline_test ************************ 6. DOCUMENTATION: ************************ SpraLu Home Page: http://w3.pppl.gov/NTCC/SupraLu SuperLu Home Page http://crd.lbl.gov/~xiaoye/SuperLU NTCC Home Page: http://w3.pppl.gov/NTCC ********************** 8. FINAL INSTALLATION: ********************** Choose or create the root directory in which you wish to install the software. A common location would be /usr/ntcc, but installation can occur in any directory where you have appropriate permissions. You define your choice of root directory via PREFIX. The default for PREFIX is /usr/ntcc. The assumptions are: libraries in: $PREFIX/lib = $LIBDIR f90 modules in: $PREFIX/mod = $MODDIR man pages in: $PREFIX/man/man3 = $MANDIR/man3 To install the software, return to the top directory (the directory, where you downloaded the tar files) and type > gmake install PREFIX=/dir1/dir2/ to install into /dir1/dir2/... > gmake install to install into /usr/ntcc/... or, if PREFIX is defined in share/Make.local If you want things elsewhere, you can overwrite the default with > gmake install LIBDIR=/xxx MODDIR=yyy MANDIR=/zzz NOTE: ----- The library is installed as libsupralu.a Users should link with -L/lib -lsupralu -L/lib -lsuperlu Make sure users know what is. After you have installed the software, you can delete the entire tree with > cd .. > rm -r foo assuming the previous example. ---------------------------------------------------------------------------- IF YOU HAVE ANY PROBLEMS, PLEASE CONTACT EITHER: transp_support, Princeton University transp_support@pppl.gov