Difference between revisions of "UCVM Installation Notes"

From SCECpedia
Jump to navigationJump to search
Line 318: Line 318:
 
%make check fails with link library error
 
%make check fails with link library error
  
 +
scecadms-MacBook-Pro-2:UCVM maechlin$ make check
 +
Making check in aux-config
 +
make[1]: Nothing to be done for `check'.
 +
Making check in conf
 +
make[1]: Nothing to be done for `check'.
 +
Making check in conf/test
 +
make[1]: Nothing to be done for `check'.
 +
Making check in conf/example
 +
make[1]: Nothing to be done for `check'.
 +
Making check in model/ucvm
 +
make[1]: Nothing to be done for `check'.
 +
Making check in model/1d
 +
make[1]: Nothing to be done for `check'.
 +
Making check in src/ucvm
 +
make[1]: Nothing to be done for `check'.
 +
Making check in src/ucvm2etree
 +
make[1]: Nothing to be done for `check'.
 +
Making check in src/ucvm2mesh
 +
make[1]: Nothing to be done for `check'.
 +
Making check in src/grd
 +
make[1]: Nothing to be done for `check'.
 +
Making check in src/grd2etree
 +
make[1]: Nothing to be done for `check'.
 +
Making check in src/patch
 +
make[1]: Nothing to be done for `check'.
 +
Making check in src/ecoalesce
 +
make[1]: Nothing to be done for `check'.
 +
Making check in src/ecompact
 +
make[1]: Nothing to be done for `check'.
 +
Making check in src/basin
 +
make[1]: Nothing to be done for `check'.
 +
Making check in test
 +
./unittest
 +
  dyld: Library not loaded: libcvmsi.so
 +
  Referenced from: /Users/maechlin/Documents/dev/ucvm/UCVM/test/./unittest
 +
  Reason: image not found
 +
make[1]: *** [check] Trace/BPT trap: 5
 +
make: *** [check-recursive] Error 1
  
Passing Unit Tests
+
I have set the DYLD_LIBRARY_PATH to
  
 +
scecadms-MacBook-Pro-2:UCVM maechlin$ echo $DYLD_LIBRARY_PATH
 +
/Users/maechlin/ucvm-15.10.0/lib/euclid3/lib:/Users/maechlin/ucvm-15.10.0/lib/proj-4/lib:/Users/maechlin/ucvm-15.10.0/model/cvms426/lib
 +
 +
Then I run the unit tests outside the make check framework
 +
 +
scecadms-MacBook-Pro-2:test maechlin$ ./unittest
 
  Test: UCVM lib initialization
 
  Test: UCVM lib initialization
 
  PASS
 
  PASS
Line 348: Line 392:
 
  PASS
 
  PASS
 
  Test: UCVM lib add model SCEC CVM-SI
 
  Test: UCVM lib add model SCEC CVM-SI
  PASS
+
  Failed to open input file /Users/maechlin/ucvm-15.10.0/model/cvms426/model/region_spec.in
 +
Failed to initialize model
 +
Failed to init model cvmsi with config '/Users/maechlin/ucvm-15.10.0/model/cvms426/model' and extconfig ''. Config keys cvmsi_modelpath and/or cvmsi_extmodelpath are likely undefined.
 +
FAIL: Failed to enable model cvmsi
 +
 +
The ./unittest uses a ucvm. conf file in ../conf/test/ucvm.conf
 +
That needs to be edited to add a subdirectory to the cvms426 path, like this:
 +
 
 +
  From this:
 +
  # SCEC CVM-SI
 +
  cvmsi_modelpath=/projects/sciteam/jmz/ucvm_current/model/cvms426/model
 +
 
 +
  To this:
 +
  # SCEC CVM-SI
 +
  cvmsi_modelpath=/projects/sciteam/jmz/ucvm_current/model/cvms426/model/i26
  
 
== Related Entries ==
 
== Related Entries ==
 
*[[UCVM]]
 
*[[UCVM]]
 
*[[Validation]]
 
*[[Validation]]

Revision as of 03:40, 29 March 2016

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

Installed models shown as:

Version: 15.10.0

Installed Resources:
          1d : crustal model
    cmuetree : crustal model
       1dgtl : gtl
      elygtl : gtl
        cvms : crustal model
        cvmh : crustal model
      cencal : crustal model
       cvmsi : crustal model
      linear : ifunc
         ely : ifunc
        ucvm : map
        yong : map
 model_etree : model i/f
 model_patch : model i/f
   map_etree : map i/f
We have installed the version in a project directory on Blue Waters at:

/projects/sciteam/jmz/ucvm_current

To use this version, you need to do two things. One update your path to point to the bin directory at:

export PATH=$PATH:/projects/sciteam/jmz/ucvm_current/bin

Also, you will need to copy the ucvm.conf file into the local directory where you invoke ucvm commands. For example, I created a directory /u/sciteam/maechlin/testucvm

Then I copied the ucvm.conf into this directory (you can pass a path into ucvm to this file, or include a copy in local dir) cp /projects/sciteam/jmz/ucvm_current/conf/ucvm.conf .

Then I created a short input file (test_inputs.txt)

-120.3 33.9 0

-120.2 33.9 0

-120.1 33.9 0

-120.0 33.9 0

-119.9 33.9 0

Then, I can run basic queries against this version including:

%ucvm_query -m cvmsi < test_inputs.txt

Which produces this output

maechlin@h2ologin1:~/testucvm> ucvm_query -m cvmsi < test_inputs.txt
Using Geo Depth coordinates as default mode.
 -120.3000    33.9000      0.000   -273.811    180.000      cvmsi   4820.827   2736.103   2654.500       none      0.000       0.000      0.000      crust   4820.827   2736.103   2654.500
 -120.2000    33.9000      0.000    -92.437    180.000      cvmsi   4737.396   2671.619   2654.500       none      0.000       0.000      0.000      crust   4737.396   2671.619   2654.500
 -120.1000    33.9000      0.000    -22.663    400.146      cvmsi   4720.362   2662.228   2654.500       none      0.000       0.000      0.000      crust   4720.362   2662.228   2654.500
 -120.0000    33.9000      0.000    -40.398    180.000      cvmsi   4870.236   2798.388   2654.500       none      0.000       0.000      0.000      crust   4870.236   2798.388   2654.500
 -119.9000    33.9000      0.000   -187.894    180.000      cvmsi   5631.701   3300.478   2735.611       none      0.000       0.000      0.000      crust   5631.701   3300.478   2735.611

Try with another model produces this:

maechlin@h2ologin1:~/testucvm> ucvm_query -m cvmh < test_inputs.txt Using Geo Depth coordinates as default mode.

-120.3000    33.9000      0.000   -273.811    180.000       cvmh    618.767     75.000   1000.000       none      0.000      0.000      0.000      crust    618.767     75.000   1000.000
-120.2000    33.9000      0.000    -92.437    180.000       cvmh    618.767     75.000   1000.000       none      0.000      0.000      0.000      crust    618.767     75.000   1000.000
-120.1000    33.9000      0.000    -22.663    400.146       cvmh    857.474    216.499   1117.347       none      0.000      0.000      0.000      crust    857.474    216.499   1117.347
-120.0000    33.9000      0.000    -40.398    180.000       cvmh    618.767     75.000   1000.000       none      0.000      0.000      0.000      crust    618.767     75.000   1000.000
-119.9000    33.9000      0.000   -187.894    180.000       cvmh    618.767     75.000   1000.000       none      0.000      0.000      0.000      crust    618.767     75.000   1000.000

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

scecadms-MacBook-Pro-2:UCVM maechlin$ make check
Making check in aux-config
make[1]: Nothing to be done for `check'.
Making check in conf
make[1]: Nothing to be done for `check'.
Making check in conf/test
make[1]: Nothing to be done for `check'.
Making check in conf/example
make[1]: Nothing to be done for `check'.
Making check in model/ucvm
make[1]: Nothing to be done for `check'.
Making check in model/1d
make[1]: Nothing to be done for `check'.
Making check in src/ucvm
make[1]: Nothing to be done for `check'.
Making check in src/ucvm2etree
make[1]: Nothing to be done for `check'.
Making check in src/ucvm2mesh
make[1]: Nothing to be done for `check'.
Making check in src/grd
make[1]: Nothing to be done for `check'.
Making check in src/grd2etree
make[1]: Nothing to be done for `check'.
Making check in src/patch
make[1]: Nothing to be done for `check'.
Making check in src/ecoalesce
make[1]: Nothing to be done for `check'.
Making check in src/ecompact
make[1]: Nothing to be done for `check'.
Making check in src/basin
make[1]: Nothing to be done for `check'.
Making check in test
./unittest
 dyld: Library not loaded: libcvmsi.so
 Referenced from: /Users/maechlin/Documents/dev/ucvm/UCVM/test/./unittest
 Reason: image not found
make[1]: *** [check] Trace/BPT trap: 5
make: *** [check-recursive] Error 1

I have set the DYLD_LIBRARY_PATH to

scecadms-MacBook-Pro-2:UCVM maechlin$ echo $DYLD_LIBRARY_PATH
/Users/maechlin/ucvm-15.10.0/lib/euclid3/lib:/Users/maechlin/ucvm-15.10.0/lib/proj-4/lib:/Users/maechlin/ucvm-15.10.0/model/cvms426/lib

Then I run the unit tests outside the make check framework

scecadms-MacBook-Pro-2:test maechlin$ ./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 /Users/maechlin/ucvm-15.10.0/model/cvms426/model/region_spec.in
Failed to initialize model
Failed to init model cvmsi with config '/Users/maechlin/ucvm-15.10.0/model/cvms426/model' and extconfig . Config keys cvmsi_modelpath and/or cvmsi_extmodelpath are likely undefined.
FAIL: Failed to enable model cvmsi

The ./unittest uses a ucvm. conf file in ../conf/test/ucvm.conf That needs to be edited to add a subdirectory to the cvms426 path, like this:

 From this:
 # SCEC CVM-SI
 cvmsi_modelpath=/projects/sciteam/jmz/ucvm_current/model/cvms426/model
 To this:
 # SCEC CVM-SI
 cvmsi_modelpath=/projects/sciteam/jmz/ucvm_current/model/cvms426/model/i26

Related Entries