UCVM Installation Notes

From SCECpedia
Revision as of 00:17, 29 March 2016 by Maechlin (talk | contribs)
Jump to navigationJump to search

UCVM is a complex collection of software with advanced high-performance capabilities. These capabilities introduce a significant amount of complexity building and using UCVM. To simply, UCVM is designed towards specific target computing systems, typically Linux. However, the software has been ported to multiple systems, and this page provides details on the status of those installations.

UCVM Current Version

This works focuses on building and using the most recent version of UCVM which is UCVM v15.10.0. We are testing the "all models" version of UCVM. In this case, as we install using, we respond "Yes" to each model that it offers.

UCVM Installation on Blue Waters

We have successfully built the code on Blue Waters, following these directions.

The BW installation required several additional steps: First, the system.list needs to be edited. This system.list updates the stderr, and the messages that Blue Water users must type.

  • [system_2.list]
  • Since I cannot edit the system.list file at SCEC, edit the ./ucvm_setup.py to read a system_2.list file instead of the system.list. The system.list will get overwritten each time you run ./ucvm_setup.py so this change to use system_2.list will enable your system.list changes to be used.
  • The commands should be run as:
    • module unload darshan; module load iobuf
    • module unload PrgEnv-cray; module load PrgEnv-gnu

Then we selected a location to write the results in a group project space:

/projects/sciteam/jmz/UCVM/ucvm_current

Then we run ./ucvm_setup.py

This runs until it errors with this line:

cc -o ucvm2etree-extract-MPI ucvm2etree_extract_MPI.o ue_extract.o ue_mpi.o ue_utils.o ue_config.o -L../ucvm -lucvm -L/projects/sciteam/jmz/ucvm_current/model/cvms5/lib -lcvms5 -lgfortran -lproj -letree - L/projects/sciteam/jmz/ucvm_current/model/cvms426/lib -lcvmsi -lgfortran -L/projects/sciteam/jmz/ucvm_current/model/cvms/lib -lcvms -lgfortran -L/projects/sciteam/jmz/ucvm_current/model/cvmh1510/lib -lvxapi - L/projects/sciteam/jmz/ucvm_current/model/cvmh1510/lib -lgeo -L/projects/sciteam/jmz/ucvm_current/model/cencal/lib -lcencalvm -lstdc++ -static  -L/projects/sciteam/jmz/ucvm_current/lib/euclid3/lib -letree - L/projects/sciteam/jmz/ucvm_current/lib/proj-4/lib -lproj -pthread -L/projects/sciteam/jmz/ucvm_current/lib/fftw/lib -lfftw3 -lm
/opt/cray/mpt/7.3.0/gni/mpich-gnu/4.9/lib/libmpich_gnu_49.a(utils.o): In function `pread':
utils.c:(.text+0x350): multiple definition of `pread'
/opt/cray/iobuf/2.0.6/lib/libiobuf.a(iobuf.o):/tmp/peint/iobuf/iobuf/scripts/builds/iobuf-2.0.4/iobuf.c:633: first defined here
/opt/cray/mpt/7.3.0/gni/mpich-gnu/4.9/lib/libmpich_gnu_49.a(utils.o): In function `pwrite':
utils.c:(.text+0x3a0): multiple definition of `pwrite'
/opt/cray/iobuf/2.0.6/lib/libiobuf.a(iobuf.o):/tmp/peint/iobuf/iobuf/scripts/builds/iobuf-2.0.4/iobuf.c:651: first defined here
/usr/bin/ld: link errors found, deleting executable `ucvm2etree-extract-MPI'
collect2: error: ld returned 1 exit status
make[1]: *** [ucvm2etree-extract-MPI] Error 1
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ucvm2etree'
make: *** [all-recursive] Error 1

ERROR:
An error occurred while trying to setup UCVM. Specifically, the error was:

Error executing command.

At this point, in the main UCVM directory that contains ./ucvm_setup.py, type "make" to continue the build now without the iobuf defined. Eventually the build completes and we can type

%make check
maechlin@h2ologin1:~/ucvm/UCVM> ls
aclocal.m4      conf           INSTALL      model       src
AUTHORS         config.log     LICENSE      NEWS        system_2.list
autom4te.cache  config.status  m4           pbs         system.list
aux-config      configure      Makefile     README      test
bin             configure.ac   Makefile.am  scripts     ucvm_setup.py
ChangeLog       COPYING        Makefile.in  setup.list  utilities
code_count      examples       man          simplejson  work
maechlin@h2ologin1:~/ucvm/UCVM> make check
Making check in aux-config
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/aux-config'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/aux-config'
Making check in conf
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/conf'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/conf'
Making check in conf/test
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/conf/test'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/conf/test'
Making check in conf/example
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/conf/example'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/conf/example'
Making check in model/ucvm
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/model/ucvm'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/model/ucvm'
Making check in model/1d
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/model/1d'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/model/1d'
Making check in src/ucvm
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ucvm'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ucvm'
Making check in src/ucvm2etree
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ucvm2etree'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ucvm2etree'
Making check in src/ucvm2mesh
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ucvm2mesh'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ucvm2mesh'
Making check in src/grd
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/grd'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/grd'
Making check in src/grd2etree
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/grd2etree'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/grd2etree'
Making check in src/patch
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/patch'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/patch'
Making check in src/ecoalesce
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ecoalesce'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ecoalesce'
Making check in src/ecompact
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ecompact'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ecompact'
Making check in src/basin
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/basin'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/basin'
Making check in test
make[1]: Entering directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/test'
/unittest
Test: UCVM lib initialization
PASS
Test: UCVM lib add model 1D
PASS
Test: UCVM lib query 1D
PASS
Test: UCVM lib query 1D GTL
PASS
Test: UCVM lib get model label 1D
PASS
Test: UCVM lib get ifunc label 1D
PASS
Test: UCVM lib setparam querymode geo-depth 1D
PASS
Test: UCVM lib setparam querymode geo-elev 1D
PASS
Test: UCVM lib model version 1D
PASS
Test: UCVM lib query user model
PASS
Test: UCVM lib add model USGS CenCal
PASS
Test: UCVM lib add model SCEC CVM-H
PASS
Test: UCVM lib add model SCEC CVM-S
PASS
Test: UCVM lib add model SCEC CVM-SI
Failed to open input file /projects/sciteam/jmz/ucvm_current/model/cvms426/model/region_spec.in
Failed to initialize model
Failed to init model cvmsi with config '/projects/sciteam/jmz/ucvm_current/model/cvms426/model' and extconfig . Config keys cvmsi_modelpath and/or cvmsi_extmodelpath are likely undefined.
FAIL: Failed to enable model cams
./accepttest
Test: ucvm library 1d model w/ large grid

To get the UnitTests to pass without errors, edit the /u/sciteam/maechlin/ucvm/UCVM/conf/ucvm.conf file Edit the entry that points to the SI model and add path from

# SCEC CVM-SI
cvmsi_modelpath=/projects/sciteam/jmz/ucvm_current/model/cvms426/model

to

# SCEC CVM-SI
cvmsi_modelpath=/projects/sciteam/jmz/ucvm_current/model/cvms426/model/i26

Once this change is made, ./accepttest runs without errors.

maechlin@h2ologin3:~/ucvm/UCVM> cd test
maechlin@h2ologin3:~/ucvm/UCVM/test> ./accepttest
Test: ucvm library 1d model w/ large grid
PASS

At this point, modify your .bashrc to point to executable export PATH=$PATH:/projects/sciteam/jmz/ucvm_current/bin

However, now ucvm will require you to include a icvm.conf in your local directory. Setup a directory, and add a icvm.conf file

UCVM Installation on a Mac OS X

Here are details about a successful installation of all models on a recent Macbook Pro running OS X with Xcode installed

  • OS X El Capitan (Version 10.11.4)
  • Xcode (Version 6.3.1)
  • gcc versions
scecadms-MacBook-Pro-2:test maechlin$ which gcc
/usr/local/bin/gcc
scecadms-MacBook-Pro-2:test maechlin$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin14.0.0/4.9.2/lto-wrapper
Target: x86_64-apple-darwin14.0.0
Configured with: ../gcc-4.9-20141029/configure --enable-languages=c++,fortran
Thread model: posix
gcc version 4.9.2 20141029 (prerelease) (GCC)

Once the OS and Xcode is installed, we need to install the auto tools suite. The following commands must run on the command line for the UCVM installation to work.

% autoscan
% aclocal

If these commands don't run on your Mac, you need to install the auto tools suite in order to build UCVM. Autotools installation (via script of) Get Autotools Script

    • autoconf-2.69.tar.gz
    • automake-1.15.tar.gz
    • libtool-2.4.6.tar.gz
    • Installation Script
  • Once installed following commands run on shell command line
    • %autoscan
    • %aclocal

In a user directory unzip the icvm-15.10.0.tar.gz file

tar- zxvf ucvm-15.10.0.tar.gz
scecadms-MacBook-Pro-2:ucvm maechlin$ tar zxvf *.gz
x ./UCVM/
X ./UCVM/
...

Then

%cd UCVM into /Users/maechlin/Documents/dev/ucvm/UCVM 

Then ./ucvm_setup.py

Install in default location and respond (yes) to all models:

Where would you like UCVM to be installed?
(Default: /Users/maechlin/ucvm-15.10.0)
Enter path or blank to use the default path : (hit return to accept default path)

Would you like to download and install CVM-S5?
Enter yes or no: yes

Would you like to download and install CCA?
Enter yes or no: yes

Would you like to download and install CVM-S4.26?
Enter yes or no: yes

Would you like to download and install CVM-H?
Enter yes or no: yes

Would you like to download and install CVM-S4?
Enter yes or no: yes

Would you like to download and install CenCalVM?
Enter yes or no: yes
You have indicated that you would like to download and install
CVM-S5, CCA, CVM-S4.26, CVM-H, CVM-S4, and CenCalVM

You have indicated that you would like to download and install
Euclid3, Proj4, and FFTW
Now setting up UCVM libraries...

Once the build is complete, we run "make check"

Build Process: The download and build process, at USC, takes several hours. For example, just download the CenCalVM takes more than 20 minutes, and more time is required to build the installation. During the installation, various scripts are run that produce both errors and warnings. The installation process

%make check fails with link library error


Passing Unit Tests

Test: UCVM lib initialization
PASS
Test: UCVM lib add model 1D
PASS
Test: UCVM lib query 1D
PASS
Test: UCVM lib query 1D GTL
PASS
Test: UCVM lib get model label 1D
PASS
Test: UCVM lib get ifunc label 1D
PASS
Test: UCVM lib setparam querymode geo-depth 1D
PASS
Test: UCVM lib setparam querymode geo-elev 1D
PASS
Test: UCVM lib model version 1D
PASS
Test: UCVM lib query user model
PASS
Test: UCVM lib add model USGS CenCal
PASS
Test: UCVM lib add model SCEC CVM-H
PASS
Test: UCVM lib add model SCEC CVM-S
PASS
Test: UCVM lib add model SCEC CVM-SI
PASS

Related Entries