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.

Tags:

Windows

Linux