[解決済み] Bashスクリプトを最大プロセス数で並列化する
2023-01-25 06:43:38
質問
Bashでループがあるとします。
for foo in `some-command`
do
do-something $foo
done
do-something
は cpu バインドされており、私はきれいな 4 コア プロセッサを持っています。最大で 4 コアまで使えるようにしたいです。
do-something
を一度に実行できるようにしたいのです。
という素朴な考え方のようです。
for foo in `some-command`
do
do-something $foo &
done
これは
すべて
do-something
を一度に実行することは可能ですが、いくつかの欠点があります。
すべて
を一度に実行すると少し遅くなる可能性があります。もうひとつの問題は、このコードブロックはすぐに戻るので、すべての
do-something
が終了したときに他の作業をする方法がないことです。
このループをどのように書けば、常にX個の
do-something
が同時に実行されるようにするには、どのように書けばよいでしょうか。
どのように解決するのですか?
何をしたいかによりますが、xargsも役に立ちます(こちら:pdf2psでドキュメントを変換する)。
cpus=$( ls -d /sys/devices/system/cpu/cpu[[:digit:]]* | wc -w )
find . -name \*.pdf | xargs --max-args=1 --max-procs=$cpus pdf2ps
docsから。
--max-procs=max-procs
-P max-procs
Run up to max-procs processes at a time; the default is 1.
If max-procs is 0, xargs will run as many processes as possible at a
time. Use the -n option with -P; otherwise chances are that only one
exec will be done.
関連
-
[解決済み] Bashスクリプトで引数を反復処理する方法
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] bashシェルスクリプトの全引数を伝搬させる
-
[解決済み] Bashスクリプトでカレントディレクトリ名(フルパスなし)を取得する
-
[解決済み】Bashスクリプトでクリップボードにパイプを接続する
-
[解決済み】Bashスクリプトに渡された引数の数を確認する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] IFS=$' \n' の正確な意味は何ですか?
-
[解決済み] bashで変数に改行を埋め込もうとする [重複].
-
[解決済み] シェルスクリプトで文字列が空でもスペースでもないことをチェックする
-
[解決済み] シェルスクリプトによるDockerコンテナ内でのスクリプトの実行
-
[解決済み] シェルスクリプトでINI値を取得するには?
-
[解決済み] bashで端末の最終行を削除して置換するには?
-
[解決済み] Unixで、カレントディレクトリ以下をすべて削除するにはどうしたらいいですか?
-
[解決済み] 変数を展開するheredocを回避する方法は?重複
-
[解決済み] Bash。フォルダ構造を保持したまま再帰的に名前付きファイルをコピーする
-
[解決済み] sed を使ってファイルの名前を大量に変更する