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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions