NOAA-OWP / ngen

Next Generation Water Modeling Engine and Framework Prototype
Other
82 stars 57 forks source link

Running ngen on CONUS with Routing: Build, Realization Configs, Routing Config, and Documentation #805

Closed stcui007 closed 1 month ago

stcui007 commented 2 months ago

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)

1.

Target Environment support

stcui007 commented 1 month ago

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 https://github.com/NOAA-OWP/ngen/pull/805#discussion_r1589357236:

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 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 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 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 https://github.com/NOAA-OWP/ngen/pull/805#discussion_r1589359789:

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 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 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 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 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 https://github.com/NOAA-OWP/ngen/pull/805#discussion_r1589362110:

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 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 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 https://github.com/NOAA-OWP/ngen/pull/805#discussion_r1589363394:

+ + +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 https://github.com/NOAA-OWP/ngen/pull/805#discussion_r1589363540:

+ + +#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=

⬇️ Suggested change

  • export NETCDFINC= +export NETCDFINC=

In doc/NextGen_ON_CONUS.md https://github.com/NOAA-OWP/ngen/pull/805#discussion_r1589365333:

  • export NETCDFINC=/usr/include/openmpi-x86_64/ +```
  • +to the path to your NetCDF include directory, i.e.

  • +```

  • export NETCDFINC= +```
  • +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 https://github.com/NOAA-OWP/ngen/pull/805#discussion_r1589366190:

+ trt - abrevitation for t-route + For all other abreviations, see Resource Usage.

⬇️ Suggested change

- trt - abrevitation for t-route - For all other abreviations, see Resource Usage. + trt - abbreviation for t-route + For all other abbreviations, see Resource Usage.

— Reply to this email directly, view it on GitHub https://github.com/NOAA-OWP/ngen/pull/805#pullrequestreview-2038405000, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACA4SRLNVWBTLEXCMRBC2PDZAOU5PAVCNFSM6AAAAABG3DTVQ2VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDAMZYGQYDKMBQGA . You are receiving this because you authored the thread.Message ID: @.***>