Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Parallel docs build #5597

Closed
wants to merge 3 commits into from
Closed

Conversation

mdboom
Copy link
Member

@mdboom mdboom commented Dec 1, 2015

This is a follow-on to #5589, that enables parallel doc building for all extensions. This does seem to result in the docs actually being built in parallel -- though only using 186% of CPU time on average on a Core i7. However, on my machine, it hangs indefinitely with the message "waiting for workers..." at the end, so it's still not a viable solution. However, I'm putting this up here in case anyone else has any ideas.

Cc: @jschuller, @jenshnielsen, @birkenfeld

@QuLogic
Copy link
Member

QuLogic commented Dec 3, 2015

It looks like the same metadata fix needs to be applied to doc/sphinxext/github.py if possible.

@birkenfeld
Copy link

Might look into this when I have time.

also cc @shimizukawa

@mdboom
Copy link
Member Author

mdboom commented Dec 3, 2015

Thanks, @birkenfeld. matplotlib's docs are enormous (though build time is mostly due to plotting, not text), but any additional performance we can get out of Sphinx is much appreciated.

@mdboom
Copy link
Member Author

mdboom commented Dec 3, 2015

Also, @birkenfeld: Thanks for making Sphinx!

@birkenfeld
Copy link

I merged a pull request that rewrites parallel handling to be less complex yesterday (into both master and stable branches). Can you try again?

@mdboom
Copy link
Member Author

mdboom commented Dec 22, 2015

@birkenfeld: Indeed that helps considerably, and it's nice to have the feedback about which extensions are preventing parallel reading.

With the changes in this PR, plus manually hacking the IPython and Numpy sphinx extensions we use (which I'll create PRs for as well), I was able to get the doc build time down from 8:58 to 4:27 on a Core i7 quad-core. Not bad at all.

@mdboom
Copy link
Member Author

mdboom commented Dec 22, 2015

See ipython/ipython#9098. Numpydoc already has the necessary changes in master.

@jenshnielsen
Copy link
Member

It's probably a good idea to watch out for IPython 4.1 beta announcements and make sure that is backported if needed/possible. I will try to remember that. There was some talk about that on the ipython mailing list before christmas

@QuLogic
Copy link
Member

QuLogic commented Jul 7, 2016

IPython 4.1 is out now, right?

@jenshnielsen
Copy link
Member

I have tried it (on https://github.com/jenshnielsen/matplotlib/tree/parallel-docs2) Unfortunatly it suffers from some of the same issues as running the tests in parallel and often fails

@tacaswell tacaswell added this to the unassigned milestone Jul 16, 2016
@tacaswell
Copy link
Member

This seems to be working for me (with numpydoc master). Looks like it will itermittently saturate 8 cores. It gets a full rebuild down to 2:24 and a small-change rebuild to under a few seconds. I'll open a new PR sometime tonight.

@jenshnielsen
Copy link
Member

Last time I tried this it resulted in lots if intermittent build failures on Travis so I never opened a new pr

@tacaswell tacaswell mentioned this pull request Aug 28, 2016
@QuLogic
Copy link
Member

QuLogic commented Oct 23, 2016

This was applied with #6993.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants