Improve the "parallelize" distribution mechanism

Bug #1245747 reported by Michele Simionato
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenQuake Engine
Fix Released
High
Michele Simionato

Bug Description

At the moment the parallelize method of the base calculator works by splitting the task to spawn in bunches. Only after the first bunch is completely finished the second bunch starts, only after the second bunch finished the third bunch starts, and so one. This is bad: suppose there are sources which is particularly slow to compute. Then we have to wait for them in each bunch. The solution is to generate a single bunch with a lot of tasks: we will have to wait for the slow sources again, but only once and not N times, where N is the number of bunches. It is important to notice that celery is perfectly capable to manage in its queue thousands of tasks, so sending everything to celery is a perfectly legitimate approach, unless we start sending millions of tasks. In that case all the time will be spent in networking. Also building the arglist in memory is perfectly possibile, even with 100,000 sources the memory consumption is negligible (I checked).

description: updated
Changed in oq-engine:
importance: Undecided → High
status: New → In Progress
assignee: nobody → Michele Simionato (michele-simionato)
Changed in oq-engine:
status: In Progress → Fix Committed
milestone: none → 1.0.1
Changed in oq-engine:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.