Latex compilers with parallel support
There is probably no latex compiler which supports parallel compilation.
The short reason is: The way latex typesets documents is essential linear. If latex would typeset different document parts in parallel, they would need to be merged at the compilation. However to get the same result as in the non-parallel case, you would need to have a compilation run over the already typeset parts to connect them properly (pagebreaks, numbering of table, etc.). Hence you end up with probably the same compilation time or worse than before.
As an example, the page number are not independent usually. The page numbers of the second chapter depends on the page numbers of the first. Also there can be references, index entries, ...
If all relevant counters are reset at the start of a new chapter (page
, figure
, table
, equation
, ...), then \include
/\includeonly
can be tried to compile the chapters independently. E.g. the chapters are in separate files, input by \include
:
% test.tex
\documentclass{...}
...
\begin{document}
\include{chap1}
\include{chap2}
...
\end{document}
\includeonly
can be given on the command line (-draftmode
is described
below):
pdflatex -draftmode '\includeonly{chap1}\input{test}'
pdflatex -draftmode '\includeonly{chap2}\input{test}'
...
and in the final run(s), the complete document is set with all chapters:
pdflatex test
to get the complete output file with all chapters. Otherwise the merging of chapter PDFs is non-trivial because of inter-chapter references, bookmarks, ...
The index and bibliography are usually generated independently. Thus makeindex
/xindy
or bibtex
/biber
can be called in two parallel
processes.
A (quite) small amount of time can be saved by using -draftmode
for the first LaTeX runs except the final. With option -draftmode
the output PDF/DVI file is not written, but all auxiliary files (.aux
, .toc
, ...) are created as usual.