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
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
- 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 a benchmark environment:
conda create -n goes16 python=3.7 -
Once the environment is installed activate it on your machine:
source activate goes16 -
Install the needed Python libraries from conda
conda install -c conda-forge --yes \
pip \
ipython \
jupyter \
numpy \
scipy \
matplotlib \
xarray \
netcdf4 \
pandas \
pyyaml \
dask \
distributed \
scikit-learn \
pyproj
-
Make sure the CUDA kernel and CUDA toolkit are installed on your system and know the path and versions.
-
Install the tensorflow-gpu binary (if installing tensorflow 1.15) or tensorflow binary (if tensorflow 2). For more detailed installation instructions visit the tensorflow website.
# If you plan to use tensorflow 2
pip install tensorflow
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.shscript with your account number. -
Submit the benchmark script to the casper queue:
sbatch goes16_benchmark_casper.sh
Metadata
Release files for goes16ci 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| goes16ci-0.1.3.tar.gz | 18.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| goes16ci-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.7 kB
Release files / goes16ci-0.1.3.tar.gz
| Download URL | goes16ci-0.1.3.tar.gz |
|---|---|
| Size | 18.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
10cb5544d87bafc5493af76f15b3cb03b192116a139df7e76c531a5a4acc3aaf
|
|
BLAKE2b-256 checksum How to use checksums |
04da74d52fff6e303ed4085ae861796f458efa686eddbd845c0557678c6218ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3
|
Release files / goes16ci-0.1.3-py3-none-any.whl
| Download URL | goes16ci-0.1.3-py3-none-any.whl |
|---|---|
| Size | 19.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fcfa1d3ce60d2d4a356bda3cf8046e6e910b1bf8233efb6abf74e625a4b273b7
|
|
BLAKE2b-256 checksum How to use checksums |
2b6129efa23f37e7c5cc4041e8f3b36d15b369806d4179ea9d9db9de359b053a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3
|