...出力が2分で来るように、100個のコマンドすべてを並行して実行します
これは、システムに200個のプロセッサがある場合にのみ可能です。
コマンドを並行して実行するためのそのようなユーティリティ/コマンドはシェルスクリプトにはありません。あなたができることは、バックグラウンドでコマンドを実行することです:
for ((i=0;i<200;i++))
do
MyCommand &
done
(バックグラウンド)を使用&
すると、各実行ができるだけ早くスケジュールされます。ただし、これはコードが200分未満で実行されることを保証するものではありません。システムに搭載されているプロセッサの数によって異なります。
プロセッサが1つだけで、コマンドの実行ごとに(2分かかる)2分間の計算が行われている場合、プロセッサは何らかの作業を行っています。つまり、無駄なサイクルはありません。この場合、コマンドを並行して実行しても効果はありません。これは、空きではないプロセッサが1つしかないためです。したがって、プロセスは順番が実行されるのを待っているだけです。
複数のプロセッサを使用している場合は、上記の方法(forループ)が合計実行時間を短縮するのに役立つ場合があります。