Parallelize runs jobs in parallel, spreading them over the number of cores (by default; you can alter this).
Now in Alire.
The jobs are read from standard input.
Motivation: to speed up ACATS-grading.
Lessons: It’s a small program (127 loc total), so it’s perhaps not surprising that using named declare blocks rather than single-use subprograms felt clearer. I would have liked to be able to say exit <named block> when ...
, but I can see this would be syntactic sugar for a goto
!
Alternatives: I’m not sure whether the Perl GNU Parallel would have done the job I needed. I misunderstood the description, and by the time I re-read it properly this program was nearly done.