Opened 16 years ago

Closed 15 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)

profile_nautilus_v4669.txt (12.3 KB) - added by ole 15 years ago.
profile_nautilus_v4733.txt (12.2 KB) - added by ole 15 years ago.

Download all attachments as: .zip

Change History (7)

comment:1 Changed 16 years ago by ole

  • Status changed from new to assigned

comment:2 follow-up: Changed 15 years ago by ole

Dry cell exclusion implemented in changeset:4685

comment:3 in reply to: ↑ 2 Changed 15 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 15 years ago by ole

Changed 15 years ago by ole

comment:4 Changed 15 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 15 years ago by ole

  • Resolution set to fixed
  • Status changed from assigned to closed
Note: See TracTickets for help on using tickets.