UCVM Installation Notes
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.
Contents
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
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
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