Opened 18 years ago
Closed 17 years ago
#135 closed defect (fixed)
Optimise compute_fluxes when quantities are equal on either side
Reported by: | ole | Owned by: | ole |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Efficiency and optimisation | Version: | 1.0 |
Severity: | normal | Keywords: | |
Cc: |
Description
I think we could get ANUGA to run faster if we only compute fluxes where there is a non-zero gradient in one or more quantities.
Attachments (2)
Change History (7)
comment:1 Changed 18 years ago by ole
- Status changed from new to assigned
comment:2 follow-up: ↓ 3 Changed 17 years ago by ole
comment:3 in reply to: ↑ 2 Changed 17 years ago by ole
Replying to ole:
Dry cell exclusion implemented in changeset:4685
With this optimisation the script run_okushiri_profile.py reports an improvement in compute_fluxes from 11.25s to 8.58s or 24% faster. The overall computation was about 40s, so this optimisation improved the total running time for the problem in question by 7%.
Changed 17 years ago by ole
Changed 17 years ago by ole
comment:4 Changed 17 years ago by ole
Between changeset:4669 and changeset:4733 I have implemented a range of optimisations as the above, namely:
Dry cell exclusion in flux computation and extrapolate_second_order Separation of functions into gateways and computational routines Static work arrays A number of unneccessary computations (e.g. in gravity and balance)
The okushiri performance test improved from about 43.32s to 25.60s (see attached profiles from the Linux box nautilus). This is a 40% total improvement. It will most like be more if there are large areas of dry land.
comment:5 Changed 17 years ago by ole
- Resolution set to fixed
- Status changed from assigned to closed
Dry cell exclusion implemented in changeset:4685