DAKOTA build process

| |

The following documentation of DAKOTA build process was wrtitten for installing DAKOTA version "Version of the Day" on Medusa (Rocks 4.1 cluster).


Vendor packages included in DAKOTA require many libraries to function, a careful study of these packages and their required libraries is required to successfully build DAKOTA. Building DAKOTA from source allows customization with additional packages and porting to additional platforms or operating systems.


Link to Install file, which explains more about it's build process, Install File


Some of the packages required for building DAKOTA

FLEX - Version 2.5.4a Release 33
Bison - Version 1.875C Release 2.0
YACC - Version 3.0 Release 25.1
LAPACK - Version 3.0 Release 25.1
BLAS - Version 3.0 Release 25.1
PGF90 Compiler



The steps involved in building DAKOTA are:

In order to maintain an independent build process without changing the system installations, LAPACK was built seperately:

A tar ball of LAPACK - Version 3.0 Release 25.1 source was built within DAKOTA sub-directory



For Linux platform, the LAPACK Make include file (make.inc.LINUX) in the /INSTALL directory of LAPACK source was moved to the root of LAPACK source and renamed 'make.inc'. Following changes were made in 'make.inc' file:


The machine (platform) identifier to append to the library names was removed/commented

 #PLAT = _LINUX 



LAPACK source includes BLAS library source as well and can be built along with it, but to use the existing BLAS library

 BLASLIB      = /usr/lib/libblas.a 



LAPACK library name was changed,

 LAPACKLIB    = liblapack.a 



libraries to be built in 'Makefile' was specified,

 lib: lapacklib tmglib 



A symbolic link to BLAS library was provided in the LAPACK root directory (this was done to include BLAS library for DAKOTA build)

 ln -s /usr/lib/libblas.a libblas.a 



After the 'make' of LAPACK source 'liblapack.a' library file will be created in LAPACK root directory



After extracting DAKOTA source from the tar file,

setenv DAKOTA /Dakota
cd $DAKOTA/VendorPackages
ln -s path_to_mpi_dir mpi

In the config directory under Dakota, we need to update the path to the PGI library in "mt-linux" file and also path to LAPACK library,

TGT_F90_LIB_PATH = -L/home/vinayrao/Dakota/lapack-build/LAPACK -L/share/apps/pgi/linux86/5.2/lib 
ARCH_LIB_PATH   = -L/usr/lib

path to shared libraries can be set in LD_LIBRARY_PATH environment variable,

./configure --without-dot --without-npsol --without-coliny

Make the source, Once make has successfully completed, the generated DAKOTA executables (dakota and dakota_restart_util) will reside in $DAKOTA/src/, where is a descriptor generated by configure to identify the platform and operating system under which the executable was built. Copies of the executables are placed in $DAKOTA/bin and copies of the libraries (libdakota.a et al.) are placed in $DAKOTA/lib.



Thanks,

Vinay Rao