問題タブ [gnu-parallel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
13996 参照

bash - GNU 並列でコマンド ライン引数を分割する

使用GNU parallel: http://www.gnu.org/software/parallel/

2 つの引数を取るプログラムがあります。

ファイル名のペアを生成するスクリプトを使用していますが、スクリプトの結果がペアではなく単一の文字列であるため、問題が発生します。お気に入り:

GNU parallelにはたくさんのトリックがあるようですが、セパレーターの周りでテキストを分割するためのトリックがあるのではないかと思います:

簡単な回避策は、prog で引数を手動で分割することですが、それが可能かどうか知りたいですGNU parallel

0 投票する
4 に答える
13361 参照

linux - GNU 並列での「find」と「ls」

GNU parallel多くのファイルをWebサーバーに投稿するために使用しようとしています。私のディレクトリには、いくつかのファイルがあります。

そして、私は次のようなシェルスクリプトを持っています:

スクリプトには他にもいくつかありますが、これは最も単純な例です。次のコマンドを実行しようとしました。

これは、GNU parallelページがディレクトリ内のファイルを操作する「通常の」方法として示しているものです。これはファイルの名前をスクリプトに渡すようですが、curl は渡されたデータ ファイルを読み込めないと文句を言います。

それは正常に動作します。引数をスクリプトに渡す方法lsとの間に違いはありますか? findまたは、そのスクリプトで何か追加する必要がありますか?

0 投票する
1 に答える
162 参照

shell - ユーザーがスクリプトを実行するときにユーザーのシェルを無視する方法

ユーザーごとにスクリプトを実行する必要があります。そのユーザーのシェルがファイル内に変更され/script/script1ました。/etc/passwdスクリプトを実行すると、SHELLが/ script/script1として取得されます。

0 投票する
2 に答える
1600 参照

ssh - GNU 並列を使用しているときに、新しい発信 ssh 接続の速度を制限するにはどうすればよいですか?

背景: OpenSSHのデフォルト設定MaxStartupsは 10:30:60 で、ほとんどの Linux ディストリビューションはこのデフォルトを維持しています。つまり、sshd が新しい着信接続の 30% をドロップし始める前に、キーを交換して認証する ssh 接続は一度に 10 個しか存在できず、認証されていない接続が 60 個になると、すべての新しい接続がドロップされます。接続がセットアップされると、この制限に対してカウントされません。たとえば、この質問を参照してください。

問題: GNU 並列を使用して、多数のバックエンド ノードで大量のデータ処理を実行しています。単一のフロントエンド マシンからこれらのノードにアクセスする必要があり、ssh:s を使用しProxyCommandてバックエンドに透過的にアクセスするためのトンネルを設定しています。ただし、フロントエンドが一度に認証できる数よりも多くの ssh 接続が並列に生成されているため、認証されていない接続の最大制限に常に達しています。

ControlMaster autoフロントエンドへの単一の接続を再利用しようとしましたが、うまくいきませんでした。

質問:新しい ssh 接続が開かれる速度を制限するにはどうすればよいですか? 特定の時間に開いている認証されていない接続の数を制御し、別の接続が認証されるまで新しい接続を遅らせることはできますか?

0 投票する
1 に答える
2987 参照

environment-variables - GNUParallelで環境変数を継承する

GNUParallelで環境変数を継承したいと思います。いくつかの「スクリプト」(実際には、GNU Parallelで使用するために設計されたコマンドのリスト)があり、それぞれが異なる外部プログラムを呼び出す数百行あります。ただし、これらの外部プログラム(私の制御不能)では、実行する前にいくつかの環境変数を設定する必要があります。

それらをローカルに設定/エクスポートすることは役に立たないようで、この情報をプロファイルに追加する方法がわかりません。

ドキュメントにはこれが何も含まれていないようで、同様のSOページでは、コマンドをスクリプトでラップすることを提案しています。ただし、これはエレガントでない解決策のようです。現在の環境をエクスポートする方法、またはスクリプトで必要な変数を指定する方法はありますか?

ありがとう!

0 投票する
1 に答える
266 参照

shell - GNU 並列処理

を使用して実行したい次のスクリプトがありますGNU parallel。これは、実行時に必要な for ループですn。を使用してこれを行うにはどうすればよいGNU parallelですか?

0 投票する
1 に答える
457 参照

bash - bash -c とグロビングの使用

bash シェルから実行すると正常に動作するコマンドで gnu-parallel を実行していますが、-c フラグを使用して bash で並列実行するとエラーが返されます。これは、私が使用している特別なグロビング表現に関係していると思います。

これで正常に戻ります。

フラグを有効にすると、コマンドは失敗します

マニュアルでは、bash が文字列の引数を読み取るために -c を呼び出すことのみを指定していますが、何か不足していますか?

編集: gnu-parallel 文字列から実行するにはこれが必要なので、最終的な結果のコマンドは /bin/bash -c "Some Command" で実行できる必要があることを追加する必要があります。

0 投票する
2 に答える
1876 参照

linux - GNU 並列負荷分散

クラスタ上で CPU を集中的に使用する並列ジョブを実行する方法を見つけようとしています。私の目標は、コアごとに 1 つのジョブをスケジュールすることです。これにより、スケジュールが設定されると、すべてのジョブが 100% の CPU 使用率になることが期待されます。これは、これまでに思いついたものです。

ファイル build_sshlogin.sh

このスクリプトは、GNU 並列で次のように使用されます。

この手法の問題点は、誰かがクラスター内のサーバーで CPU を集中的に使用する別のジョブを開始した場合、CPU 使用率を確認せずに、スクリプトが使用中のコアにジョブをスケジュールしてしまうことです。さらに、最初のジョブが終了するまでに CPU 使用率が変化した場合、新しく解放されたコアは、残りのジョブの GNU 並列によるスケジューリングに含まれません。

したがって、私の質問は次のとおりです。各ジョブをスケジュールする前に、GNU に並列に空きコア/サーバーを再計算させる方法はありますか? 問題を解決するための他の提案は大歓迎です。

注: 私のクラスターでは、すべてのコアの周波数が同じです。誰かが異なる周波数を説明するために一般化できる場合は、それも歓迎します.

0 投票する
2 に答える
439 参照

gnu-parallel - bashgnu並列argfile構文

GNU parallelを発見したばかりですが、単純な並列タスクの実行に問題があります。複数の値で実行しているシミュレーションがあり、コマンドライン引数を使用して並列に実行するように分割したいと思います。ドキュメントから、コマンドをフィードしたいさまざまな引数parallel mycommand :::: myargfileを含むを並行して実行できるようです。myargfileただし、argsをリストする方法についての情報は見当たらず、次のように機能すると想定しましたmyargfile

mycommand --pmin 0 --pmax 0.1問題なく実行されます。しかし、私が実行するparallel mycommand :::: myargfileと、error: unknown option pmin 0 --pmax 0.1(キャッチされてデコードされた礼儀ブーストプログラムオプション)が得られます。 parallel echo :::: myargfile引数を正しく出力します。これは、プログラムが読み取れず、標準のbashスクリプトのようにフィードされない文字列にラップされているかのようです。

どうしたの?どうすればこれを機能させることができますか?

0 投票する
1 に答える
781 参照

parallel-processing - 2 つの引数を持つ GNU 並列

$hosts_string次の形式で呼び出される変数を持つ C シェル スクリプトがあります。

$chrs_string次の形式の変数もあります。

$inputFnまた、処理する必要があるテキスト ファイルを指定するという変数もあります。

私がやりたいのは、入力ファイル名の引数として、各ホストが のdoStuff各メンバーに対して呼び出されるコマンド$chrs_stringを実行することです。$inputFn

私は次のことを試しました:

これが機能する場合、コマンドからの出力としてchr1ファイルが作成されるはずですが、何も得られません。Parallel はエラーを発行せずに完了しますが、出力はありません。chrMdoStuff

を使わなくてもコマンド自体は正常に動作するparallelので、コマンドではなく、 に引数を指定する方法ですparallel

これを確認するために、次のことを試しました。

これが機能し、(たとえば)である場合 (たとえば)次の文字列を含むというファイルを取得します。$inputFn/foo/barchr1

と の各組み合わせを正しくparallelループするようにコマンドを調整するにはどうすればよいですか?$chrs_string$inputFn