おそらく、プロセスごとに異なるユーザー ID を作成し、「ulimit」によってそれらを制限するだけで十分でしょう。Debian での bash の ulimit のマンページ:
ulimit [-HSTabcdefilmnpqrstuvx [limit]]
そのような制御を許可するシステムで、シェルとそれによって開始されたプロセスに使用可能なリソースを制御します。-H および -S オプションは、特定のリソースにハード制限またはソフト制限を設定することを指定します。一度設定すると、root 以外のユーザーはハード制限を増やすことはできません。ソフト制限は、ハード制限の値まで増やすことができます。-H も -S も指定されていない場合は、ソフト制限とハード制限の両方が設定されます。limit の値は、リソースに指定された単位の数値か、ハード、ソフト、または無制限の特別な値の 1 つにすることができます。これらは、それぞれ現在のハード リミット、現在のソフト リミット、および制限なしを表します。limit を省略すると、-H オプションが指定されていない限り、リソースのソフト リミットの現在の値が出力されます。複数のリソースが指定されている場合、制限の名前と単位が値の前に出力されます。その他のオプションは次のように解釈されます。
-a All current limits are reported
-b The maximum socket buffer size
-c The maximum size of core files created
-d The maximum size of a process's data segment
-e The maximum scheduling priority ("nice")
-f The maximum size of files written by the shell and its children
-i The maximum number of pending signals
-l The maximum size that may be locked into memory
-m The **maximum resident set size** (many systems do not honor this limit)
-n The maximum number of open file descriptors (most systems do not allow this value to be set)
-p The pipe size in 512-byte blocks (this may not be set)
-q The maximum number of bytes in POSIX message queues
-r The maximum real-time scheduling priority
-s The maximum stack size
-t The maximum amount of cpu time in seconds
-u The maximum number of processes available to a single user
-v The maximum amount of virtual memory available to the shell and, on some systems, to its children
-x The maximum number of file locks
-T The **maximum number of threads**
スレッド数を 1 に制限すると、CPU の計算時間を公平に配分できると思います。
最大 RSS も制限します。