Obviously the first things that come to mind are threads and forking. I wrote a version based on forking and it works fine but it is a RAM hog b/c when you fork, every new process is a copy of the parent and the parent in my case is quite large b/c it loads an AI model that consumes about 1GB of RAM.
in reply to Perl Threads and multi-core CPUs
You might want to check whether each child process has it's own copy of that 1Gbyte of data.
Have a look at the 'SHR' column in top to see how much memory is shared.
Otherwise, if the children don't need the AI model, you could try forking them before you load the model.