"GNU parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU parallel can then split the input and pipe it into commands in parallel."
Note that l2gen processing is quite I/O intensive and many modern muti-core CPU's can saturate disk IO. You may find it helpful to write output to a separate filesystem.
A common strategy to determine how many jobs can be run in parallel is to start with 2 simultaneous, then 4, 8, ... until thruput falls off.