Is there anybody using the method gsim.disaggregate_poe directly?

56 views
Skip to first unread message

Michele Simionato

unread,
Nov 13, 2017, 6:22:41 AM11/13/17
to OpenQuake Users
Dear users,

in the last few days we have been working on the disaggregation calculator and you should expect some significant improvements to it in the next release of the engine.

While investigating the performance bottlenecks we discovered that the method  `.disaggregate_poe` of aby GSIM class is one of the main reasons for the slowness of the
calculator. The problem is with the signature of the method, disaggregate_poe(self, sctx, rctx, dctx, imt, iml, truncation_level, n_epsilons). In particular the truncation_level
is passed which is used then to instantiate a scipy.stats.truncnorm class. This is a slow operation which is repeated million of times (one per rupture). In the next version of
the engine I am going to change the signature of this method to disaggregate_poe(self, sctx, rctx, dctx, imt, iml, truncnorm, n_epsilons) so that a truncnorm instance is passed
from outside. This allows instantiating the distribution function only once.

If you have scripts calling this method directly you will have to fix them. Notice that scripts calling openquake.hazardlib.calc.disaggregation will keep working as before.

Apart from that, if you have issues with disaggregation calculations (errors, memory issues, performance issues, etc) this is the right moment to speak since we are
working on that.


        Michele Simionato

readat...@gmail.com

unread,
Jan 18, 2018, 3:39:33 PM1/18/18
to OpenQuake Users
Any reason that disaggregation calculator and PSHA cant be run concurrently? Seems like they ought to be pulling the same source data and you should be able to run them simultaneously...

Michele Simionato

unread,
Jan 19, 2018, 12:59:42 AM1/19/18
to OpenQuake Users


On Thursday, January 18, 2018 at 9:39:33 PM UTC+1, readat...@gmail.com wrote:
Any reason that disaggregation calculator and PSHA cant be run concurrently? Seems like they ought to be pulling the same source data and you should be able to run them simultaneously...

If the intensity measure level (IML) used for the disaggregation is known in advance and set in the job.ini file (parameter iml_disagg) then the disaggregation calculation is done concurrently with the PSHA calculation,
they are one and the same. The engine works already in this way.
However, normally the user specifies the parameter poes_disagg: in order to convert from the PoE to the IML, one needs to perform a PSHA calculation first, then the hazard curves
are known and it is possible to extract the IML from the PoE by numerically inverting the curves. This is the reason why a PSHA calculation is done before the disaggregation if you do
not specify iml_disagg.
HTH,

       Michele Simionato

readat...@gmail.com

unread,
Jan 19, 2018, 3:21:04 PM1/19/18
to OpenQuake Users
Thanks!
Reply all
Reply to author
Forward
0 new messages