Skip to content

Installation

Nikolaos Triantafyllis edited this page Feb 26, 2022 · 52 revisions

The source code of Gisola consists of Python (mostly), gfortran (for Green's Functions and Inversion procedure), and Web languages (HTML5, Javascript, etc.) for the web suite. Currently, the Gisola-tools use the docker containers technology. The Python implementation has been developed inside a conda environment.

Download and/or clone repository

You can always clone code and wiki repositories by running, respectively:

  • git clone https://github.com/nikosT/Gisola.git
  • git clone https://github.com/nikosT/Gisola.wiki.git

Hardware Requirements

  • The software is developed in a manner to be able to be deployed from PC/Laptop to High-Performance Servers with or without a GPU device.
  • Currently, it supports only Linux OS.
  • The GPU device must support the OpenACC standard such as NVidia or AMD, however, we have only tested a NVidia GPU device.

Prerequisites

  1. Install conda (here). Tested on v. 4.10.0.
  2. Install gfortran (here). Tested on v. 9.3.0.
  3. (optional) Install nvfortran from the NVIDIA HPC SDK (here). Tested on v. 20.9.
  4. Install gcc-multilib gfortran-multilib gcc-8-multilib gfortran-8-multilib libomp-dev (sudo apt install in Ubuntu)
  • Compatibility:

    APPLICATION GFORTRAN NVFORTRAN
    Axitra OK -
    ISOLA - OpenMP OK OK
    ISOLA - OpenACC - OK *

    WARNING: It works on v. 20.9. It is not working properly on v. 21.3.

  • Comments:

    • The OpenMP model is used for CPU multiprocessing only.
    • The OpenACC model is used for GPU but it will fall back to CPU (if GPU not found).
    • In the inversion procedure, we observed much faster (11x faster) execution time when using the OpenACC standard which is linked to NVFORTRAN, comparing to the OpenMP standard which is linked to GFORTRAN.
    • You can modify the core/green/Makefile and core/inversion/Makefile to serve your needs.
    • E-mail notification currently runs with SMTP service. Unless you already support this service, you might need to install apt install mailutils ssmtp and modify `/etc/ssmtp/ssmtp.conf file accordingly.

Installation

  1. Download and extract the source code.

  2. Setup Python3 and the associated packages on a conda environment. You will need to source the environment.yml inside your conda workspace. From the terminal run:

    cd Gisola;
    conda env create -f environment.yml
  3. Compile our (modified) Axitra program using the gfortran compiler (recommended):

    cd Gisola/src/core/green;
    make

    You should see now the gr_xyz executable.

  4. Compile the enhanced version of ISOLA. Choose one MODEL option according to your preferences:

    cd Gisola/src/core/inversion;
    make MODEL=openacc # uses nvfortran - GPU with CPU fallback (recommended)
    make MODEL=openmp # uses gfortran - CPU only

    You should see now the isola executable

  5. Activate conda environment and set stack to unlimited (add it permanently in ~/.bashrc or ~/.bash_profile file)

    # Gisola: inversion core dump issue fix
    # set stack size to unlimited (check: ulimit -a)
    ulimit -s unlimited
    
    conda activate gisola
  • Comments
    • Before running any of the compilations be sure that the paths to gfortran and/or nvfortran are correct inside the core/green/Makefile and the core/inversion/Makefile. Default values are set up.
    • In case you want to retry compilations, always type make clean before you compile in any of the models.
    • If you experience a segmentation fault (when using the gfortran), you should run in terminal: ulimit -s unlimited, each time you run a terminal session. For this reason, you could add this command permanently in the ~/.bashrc or ~/.bash_profile file.
    • If you navigate via a Smart Phone or Tablet, for a better experience you should set the option "Request Desktop Mode" in your web browser settings.

Gisola Tools - Enabling SeisComP MySQL database, FDSNWS-event and scolv

  1. Install docker (here). Tested on v. 20.10.2.
  2. Install docker-compose (here). Tested on v. 1.25.5.
  3. Edit tools/seiscomp/docker-compose.yml accordingly.
  4. cd tools/seiscomp; docker-compose up -d.
  5. Edit tools/proxy/docker-compose.yml accordingly. (if you need to use a proxy, default to not recommended)
  6. cd tools/proxy; docker-compose up -d. (if you need to use a proxy, default to not recommended)

Test Functionality

Evaluate setup by running the benchmark:

cd src;
# run benchmark 
# MT solution should similar to http://bbnet.gein.noa.gr/gisola/realtime/2020/noa2020vipzs/2021-06-26T00:02:43.021063Z/output
./gisola.py -c ../test/config.yaml --event-xml ../test/benchmark/event.xml

# after a successful run, Gisola can look up the event by its id, select it and then revise it (e.g. by removing one station from processing)
./gisola.py -c ../test/config.yaml -e noa2020vipzs --revise -s HL.KLV --remove

View the real-time operation in the Institute of Geodynamics of the National Observatory of Athens (NOA), Greece

Clone this wiki locally