
Ich möchte die Erstellung meiner Latex-Dokumente beschleunigen und bin neugierig, ob es möglich ist, beim Erstellen von Dokumenten alle vier meiner Prozessorkerne zu nutzen.
Es gibtAnweisungen für Windows-Benutzer, aber ich habe keine für Linux-Benutzer gefunden.
Antwort1
TeX-Engines sind einfädig, sie können die Last also nicht auf mehrere Kerne verteilen. Die TeX-Verarbeitung erfordert oft die Ausführung externer Programme (biber, bibtex, makeindex), aber da diese von TeX erstellte Dateien benötigen und ihre Ergebnisse als Dateien an TeX senden, können Sie hier auch nicht viel tun.
Dennoch hat ein Multicore-Rechner einen Vorteil: Wenn Ihr Editor (oder TeXStudio) auf einem Kern läuft und eine TeX-Engine auf einem anderen, beschleunigt das die Arbeit. Normalerweise wird dies jedoch automatisch von Ihrem Betriebssystem erledigt und ist für Sie unsichtbar.
Eine andere Situation ist die Verarbeitung rnw
von Dokumenten mit knitr
oder Sweave
. Obwohl R ebenfalls ein Thread ist, kann es Berechnungen mithilfe von multicore
Paketen parallelisieren. Dies kann R-Teile erheblich beschleunigen.
Antwort2
Derpgf-handbuchbeschreibt eine Möglichkeit, Tikzpictures mit mehreren Kernen parallel zu verarbeiten: /tikz/external/mode
Weitere Informationen finden Sie im Eintrag.
kurze Zusammenfassung
Sie müssen zunächst die Erstellung von tikzpictures externalisieren, indem Sie Folgendes in Ihre Präambel aufnehmen:
\usetikzlibrary{external}
\tikzset{external/mode=list and make}
(sehendiese Antwort, und auchdiese Antwortfalls Sie AucTeX verwenden)
Dadurch werden für jedes Tikzpicture mehrere Hilfsdateien in Ihrem Arbeitsverzeichnis erstellt. Sie können diese Hilfsdateien in einem separaten Unterverzeichnis wie diesem aufbewahren:
\tikzexternalize[prefix=figures/]
Beachten Sie, dass das angegebene Unterverzeichnis vorhanden sein muss.
Nun kann mit folgender Routine kompiliert werden:
%step 1: generate main.makefile:
pdflatex main
% step 2: generate ALL graphics on 2 processors:
make -j 2 -f main.makefile
% step 3: include the graphics:
pdflatex main