Skip to content
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

Resolve overhead Threads.@threads (> 8 threads) #261

Merged
merged 20 commits into from
Jun 12, 2023

Commits on May 10, 2023

  1. threads and basesize (vertical and kin-wave)

    Make use of Threads.@Spawn and basesize to have more control on the amount of work per thread. Added this for vertical and kinematic wave routing components.
    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    f59cac8 View commit details
    Browse the repository at this point in the history
  2. Threads.@Spawn for local inertial routing

    and removed eachindex when not required
    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    caab73f View commit details
    Browse the repository at this point in the history
  3. stream order and subdomains

    Use only catchment scale stream order to partition river and land domain for parallel running of kinematic wave solution. Different minimum stream order values can be supplied for the river and land domain.
    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    466abdb View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9c349e8 View commit details
    Browse the repository at this point in the history
  5. split struct SurfaceFlow

    SurfaceFlow is used for both kinematic wave river and overland flow. This is now split into structs SurfaceFlowRiver and SurfaceFlowLand. It simplifies the orginal update function (split into two, logic easier to follow), and dispatching on these types is easier (e.g. for BMI to extract relevant properties as grid type).
    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    07e8eb5 View commit details
    Browse the repository at this point in the history
  6. fix threading kinematic wave overland flow

    use threaded_foreach instead of @threads
    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    5523c23 View commit details
    Browse the repository at this point in the history
  7. For threading use spawn tasks and Polyester threads

    For threads <= 8 spawn tasks is used (outperforms Polyester threads in this range), and for threads > 8 Polyester threads is used (spawn tasks slows down in this range).
    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    5a8f671 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    78f58f7 View commit details
    Browse the repository at this point in the history
  9. performance floodplain routing

    Reduce run time by applying loopvectorization only for edges above flow threshold and by pre-allocating more variables (river and floodplain).
    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    ef29614 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    fa55d67 View commit details
    Browse the repository at this point in the history
  11. Use @batch for 2D local inertial flow

    and stable_timestep calculation is now faster with @tturbo.
    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    ded90d1 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    c399d4e View commit details
    Browse the repository at this point in the history
  13. update docs model parameters

    and rename variable index of struct FloodPlain
    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    9b31cdc View commit details
    Browse the repository at this point in the history
  14. update threading part docs

    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    4f1eab3 View commit details
    Browse the repository at this point in the history
  15. update changelog

    verseve committed May 10, 2023
    Configuration menu
    Copy the full SHA
    dcf5406 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2023

  1. update docs and remove field to_river from SurfaceFlowRiver

    - update model parameters docs because of split of struct SurfaceFlow in river and overland flow structs.
    - remove field to_river from struct SurfaceFlowRiver (not used as part of river flow).
    verseve committed May 11, 2023
    Configuration menu
    Copy the full SHA
    95f5867 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    00e5205 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2023

  1. use IfElse.ifelse

    For Julia version < 1.8 Base.ifelse is not working with Loopvectorization (`LoopVectorization.check_args` on your inputs failed).
    verseve committed May 16, 2023
    Configuration menu
    Copy the full SHA
    3011453 View commit details
    Browse the repository at this point in the history

Commits on Jun 12, 2023

  1. Configuration menu
    Copy the full SHA
    f8c5cb7 View commit details
    Browse the repository at this point in the history
  2. address review comment

    verseve committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    829ec98 View commit details
    Browse the repository at this point in the history