-
Notifications
You must be signed in to change notification settings - Fork 12
Installation
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.
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
- 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.
- Install
conda
(here). Tested on v. 4.10.0. - Install
gfortran
(here). Tested on v. 9.3.0. -
(optional) Install
nvfortran
from theNVIDIA HPC SDK
(here). Tested on v. 20.9. - 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.
-
Download and extract the source code.
-
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
-
Compile our (modified) Axitra program using the
gfortran
compiler (recommended):cd Gisola/src/core/green; make
You should see now the
gr_xyz
executable. -
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 -
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 thecore/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.
- Before running any of the compilations be sure that the paths to gfortran and/or nvfortran are correct inside the
- Install
docker
(here). Tested on v. 20.10.2. - Install
docker-compose
(here). Tested on v. 1.25.5. - Edit
tools/seiscomp/docker-compose.yml
accordingly. -
cd tools/seiscomp; docker-compose up -d
. - Edit
tools/proxy/docker-compose.yml
accordingly. (if you need to use a proxy, default to not recommended) -
cd tools/proxy; docker-compose up -d
. (if you need to use a proxy, default to not recommended)
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