
Gostaria de acelerar a construção de meus documentos de látex e estou curioso para saber se é possível usar todos os quatro núcleos do meu processador ao criar documentos.
Háinstruções para usuários do Windows, mas não encontrei nenhum para usuários Linux.
Responder1
Os mecanismos TeX são de thread único, portanto, não podem distribuir a carga para vários núcleos. O processamento do TeX geralmente requer a execução de programas externos (biber, bibtex, makeindex), mas como eles precisam de arquivos produzidos pelo TeX e enviam seus resultados para o TeX como arquivos, você também não pode fazer muito aqui.
Ainda assim, há uma vantagem em ter uma máquina multicore: se o seu editor (ou TeXStudio) rodar em um núcleo e um mecanismo TeX em outro, isso irá acelerar as coisas. No entanto, isso geralmente é feito automaticamente pelo seu sistema operacional e é transparente para você.
Outra situação é o processamento rnw
de documentos com knitr
ou Sweave
. Embora R também seja one-threaded, ele pode paralelizar cálculos usando multicore
package. Isso pode acelerar consideravelmente as peças R.
Responder2
Omanual pgfdescreve uma maneira de processar imagens tikz com vários núcleos em paralelo: consulte a entrada para /tikz/external/mode
obter detalhes.
pequeno resumo
Primeiro você precisa externalizar a criação de tikzpictures incluindo o seguinte em seu preâmbulo:
\usetikzlibrary{external}
\tikzset{external/mode=list and make}
(veresta resposta, e tambémesta respostacaso você esteja usando AucTeX)
Isto criará vários arquivos auxiliares em seu diretório de trabalho para cada tikzpicture. Você pode querer manter esses arquivos auxiliares em um subdiretório separado como este:
\tikzexternalize[prefix=figures/]
Observe que o subdiretório especificado precisa existir.
Agora você pode compilar com a seguinte rotina:
%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