Difference between revisions of "UCVM Installation Notes"
(26 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
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 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 == | ||
+ | *[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 | + | 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) [https://hypocenter.usc.edu/research/UCVM/get_autotools.sh.txt 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 == | |
− | + | *[[UCVM]] | |
− | + | *[[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.
Contents
Installation and Users Guides
- UCVM Users Guide with List of Commands
- UCVM Users Guide
- Advanced Users Guide
- UCVM Introduction Tutorial
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