generated from NOAA-OWP/owp-open-source-project-template
-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Running ngen on CONUS with Routing: Build, Realization Configs, Routing Config, and Documentation #805
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
program--
requested changes
May 3, 2024
6 tasks
Thanks for the review. Will implement the suggested changes.
…On Fri, May 3, 2024 at 10:33 AM Justin Singh-M. - NOAA < ***@***.***> wrote:
***@***.**** requested changes on this pull request.
------------------------------
In doc/NextGen_ON_CONUS.md
<#805 (comment)>:
> # Run Computation with Topmodel
To be added
# Run Computation with Routing
-To be added
+To run computation on CONUS with routing, we need to build the executable with routing option turned on. This can be done using the build script displayed in the [Build the Executable](#build-the-executable) and set `-DNGEN_WITH_ROUTING:BOOL=ON`. Make sure that Python is also on, and you can run the script to build the `ngen` executable.
⬇️ Suggested change
-To run computation on CONUS with routing, we need to build the executable with routing option turned on. This can be done using the build script displayed in the [Build the Executable](#build-the-executable) and set `-DNGEN_WITH_ROUTING:BOOL=ON`. Make sure that Python is also on, and you can run the script to build the `ngen` executable.
+To run computation on CONUS with routing, we need to build the executable with the routing option turned on. This can be done using the build script displayed in the [Build the Executable](#build-the-executable) section, and ensure both `-DNGEN_WITH_PYTHON:BOOL=ON` and `-DNGEN_WITH_ROUTING:BOOL=ON` are enabled. Then, you can run the script to build the `ngen` executable.
------------------------------
In doc/NextGen_ON_CONUS.md
<#805 (comment)>:
> # Run Computation with Topmodel
To be added
# Run Computation with Routing
-To be added
+To run computation on CONUS with routing, we need to build the executable with routing option turned on. This can be done using the build script displayed in the [Build the Executable](#build-the-executable) and set `-DNGEN_WITH_ROUTING:BOOL=ON`. Make sure that Python is also on, and you can run the script to build the `ngen` executable.
+
+You also need to build the `t-route` submodule. First, as the automatically downloaded `t-route` is out of date, to get the latest version, you need to remove the old `t-route` and run `git clone https://github.com/NOAA-OWP/t-route` <https://github.com/NOAA-OWP/t-route> in the `extern` directory. For building `t-route` in general, we refer user to the documentation [PYTHON_ROUTING.md](PYTHON_ROUTING.md) for essential details. We just want to add some additional discussion here to make the process easier. Note that there are more than one ways to build the `t-route`. Do `cd t-route`, then run:
⬇️ Suggested change
-You also need to build the `t-route` submodule. First, as the automatically downloaded `t-route` is out of date, to get the latest version, you need to remove the old `t-route` and run `git clone https://github.com/NOAA-OWP/t-route` <https://github.com/NOAA-OWP/t-route> in the `extern` directory. For building `t-route` in general, we refer user to the documentation [PYTHON_ROUTING.md](PYTHON_ROUTING.md) for essential details. We just want to add some additional discussion here to make the process easier. Note that there are more than one ways to build the `t-route`. Do `cd t-route`, then run:
+You also need to build the `t-route` submodule. First, as the vendored `t-route` submodule is out of date, to get the latest version, you need to remove the old `t-route` and run `git clone https://github.com/NOAA-OWP/t-route` <https://github.com/NOAA-OWP/t-route> in the `extern` directory. For building `t-route` in general, we refer to the documentation [PYTHON_ROUTING.md](PYTHON_ROUTING.md) for essential details. We just want to add some additional discussion here to make the process easier. Note that there is more than one way to build `t-route`. Do `cd t-route`, then run:
------------------------------
In doc/NextGen_ON_CONUS.md
<#805 (comment)>:
> # Run Computation with Topmodel
To be added
# Run Computation with Routing
-To be added
+To run computation on CONUS with routing, we need to build the executable with routing option turned on. This can be done using the build script displayed in the [Build the Executable](#build-the-executable) and set `-DNGEN_WITH_ROUTING:BOOL=ON`. Make sure that Python is also on, and you can run the script to build the `ngen` executable.
+
+You also need to build the `t-route` submodule. First, as the automatically downloaded `t-route` is out of date, to get the latest version, you need to remove the old `t-route` and run `git clone https://github.com/NOAA-OWP/t-route` <https://github.com/NOAA-OWP/t-route> in the `extern` directory. For building `t-route` in general, we refer user to the documentation [PYTHON_ROUTING.md](PYTHON_ROUTING.md) for essential details. We just want to add some additional discussion here to make the process easier. Note that there are more than one ways to build the `t-route`. Do `cd t-route`, then run:
+
+```
+FC=mpif90 NETCDFINC=<path-to-netcdf-include-directory> ./compiler.sh
+```
+
+This will let you to use the NetCDF library that you want to build `t-route`. Alternatively, you can edit the `compiler.sh` file, note these comment lines in the script:
⬇️ Suggested change
-This will let you to use the NetCDF library that you want to build `t-route`. Alternatively, you can edit the `compiler.sh` file, note these comment lines in the script:
+This will let you use the NetCDF library that you want to build `t-route`. Alternatively, you can edit the `compiler.sh` file, note these comment lines in the script:
------------------------------
In doc/NextGen_ON_CONUS.md
<#805 (comment)>:
> +
+```
+FC=mpif90 NETCDFINC=<path-to-netcdf-include-directory> ./compiler.sh
+```
+
+This will let you to use the NetCDF library that you want to build `t-route`. Alternatively, you can edit the `compiler.sh` file, note these comment lines in the script:
+
+```
+#if you have custom dynamic library paths, uncomment below and export them
+#export LD_LIBRARY_PATHS=<paths>:$LD_LIBRARY_PATHS
+```
+
+You can uncomment the second line above and that put your NetCDF library in the path. In addition, change this line:
+
+```
+ export NETCDFINC=/usr/include/openmpi-x86_64/
⬇️ Suggested change
- export NETCDFINC=/usr/include/openmpi-x86_64/
+export NETCDFINC=/usr/include/openmpi-x86_64/
------------------------------
In doc/NextGen_ON_CONUS.md
<#805 (comment)>:
> +
+```
+#if you have custom dynamic library paths, uncomment below and export them
+#export LD_LIBRARY_PATHS=<paths>:$LD_LIBRARY_PATHS
+```
+
+You can uncomment the second line above and that put your NetCDF library in the path. In addition, change this line:
+
+```
+ export NETCDFINC=/usr/include/openmpi-x86_64/
+```
+
+to the path to your NetCDF include directory, i.e.
+
+```
+ export NETCDFINC=<path to your NetCDF include directory>
⬇️ Suggested change
- export NETCDFINC=<path to your NetCDF include directory>
+export NETCDFINC=<path to your NetCDF include directory>
------------------------------
In doc/NextGen_ON_CONUS.md
<#805 (comment)>:
> + export NETCDFINC=/usr/include/openmpi-x86_64/
+```
+
+to the path to your NetCDF include directory, i.e.
+
+```
+ export NETCDFINC=<path to your NetCDF include directory>
+```
+
+Then, run the command:
+
+```
+FC=mpif90 ./compiler.sh
+```
+
+After successfully building the `t-route`, you can run `ngen` with routing. Note that we have several realization configuration files and the `routing_config_CONUS.yaml` file for running `ngen` with routing. The realization configuration file and `routing_config_CONUS.yaml` specify where the input and output files are. For routing, we assume the existence of a `stream_output_dir` directory for writing output files. You need to do `mkdir stream_output_dir` before running `ngen`. With that, we can run an example with the command:
⬇️ Suggested change
-After successfully building the `t-route`, you can run `ngen` with routing. Note that we have several realization configuration files and the `routing_config_CONUS.yaml` file for running `ngen` with routing. The realization configuration file and `routing_config_CONUS.yaml` specify where the input and output files are. For routing, we assume the existence of a `stream_output_dir` directory for writing output files. You need to do `mkdir stream_output_dir` before running `ngen`. With that, we can run an example with the command:
+After successfully building `t-route`, you can run `ngen` with routing. Note that we have several realization configuration files and the `routing_config_CONUS.yaml` file for running `ngen` with routing. The realization configuration file and `routing_config_CONUS.yaml` specify where the input and output files are. For routing, we assume the existence of a `stream_output_dir` directory for writing output files. You need to do `mkdir stream_output_dir` before running `ngen`. With that, we can run an example with the command:
------------------------------
In doc/NextGen_ON_CONUS.md
<#805 (comment)>:
> +* trt - abrevitation for t-route
+* For all other abreviations, see [Resource Usage](#resource-usage).
⬇️ Suggested change
-* trt - abrevitation for t-route
-* For all other abreviations, see [Resource Usage](#resource-usage).
+* trt - abbreviation for t-route
+* For all other abbreviations, see [Resource Usage](#resource-usage).
—
Reply to this email directly, view it on GitHub
<#805 (review)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACA4SRLNVWBTLEXCMRBC2PDZAOU5PAVCNFSM6AAAAABG3DTVQ2VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDAMZYGQYDKMBQGA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
program--
approved these changes
May 8, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds several realization config files and the routing config file for running ngen with routing on CONUS. It also provides specific documentation on how to build and run MPI jobs with routing in ngen framework,
Additions
Realization config files for runing routing after noah-owp-modular, running routing after noah+pet+cfe, running routing
after noah+pet+smp+sft+cfe, all on CONUS.
Also the configuration file for running routing on CONUS: routing_config_CONUS.yaml.
Updated documentation.
Removals
Changes
Testing
Running ngen tests with all 3 realization configs.
Screenshots
Notes
This PR should be merged after PR#775 and PR#794. Although no real conflict, it is better for understanding the construction of the realization configs and the documentation.
Todos
Checklist
Testing checklist (automated report can be put here)
Target Environment support