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
Status: | new → assigned |
---|
comment:2 follow-up: 3 Changed 18 years ago by
comment:3 Changed 18 years ago by
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 18 years ago by
Attachment: | profile_nautilus_v4669.txt added |
---|
Changed 18 years ago by
Attachment: | profile_nautilus_v4733.txt added |
---|
comment:4 Changed 18 years ago by
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
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Dry cell exclusion implemented in changeset:4685