This repo is compares the performance of GWLF-E at 0.6.3 against the improvements made by Drexel in their fork.
- Python 2.7
- Pipenv
Check out this branch and run make
. This will:
- Install GWLF-E 0.6.3 in the
wikiwatershed
directory - Install GWLF-E drexeleds#develop in the
drexeleds
directory - Install dependencies for result interpretation in the
main
directory - Run both versions against the tests in
tests
directory- These tests were compiled using stored data from a number of MapShed
runs on a local database using the
extra/tests.sql
query
- These tests were compiled using stored data from a number of MapShed
runs on a local database using the
- Compare the timings for both and print the results
- Compare the results for both with a 0.000000000001% tolerance and print the results
Given the latest code, the numbers match:
$ make -s tolerance
huc08__1751.json matches to a tolerance of 1e-14
huc12__60101.json matches to a tolerance of 1e-14
huc08__1750.json matches to a tolerance of 1e-14
huc10__9392.json matches to a tolerance of 1e-14
huc08__1748.json matches to a tolerance of 1e-14
huc12__53956.json matches to a tolerance of 1e-14
huc10__2208.json matches to a tolerance of 1e-14
huc08__1773.json matches to a tolerance of 1e-14
huc10__38.json matches to a tolerance of 1e-14
huc10__1340.json matches to a tolerance of 1e-14
huc10__3176.json matches to a tolerance of 1e-14
huc12__60099.json matches to a tolerance of 1e-14
huc08__1747.json matches to a tolerance of 1e-14
huc10__12968.json matches to a tolerance of 1e-14
huc10__3928.json matches to a tolerance of 1e-14
huc10__11444.json matches to a tolerance of 1e-14
huc08__92.json matches to a tolerance of 1e-14
huc12__55174.json matches to a tolerance of 1e-14
huc10__3179.json matches to a tolerance of 1e-14
huc10__1341.json matches to a tolerance of 1e-14
huc12__60100.json matches to a tolerance of 1e-14
On my computer, a 2015 i5 13" MacBook Pro, there is significant speedup in the GWLF-E model, and slight slowdowns in reading and writing files:
$ make -s timing
huc08
* Average read_input_file speedup: -11.26%
* Average prepare_input_gms speedup: 0.00%
* Average read_input_gms speedup: 6.97%
* Average run_gwlfe speedup: 82.80%
* Average write_output_file speedup: -42.99%
* Average total speedup: 78.57%
huc10
* Average read_input_file speedup: -19.21%
* Average prepare_input_gms speedup: 0.00%
* Average read_input_gms speedup: 1.46%
* Average run_gwlfe speedup: 79.11%
* Average write_output_file speedup: 9.03%
* Average total speedup: 74.17%
huc12
* Average read_input_file speedup: -12.52%
* Average prepare_input_gms speedup: 0.00%
* Average read_input_gms speedup: 1.57%
* Average run_gwlfe speedup: 79.07%
* Average write_output_file speedup: 1.25%
* Average total speedup: 73.99%
Total
* Average read_input_file speedup: -15.34%
* Average prepare_input_gms speedup: 0.00%
* Average read_input_gms speedup: 3.06%
* Average run_gwlfe speedup: 80.15%
* Average write_output_file speedup: -7.69%
* Average total speedup: 75.38%