/nutrlan

Fork of nutrlan-0.2 from https://codeforge.lbl.gov/projects/trlan/

Primary LanguageCOtherNOASSERTION

nuTRLan version 0.2

The up-to-date source code of this package is available at

Additional information about the package can be found on the web at

In particular, the user's guide is available at

Further problems/questions, contact

Orthogonalization

Lanczos vectors may not necessarily remain in the Krylov space due to floating-point roundoff. In cases where this is a problem, the user can supply an additional re-orthogonalization routine.

Installation guide

You can use the Makefile in this directory to generate nuTRLan library. The make file flags are in file Make.inc. Check the file to make sure that the options are appropriate for your particular machine.

  • You will need a C compiler to compile the main body of the library.
  • You will also need interface to LAPACK and BLAS.

There are some examples of Make.inc files

  • Make.csia (HP Itanium machine)
  • Make.dmx (Linux)
  • Make.seaborg (Nersc IBM SP)

make lib will build a sequential version of the library,

make plib will build a MPI version of the library.

nuTRLan calls some BLAS routines. These routines are contained in CBLAS directory. If BLAS is not installed on the target machine, the user can use, these unoptimized routines by make pblib.

The examples directory contains a small set of examples.

  • Example on how to compute eigenpairs of a symmetric matrix on a serial machine

    simple.c and test_ctrlan.c

  • Example on how to compute eigenpairs of a symmetric matrix on a distributed memory machine

    psimple.c and test_ptrlan.c

  • Example on how to compute eigenpairs of a Hermitian matrix on a serial machine

    test_ztrlan.c

  • Example on how to compute eigenpairs of a Hermitian matrix on a distributed memory machine

    test_pztrlan.c

  • Example on a Fortran interface to compute eigenpairs of a symmetric matrix on a serial machine

    simple.f

  • Example on a Fortran interface to compute eigenpairs of a symmetric matrix on a distributed memory machine

    psimple.f

  • Example on a Fortran interface to compute eigenpairs of a Hermitian matrix on a serial machine

    zsimple.f

  • Example on a Fortran interface to to compute eigenpairs of Hermitian matrix on a parallel machine

    pzsimple.f

Debugging

Debugging MPI is hard. This can be used to attach gdb to each process:

mpirun -np 1 xterm -e gdb  ./psimple

or one can attach valgrind:

mpirun -np 1 valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes ./psimple