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

Run doxygen with threads. #14335

Merged
merged 3 commits into from Oct 5, 2022
Merged

Run doxygen with threads. #14335

merged 3 commits into from Oct 5, 2022

Conversation

bangerth
Copy link
Member

@bangerth bangerth commented Oct 4, 2022

Newer doxygen versions (since late in the 1.8.* series) can use multiple threads to read input files, and to a limited degree generate dot graphs in parallel. Since generating the documentation takes quite a long time, I thought I'd play with this. This is also useful because when generating documentation, everything is funneled into doxygen which then, for several minutes, runs as the only process on systems that today have multiple cores that are then unused.

Setting two of doxygen's parameters to zero then lets doxygen choose the number of threads based on the number of available cores. This substantially reduces the build time, even though it increases the overall CPU time -- but I think the former outweighs the latter given that this is the sequential step:

old:
-----
real    4m9.948s
user    4m3.983s
sys     0m6.577s

real    4m11.068s
user    4m4.590s
sys     0m7.003s


new:
------
real    1m27.764s
user    7m1.715s
sys     0m14.377s

real    1m30.634s
user    7m2.998s
sys     0m14.391s

(Timings for everything excluding running latex to create formulas. That is apparently broken in the doxygen version I'm testing this with, with or without using multiple threads, for reasons I still have to investigate.)

@marcfehling
Copy link
Member

The doxygen version on the 'indent' worker is 1.8.13. Yet, it complains about unsupported tags:

warning: ignoring unsupported tag `NUM_PROC_THREADS       =' at line 80, file options.dox

I'm puzzled.

@bangerth
Copy link
Member Author

bangerth commented Oct 4, 2022

The flag was only introduced in 1.8.19. So I guess I have to guard the use of the flag with a version check :-(

@bangerth
Copy link
Member Author

bangerth commented Oct 4, 2022

Seems to be working now.

Copy link
Member

@tjhei tjhei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome, great find! 👍

@masterleinad masterleinad merged commit eef1949 into dealii:master Oct 5, 2022
@bangerth bangerth deleted the dox-par branch October 5, 2022 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants