It would be great to support a placeholder variable (for example, {parallel-threads}) that expands to the optimal number of threads or jobs for each command, based on the total available CPU cores/threads and the number of parallel jobs. This way, when running commands that support their own parallelism (like with -j for FFmpeg or FLAC), I can write:
parallel -j 4 'ffmpeg -threads {parallel-threads} ...'
and rust-parallel will automatically substitute {parallel-threads} for each job, so all CPU resources are used efficiently and the system isn't overloaded.
Example on an 8-core machine:
- 2 jobs in parallel: each gets
{parallel-threads} = 4
- 4 jobs in parallel: each gets
{parallel-threads} = 2
Ideally, the placeholder could be named flexibly, and the value could be set based on the detected parameter (-j, --threads, etc.) or user config.
This feature would simplify using rust-parallel with tools that support internal parallelism and help avoid oversubscribing the CPU.
It would be great to support a placeholder variable (for example,
{parallel-threads}) that expands to the optimal number of threads or jobs for each command, based on the total available CPU cores/threads and the number of parallel jobs. This way, when running commands that support their own parallelism (like with-jfor FFmpeg or FLAC), I can write:and rust-parallel will automatically substitute
{parallel-threads}for each job, so all CPU resources are used efficiently and the system isn't overloaded.Example on an 8-core machine:
{parallel-threads}= 4{parallel-threads}= 2Ideally, the placeholder could be named flexibly, and the value could be set based on the detected parameter (
-j,--threads, etc.) or user config.This feature would simplify using rust-parallel with tools that support internal parallelism and help avoid oversubscribing the CPU.