prll is a utility for parallelizing the execution of shell functions. It provides a convenient interface for parallelizing the execution of a single task over multiple data files or any other kind of data that you can pass as a shell function argument. It is meant to make it simple to fully utilize a multicore/multiprocessor machine. prll is designed to be used not just in shell scripts, but also in interactive shells. To make the latter convenient, it is implemented as a shell function. Shells are not very good at automatic job management, so prll uses helper programs, written in C. To prevent race conditions, System V Message Queues are used to signal job completion. Standard output is buffered and Semaphores are used to prevent interleaving.