D10.8: DIVA online operaonal in VRE

C. Troupin, A. Barth & J.-M. Beckers (GHER - ULiège)

7th TTG meeng, Plouzané, France, 14-15 October, 2019

[email protected] – www.seadatanet.org 1/18 Definions

DIVA: soware tool designed for spaal interpolaon  https://github.com/gher-ulg/DIVA DIVAnd: n-dimensional version of DIVA  https://github.com/gher-ulg/divand.jl Julia: high-level, high-performance dynamic programming language for numerical compung  https://julialang.org/ Notebook: documents that contain live code, equaons, visualizaons and narrave text Jupyter: open-source web applicaon to create and share notebook  http://jupyter.org/ Jupyterhub: mul-user server for Jupyter notebooks  https://jupyterhub.readthedocs.io/en/latest/

2/18 Context for DIVA in VRE

1 3/18 Installing DIVA was somemes…painful

Back in 2007

4/18 Installing DIVA was somemes…painful or in 2013

4/18 What have we improved since then?

1 New mathemacal formulaon  Barth et al. 2014 2 Julia language instead of 3 Only 2 (!!!) input files data & bathymetry 4 Applicaons as Jupyter notebooks all in one

5/18 What have we improved since then?

5/18 What have we improved since then?

5/18 Jupyter notebooks as guidelines

6/18 Jupyter notebooks as guidelines

Explenatory text

6/18 Jupyter notebooks as guidelines

Explenatory text

Code fragment

6/18 Jupyter notebooks as guidelines

Explenatory text

Code fragment

Results or figure

6/18 Jupyter notebooks as guidelines

Kernel (language)

Explenatory text

Code fragment

Results or figure

6/18 What should we improve?

7/18 = Virtual Research Environment!

What should we improve?

+ Access to compung power + Data availability + Documentaon

8/18 What should we improve?

+ Access to compung power + Data availability + Documentaon

= Virtual Research Environment!

8/18 Deployment in the VRE

2 9/18 Goals: seamless generaon of DIVA products

   Compung Data Tool power

10/18 Providing users access to notebooks

≡ × 

2017 1st deployment @CINECA 2019 Deployment transferred to DKRZ for the first training workshop

Mulple copies of a Docker container are run (https://hub.docker.com/r/abarth/divand-jupyterhub)

11/18 ✓ Julia language (V1.2.0) ✓ Julia packages: PyPlot, NCDatasets, DataStructures,… ✓ DIVAnd.jl (V2.4.0, August 2019) ✓ DIVAnd notebooks (latest version)

What’s the recipe for the container?

✓ Libraries: netCDF, unzip, git, …

12/18 ✓ Julia packages: PyPlot, NCDatasets, DataStructures,… ✓ DIVAnd.jl (V2.4.0, August 2019) ✓ DIVAnd notebooks (latest version)

What’s the recipe for the container?

✓ Libraries: netCDF, unzip, git, … ✓ Julia language (V1.2.0)

12/18 ✓ DIVAnd.jl (V2.4.0, August 2019) ✓ DIVAnd notebooks (latest version)

What’s the recipe for the container?

✓ Libraries: netCDF, unzip, git, … ✓ Julia language (V1.2.0) ✓ Julia packages: PyPlot, NCDatasets, DataStructures,…

12/18 ✓ DIVAnd notebooks (latest version)

What’s the recipe for the container?

✓ Libraries: netCDF, unzip, git, … ✓ Julia language (V1.2.0) ✓ Julia packages: PyPlot, NCDatasets, DataStructures,… ✓ DIVAnd.jl (V2.4.0, August 2019)

12/18 What’s the recipe for the container?

✓ Libraries: netCDF, unzip, git, … ✓ Julia language (V1.2.0) ✓ Julia packages: PyPlot, NCDatasets, DataStructures,… ✓ DIVAnd.jl (V2.4.0, August 2019) ✓ DIVAnd notebooks (latest version)

12/18 What’s the recipe for the container?

✓ Libraries: netCDF, unzip, git, … ✓ Julia language (V1.2.0) ✓ Julia packages: PyPlot, NCDatasets, DataStructures,… ✓ DIVAnd.jl (V2.4.0, August 2019) ✓ DIVAnd notebooks (latest version)

Note: no need to edit the docker file when the DIVAnd code or the notebooks are modified

RUN j u l i a −−e v a l ’ u s i n g Pkg ; pkg ” add h t t p s :// g i t h u b . com/ gher−u l g / DIVAnd . j l # master ” ’

12/18  https://www.nature.com/articles/d41586-019-02310-3

Julia is becoming more famous!

13/18 Julia is becoming more famous!

 https://www.nature.com/articles/d41586-019-02310-3

13/18 Files I/O

3 14/18 DIVAnd file I/O

Pre-processing  Input Output  Visualisaon Observaons Gridded fields SeaDataNet (netCDF) WOD webODV CMEMS Metadata Deltares VIZ (XML) Bathymetry EMODnet GEBCO

15/18 DIVAnd file I/O

Protocol: web (Web Distributed Authoring and Versioning)

WEBDAV_USERNAME WEBDAV_PASSWORD defined at user login WEBDAV_URL

15/18 DIVAnd file I/O

get ( ” nextcloud_file ” , ” jupyterhub_file ” )

put ( ” jupyterhub_file ” , ” nextcloud_file ” )

15/18 Mul-user performance during the SDN training course

4 16/18 Oostende, 19–26 June, 2019

1 Introducon to Julia 2 Extracon of a regional bathymetry 3 Data import using ODV 4 Climatology generaon 17/18 Oostende, 19–26 June, 2019

✓ Almost all the users managed to create a small climatology ✓ Despite the computaon load, the VRE stayed alive

17/18 Thanks for your aenon

18/18