Difference between revisions of "UCVM Installation Notes"

From SCECpedia
Jump to navigationJump to search
 
(7 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
== Installation and Users Guides ==
 
== Installation and Users Guides ==
 
*[http://scec.usc.edu/scecpedia/UCVM_14.3.0_User_Guide UCVM Users Guide with List of Commands]
 
*[http://scec.usc.edu/scecpedia/UCVM_14.3.0_User_Guide UCVM Users Guide with List of Commands]
 +
*[http://scec.usc.edu/scecpedia/UCVM_14.3.0_User_Guide UCVM Users Guide]
 +
*[http://scec.usc.edu/scecpedia/UCVM_14.3.0_Advanced_User_Guide Advanced Users Guide]
 +
*[http://scec.usc.edu/scecpedia/UCVM_14.3.0_Tutorial UCVM Introduction Tutorial]
  
 
== UCVM Current Version ==
 
== 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.  
+
This page describes successful builds of the most recent version of UCVM which is UCVM v15.10.0 in various computing environments. The software is designed to use only open-source compilers and scientific codes. However it requires a complex software stack usually provided only on Linux clusters. This stack include MPI libraries. However, the build process will detect a laptop environment and create a serial-only version of the software.
  
== UCVM Installation on Blue Waters ==
+
On this page, we are installing the "all models" version of UCVM. In this case, as we install using, we respond "Yes" to each model that it offers. At the completion of the Mac install (BW should be the same, must check), icvm reports the following models installed.
We have successfully built the code on Blue Waters, following these directions.
 
  
The BW installation required several additional steps:
+
cd bin/
First, the system.list needs to be edited. This system.list updates the stderr, and the messages that Blue Water users must type.
+
./ucvm_query.py -h
*[system_2.list]
+
which returns
*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:
+
Version: 15.10.0
/projects/sciteam/jmz/UCVM/ucvm_current
 
 
 
Then we run ./ucvm_setup.py
 
  
This runs until it errors with this line:
+
Installed Resources:
 
+
          1d : crustal model
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
+
    cmuetree : crustal model
/opt/cray/mpt/7.3.0/gni/mpich-gnu/4.9/lib/libmpich_gnu_49.a(utils.o): In function `pread':
+
      1dgtl : gtl
utils.c:(.text+0x350): multiple definition of `pread'
+
      elygtl : gtl
/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
+
        cvms : crustal model
/opt/cray/mpt/7.3.0/gni/mpich-gnu/4.9/lib/libmpich_gnu_49.a(utils.o): In function `pwrite':
+
        cvmh : crustal model
utils.c:(.text+0x3a0): multiple definition of `pwrite'
+
      cencal : crustal model
/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
+
      cvmsi : crustal model
/usr/bin/ld: link errors found, deleting executable `ucvm2etree-extract-MPI'
+
      linear : ifunc
collect2: error: ld returned 1 exit status
+
        ely : ifunc
make[1]: *** [ucvm2etree-extract-MPI] Error 1
+
        ucvm : map
  make[1]: Leaving directory `/mnt/a/u/sciteam/maechlin/ucvm/UCVM/src/ucvm2etree'
+
        yong : map
  make: *** [all-recursive] Error 1
+
  model_etree : model i/f
+
  model_patch : model i/f
ERROR:
+
  map_etree : map i/f
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 ==
 
== UCVM Installation on a Mac OS X ==
Line 365: Line 161:
 
  /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
 
  /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
+
The make check should be run from the source directory.
 +
cd into the UVM/test directory, Then I run the unit tests outside the make check framework.
 +
I found that the ucvm.conf is not in the current distribution. I copy the installed ucvm.conf to the conf/test/ucvm.conf
 +
%cp ~maechlin/ucvm-15.10.0/conf/ucvm.conf ~maechlin/UCVM/conf/test/.
 +
 
 +
Then the unit test should pass (after editing the ucvm.conf file as noted below).
  
 
  scecadms-MacBook-Pro-2:test maechlin$ ./unittest
 
  scecadms-MacBook-Pro-2:test maechlin$ ./unittest
Line 476: Line 277:
 
  -119.9 33.9 0
 
  -119.9 33.9 0
  
Then, I can run basic queries against this version including:
+
Then, I can run basic queries against this version including. I will run from the installation directory, bin directory:
  %ucvm_query -m cvmsi < test_inputs.txt
+
  %./ucvm_query -f ../conf/ucvm.conf -m cvmsi < ../tests/test_inputs.txt
  
 
  scecadms-MacBook-Pro-2:run maechlin$ pwd
 
  scecadms-MacBook-Pro-2:run maechlin$ pwd
  /Users/maechlin/Documents/dev/ucvm/run
+
  /Users/maechlin/ucvm-15.10.0/bin
  scecadms-MacBook-Pro-2:run maechlin$ ls
+
 
test_inputs.txt ucvm.conf
+
  scecadms-MacBook-Pro-2:run maechlin$ ./ucvm_query -f ../conf/ucvm.conf -m cvmsi < ../tests/test_inputs.txt
scecadms-MacBook-Pro-2:run maechlin$ ucvm_query -m cvmsi < test_inputs.txt
 
 
  Using Geo Depth coordinates as default mode.
 
  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.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
Line 492: Line 292:
  
 
Then run with a different model:
 
Then run with a different model:
  scecadms-MacBook-Pro-2:run maechlin$ ucvm_query -m cvmh < test_inputs.txt
+
  scecadms-MacBook-Pro-2:run maechlin$ ./ucvm_query -f ../conf/ucvm.conf -m cvmh < ../tests/test_inputs.txt
 
  Using Geo Depth coordinates as default mode.
 
  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.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
Line 519: Line 319:
 
   model_patch : model i/f
 
   model_patch : model i/f
 
     map_etree : map i/f
 
     map_etree : map i/f
 +
 +
== 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 unload 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
 +
 +
== Mac Testing ==
 +
We ran a few additional tests to  the version installed on the Mac. We will investigate use of multiple models, and the order dependencies. First we get the plotting tools working.
 +
 +
Add to the PATH the directory to the icvm-15.10.0/bin and to the ucvm-15.10.0/utilities
 +
 +
Add to the PYTHON path ucvm-15.10.0/utilities/pycvm which is a python library
 +
 +
Then on the command line plot_cross_section should work.
 +
 +
%plot_cross_section.py -b 34,-118 -u 35,-117 -s 0.01 -e 1000 -d vs -c cvms -a d
 +
 +
Now, plot a cross section across the CVM-H lr/hr boundary
 +
 +
%plot_cross_section.py -s 0 -e 5000 -h 100 -v 100 -d vs -c cvms -o 34.0,-117.5 -f 34.0 -118.0
 +
 +
When we check what models are installed, this is the list we get back
 +
 +
['cvms', 'cvmh', 'cvmh_nogtl', 'cencal', 'cvmsi', '1d', 'bbp1d', '1dgtl']
 +
 +
== Plotting Tools from Workshop ==
 +
There are specific plotting tools get sceccme virtual image
 +
login using pwd: sceccme
  
 
== Related Entries ==
 
== Related Entries ==
 
*[[UCVM]]
 
*[[UCVM]]
 
*[[Validation]]
 
*[[Validation]]

Latest revision as of 06:56, 29 November 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.

Installation and Users Guides

UCVM Current Version

This page describes successful builds of the most recent version of UCVM which is UCVM v15.10.0 in various computing environments. The software is designed to use only open-source compilers and scientific codes. However it requires a complex software stack usually provided only on Linux clusters. This stack include MPI libraries. However, the build process will detect a laptop environment and create a serial-only version of the software.

On this page, we are installing the "all models" version of UCVM. In this case, as we install using, we respond "Yes" to each model that it offers. At the completion of the Mac install (BW should be the same, must check), icvm reports the following models installed.

cd bin/ ./ucvm_query.py -h which returns

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


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

The make check should be run from the source directory. cd into the UVM/test directory, Then I run the unit tests outside the make check framework. I found that the ucvm.conf is not in the current distribution. I copy the installed ucvm.conf to the conf/test/ucvm.conf %cp ~maechlin/ucvm-15.10.0/conf/ucvm.conf ~maechlin/UCVM/conf/test/.

Then the unit test should pass (after editing the ucvm.conf file as noted below).

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

After saving this edited ucvm.conf file, run unit tests again

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
PASS

Then, when the acceptance test are run, then fail, but this fail is due to out of date reference results, not a software installation problem.

scecadms-MacBook-Pro-2:test maechlin$ pwd
/Users/maechlin/Documents/dev/ucvm/UCVM/test
scecadms-MacBook-Pro-2:test maechlin$ ./accepttest
Test: ucvm library 1d model w/ large grid
FAIL: assertion 162.482662 != -40.398000
FAIL: Mismatch on line 15979 

Create a run directory and copy a icvm.conf there.

mkdir /Users/maechlin/Documents/dev/ucvm/run
cd /Users/maechlin/Documents/dev/ucvm/run
cp /Users/maechlin/Documents/dev/ucvm/UCVM/conf/ucvm.conf .

This file needs to be edited to set the cams model path correctly, 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

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. I will run from the installation directory, bin directory:

%./ucvm_query -f ../conf/ucvm.conf -m cvmsi < ../tests/test_inputs.txt
scecadms-MacBook-Pro-2:run maechlin$ pwd
/Users/maechlin/ucvm-15.10.0/bin
scecadms-MacBook-Pro-2:run maechlin$ ./ucvm_query -f ../conf/ucvm.conf -m cvmsi < ../tests/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    162.483    390.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

Then run with a different model:

scecadms-MacBook-Pro-2:run maechlin$ ./ucvm_query -f ../conf/ucvm.conf -m cvmh < ../tests/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    162.483    390.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

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

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 unload 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

Mac Testing

We ran a few additional tests to the version installed on the Mac. We will investigate use of multiple models, and the order dependencies. First we get the plotting tools working.

Add to the PATH the directory to the icvm-15.10.0/bin and to the ucvm-15.10.0/utilities

Add to the PYTHON path ucvm-15.10.0/utilities/pycvm which is a python library

Then on the command line plot_cross_section should work.

%plot_cross_section.py -b 34,-118 -u 35,-117 -s 0.01 -e 1000 -d vs -c cvms -a d 

Now, plot a cross section across the CVM-H lr/hr boundary

%plot_cross_section.py -s 0 -e 5000 -h 100 -v 100 -d vs -c cvms -o 34.0,-117.5 -f 34.0 -118.0

When we check what models are installed, this is the list we get back

['cvms', 'cvmh', 'cvmh_nogtl', 'cencal', 'cvmsi', '1d', 'bbp1d', '1dgtl']

Plotting Tools from Workshop

There are specific plotting tools get sceccme virtual image login using pwd: sceccme

Related Entries