Skip to content

speed up of computing grids #166

Description

@mbakker7

I have been testing the speed of computing a grid with the current implementation (also in comments at the latest workshop where users reported that a string of wells is much slower than a string of line-sinks, which it shouldn't be). I compared two models to compute a grid of 100 by 100:

  1. Single layer, semi-confined, steady, 100 wells on a row
  2. Single layer, semi-confined, steady, 10 line-sinks along same row (one line-sink is computationally at least the same as the 8 wells used when doing numerical integration)
  3. Single layer, semi-confined, steady, 100a line-sinks

Results:

wells, parallel=False: 5.44 s
wells, parallel=True: 3.07 s
10 line-sinks, parallel=False: 0.51 s
10 line-sinks, parallel=True: 2.47 s !!
100 line-sinks: parallel=False: 4.56 s
100 line-sinks, parallel=True: 3.32 s

Two things are surprising: 100 wells is 10 times slower than 10 line-sinks.
parallel=True doesn't work at all for 10 line-sinks, but does work a bit for 100 line-sinks. And 100 line-sinks ar about 10 times slower than 10 line-sinks, as you expect.

Then I did the same thing, but for a 10 layer model, again with semi-confined top. Results:

wells, parallel=False: 5.43 s
wells, parallel=True: 3.16 s
10 line-sinks, parallel=False: 0.52 s
10 line-sinks, parallel=True: 2.49 s !!
100 line-sinks: parallel=False: 4.54 s
100 line-sinks, parallel=True: 3.49 s

So this is almost the same. That is surprising, as we are computing things now for 10 layers rather than 1 layer. This may be, because all new lambda values are really small. So the potential goes to zero quickly. Next, I made the vertical conductivity really small, so that all new lambda values are substantial. New results:

wells, parallel=False: 5.26 s
wells, parallel=True: 3.2 s
10 line-sinks, parallel=False: 0.72 s
10 line-sinks, parallel=True: 2.6 s !!
100 line-sinks: parallel=False: 6.25 s
100 line-sinks, parallel=True: 3.79 s

So, a bit of an increase for the line-sinks, but none for the wells. Then again, the wells are not really set to zero beyond r > 8*lab now. But they probably should.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions