GOES 16 Lightning Count Prediction Benchmark
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