multiprocessing module and matplotlib.pyplot/PdfPages
Dave Angel
davea at davea.name
Tue Apr 21 06:26:36 EDT 2015
On 04/20/2015 10:14 PM, Paulo da Silva wrote:
> I have program that generates about 100 relatively complex graphics and
> writes then to a pdf book.
> It takes a while!
> Is there any possibility of using multiprocessing to build the graphics
> and then use several calls to savefig(), i.e. some kind of graphic's
> objects?
>
To know if this is practical, we have to guess about the code you
describe, and about the machine you're using.
First, if you don't have multiple cores on your machine, then it's
probably not going to be any faster, and might be substantially slower.
Ditto if the code is so large that multiple copies of it will cause
swapping.
But if you have 4 cores, and a processor=bound algorithm, it can indeed
save time to run 3 or 4 processes in parallel. You'll have to write
code to parcel out the parts that can be done in parallel, and make a
queue that each process can grab its next assignment from.
There are other gotchas, such as common code that has to be run before
any of the subprocesses. If you discover that each of these 100 pieces
has to access data from earlier pieces, then you could get bogged down
in communications and coordination.
If the 100 plots are really quite independent, you could also consider
recruiting time from multiple machines. As long as the data that needs
to go between them is not too large, it can pay off big time.
--
DaveA
More information about the Python-list
mailing list