goes16ci

Machine learning benchmark for lightning prediction with GOES16


License
MIT
Install
pip install goes16ci==0.1.3

Documentation

GOES 16 Lightning Count Prediction Benchmark

Build Status

The GOES 16 Lightning Count Prediction benchmark is a deep learning benchmark for HPC systems used for atmospheric science problems.

Contributors

  • David John Gagne
  • Bill Anderson
  • Gunther Wallach
  • Bill Petzke

Requirements

The code is designed to run on Python 3.6 and 3.7. It requires the following Python libraries:

  • numpy
  • scipy
  • pandas
  • xarray
  • tensorflow>=2.0.0
  • scikit-learn
  • pyproj
  • dask distributed (for data processing)
  • ipython
  • cartopy
  • pyyaml
  • jupyter (for interactive visualization of neural networks)

Setup from Scratch

  • Install Python 3.7 on your machine. I recommend the Miniconda Python installer available here.

  • Create the benchmark environment: conda env create -f environment.yml This will automatically install all dependencies, including the latest version of tensorflow.

  • Once the environment is installed activate it on your machine: source activate goes

  • Make sure the CUDA kernel and CUDA toolkit are installed on your system and know the path and versions.

Run Benchmark Script

  • Clone the goes16ci git repository to your home directory.
cd ~
git clone https://github.com/NCAR/goes16ci.git
cd goes16ci
  • Install the goes16ci library
pip install .
  • Download the GOES16 patch files. You will need about 8 GB free to download and untar the data.
python download_data.py
  • Run the benchmark script. The script will output trained neural networks and a yaml file with the timing information for each step.
python goes16_deep_learning_benchmark.py
  • If you want to modify the neural network or other properties of the script, you can make a copy of benchmark_config_default.yml and modify it. To run the script with the new config file:
python goes16_deep_learning_benchmark.py -c benchmark_config_default.yml

Setup on Cheyenne/Casper

  • Clone the git repo to your home directory
cd ~
git clone https://github.com/NCAR/goes16ci.git
cd goes16ci
  • Create a link to the patch data on GLADE
ln -s /glade/p/cisl/aiml/dgagne/goes16_nc/ABI_patches_20190315 data
  • Modify the goes16_benchmark_casper.sh script with your account number.

  • Submit the benchmark script to the casper queue: sbatch goes16_benchmark_casper.sh