On 7/18/2023 4:12 PM, Hans Hagen wrote:
Hi,
In todays upload there is a follow up on a new feature that is already present in the previous upload (but that was not yet advertised):
context --parallel test1.tex test2.tex test3.tex
context --parallel --pattern=test*.tex
context --parallellist myfile.cmd (filters context processing lines)
context --parallel test1.tex test2.tex test3.tex --terminal
The --parellel feature will run in parallel, By default upto 8 jobs but you can specify less or more depending on your hardware but on my machine this is reasonable.
See workflows-parrallel at the end for more info. That one also mentions the new --forceinput flag which makes that when these
context foo-1.tex --mode=m-1 --forceinput=whatever.tex context foo-3.tex --mode=m-3 --forceinput=whatever.tex
are run in parallel there is no clash in tuc/pdf. Of course not all scenarios might work out well. Commandline arguments given are passed on to the different jobs but it's good enough for the purpose I have in mind.
fwiw: a single pass teststuite run (some 1950 files) goes down from 1350 to 700 seconds but another run with 1200 complex xml documents goes 4 times faster. In the end this is way cheaper than updating a 5 year old dev machine (a new one would run about twice as fast which would bring about the same gain).
Hans
ps. Because tex is a memory intense application it doesn't scale with the number of cores unless one has the latest greatest fast memory as well as generous cpu caches. There's only so much one can do in the code base about it.
Nice. Some of my make files use concurrence (MAKEFLAGS += --jobs=5). That seems to bring similar benefits. Is this different beyond the syntax? -- Rik