PGI Guide to Molpro

This guide is intended to help PGI customers install, build, and run a complete system of ab initio programs for molecular electronic structure calculations (MOLPRO) from source files using PGI 7.1 compilers on a 32-bit Linux system.

Version Information
  This guide was created for MOLPRO parallel version 2006.1 when building from the source files using PGI Release 7.1 pgf90 on a 32-bit x86 system running Linux. This guide does not cover the non-relocatable pre-built binaries version of MOLPRO.
Application Notes
  Information about MOLPRO can be found at the MOLPRO home page.
From the MOLPRO Home page:

"MOLPRO is a complete system of ab initio programs for molecular electronic structure calculations, designed and maintained by H.-J. Werner and P. J. Knowles, and containing contributions from a number of other authors. As distinct from other commonly used quantum chemistry packages, the emphasis is on highly accurate computations, with extensive treatment of the electron correlation problem through the multiconfiguration-reference CI, coupled cluster and associated methods. Using recently developed integral-direct local electron correlation methods, which significantly reduce the increase of the computational cost with molecular size, accurate ab initio calculations can be performed for much larger molecules than with most other programs."

Obtaining the Source Code and License
  MOLPRO source code, binaries and documentation are copyrighted materials and may only be distributed under licence. A valid licence key from MOLPRO is required before you may use the MOLPRO program. To obtain the MOLPRO distribution materials, please visit the MOLPRO home page or contact molpro@molpro.net.
Prerequisites
 
  • A Fortran 90 and GNU C compiler.
  • Approximately 200Mb free disk space for use during compilation.
  • At least one large scratch file system for the program I/O.
  • GNU make
  • Global Arrays Toolkit
Configuration and Set-up Information
 
  1. Ensure that pgf90 is in your shell's PATH.
  2. Unzip and untar Global Arrays Toolkit. Assume you have MPI install in /usr/pgi/linux86/7.1 directory. Run following command to build GA Arrays for MPI use:
    gmake TARGET=LINUX MPI_INCLUDE=/usr/pgi/linux86/7.1/include \ 
    MPI_LIB=/usr/pgi/linux86/7.1/lib LIBMPI=-lmpich FC=pgf90 \ 
    CC=pgcc COPT=-Mcache_align FOPT=-Mcache_align USE_MPI=yes
    You may need different configuration for tcgmsg or myrinet.
  3. Unzip and untar the MOLPRO package in your build directory.
  4. cd into the new molpro2006.1 directory
  5. Run the following command to configure:
    ./configure -mpp -pgf90 -i4
    This will create the CONFIG file. Note you may need to enter information during this configuration such as whether large files are supported, the location of BLAS library, where the MOLPRO executable and its library will be installed, and your MOLPRO license key. Below is an example configuration output. Note that the processor information will change depending on your system.

    mymachine% ./configure -mpp -pgf90 -i4
    
    Building program for processor type=p4
    Program may not run on other platforms
    You can choose another processor type using the [p3|p4|athlon|x86_64|ia64] option
    
    Program will be built for parallel execution
    found /usr/local/bin/perl version 5.008003
    Machine architecture is unix unix-i4 unix-linux
    Additional compilation pre-processor flags: mpp eaf
    
    File size greater than 2GB allowed
    
    pgf90 7.1-2 32-bit target on x86 Linux -tp piv
    searching for blas libraries...
    
    blaslibold=
    plese select blas library from above list
    (default ):
    
    lib=
    
    searching for lapack library...
    
    plese select lapack library from above list
    (default ):
    
    
    Do wish to use tcgmsg, mpi, or myrinet? [tcgmsg]
    mpi
    Please give the name of the directory containing GA, MA libraries:
    (default ): 
    /local/home/ga-4-0-8/lib/LINUX
    If you want to use a special wrapper for parallel job startup
    please specify. (default /usr/pgi_rel/linux86/7.1/mpi/mpich/bin/mpirun): 
    
    Please give both the -L and -l loader options needed to access the MPI library
    Leave blank if you want to use the vendor supplied library on Cray
    or IBM SP, etc
    (default -L/usr/lib -lmpi):
    -L/usr/pgi/linux86/7.1/mpi/mpich/lib -lmpich
    MPI implementation is mpich
    Enter max number of atoms [ 200]: 
    Enter max number of valence orbitals [ 300]: 
    Enter max number of basis functions [2000]: 
    Enter max number of states per symmetry [  20]: 
    Enter max number of state symmetries [  16]: 
    
    You are not using an optimised blas library
    
    Please give any loader options (-L, -l) needed to access the LAPACK library
    (default ): 
    
    Installed binaries directory [/usr/local/bin]
    
    Installed auxiliary directory [/usr/local/lib/molpro-mpp-Linux-i686-i4-2006.1]
    
    Installed HTML documentation directory [/home/public_html/molpro/molpro2006.1
    ]
    
    Installed CGI script directory [/home/public_html/molpro/molpro2006.1]
    
    Found glob.h
    Using getopt_long from system library
    parse-i686-pc-linux-gnu-i4.o.gz is your object.
    
    CONFIG file created; proceed to compilation
    
    
  6. Check the CONFIG file to make sure the information is as expected. You may edit the CONFIG file directly to fix any errors. Note that -i4 should be present in the 32-bit pgf90 compiler options. On SSE enabled systems, we recommend using "-fast" for best performance. On non-SSE systems, please use "-O2". We've included an example CONFIG file for use with 32-bit pgf90.
Building MOLPRO
  Once the configuration is set and CONFIG file is created.

In MOLPRO base directory, type:
make
-j can be used to speed up compilation time for multiple CPUs system.
Running MOLPRO
  Tuning MOLPRO

MOLPRO can be tuned for a particular system by running the following command from the base MOLPRO directory. The tuning determines which version of a routine, blas or MOLPRO, gives the best performance and appends the tuning results to "bin/molpro.rc".i

./bin/molpro -n 2 mpptune.com 
Running the test cases

Example of running with 2 nodes.

Run a small subset of tests:

make MOLPRO_OPTIONS="-n 2" -C testjobs quicktest

Run most tests except some long ones:

make MOLPRO_OPTIONS="-n 2" -C testjobs test

Run all tests:

make MOLPRO_OPTIONS="-n 2" -C testjobs bigtest

These commands can also be issued in the MOLPRO base directory.


Running the benchmark

In directory bench, type:

./configure
You only need to do this once.

To run benchmark, i,e., small3.com with 2-way parallel, type:

runbench 2 1 small3.com
Each job appends the timings to bench.tab. Timings are also listed in a table at the end of each output.

Verifying Correctness
  MOLPRO is a "self-check" program since a program will only run to completion if no errors occur. For test cases, if the test runs without errors, an *.out file will be created in directory testjobs . If an error does occur, an *.errout file will be created. For benchmarks, if a program runs without errors, timings should be listed in each output as well as appended at the end of bench.tab file.
Known Issues and Limitations
  No known issues.
Click me