[JM:01390] Re: [POST: DP] GUN_findutils (xargs.1) の更新

アーカイブの一覧に戻る

長南洋一 cyoic****@maple*****
2018年 2月 17日 (土) 10:48:19 JST


長南です。

xargs についても質問がいくつかあります。

○ -P max-procs オプション:

     Please  note  that  it is up to the called processes to properly
     manage parallel access to shared  resources.   For  example,  if
     more  than one of them tries to print to stdout, the ouptut will
     be produced in an indeterminate order (and very likely mixed up)
     unless  the  processes  collaborate in some way to prevent this.
     Using some kind of locking scheme is one  way  to  prevent  such
     problems.   In  general, using a locking scheme will help ensure
     correct output but reduce performance.  If  you  don't  want  to
     tolerate  the  performance  difference,  simply arrange for each
     process to produce a separate output file (or otherwise use
     separate resources).

     注意していただきたいが、共有リソースに対する並列アクセスをきちんと
     管理するのは、呼び出されるプロセス側の問題だ。たとえば、複数の
     プロセスが標準出力に書き出そうとした場合、出力は不定の順番で生成
     されることになる (だから,混じり合ってしまう可能性が高い)。そう
     ならないためには、プロセス同士が何らかの形で協力し合う必要があるわけだ。
     ロッキング・スキームのようなものを使うのは、そうした問題を避けるための
     一方法である。ただ、一般に、ロッキング・スキームの使用は、適切な出力を
     保証してはくれるものの、パフォーマンスを低下させることになる。
     パフォーマンスが違ってくることを受け入れたくないならば、各プロセスが
     それぞれ別の出力ファイルを作るように (あるいは、別のリソースを使うように)
     工夫するのが単純ですっきりしている。

   scheme という言葉が私にはうまく訳せません。と言うより、scheme という
   概念がわからない。そんなわけで、「ロッキング・スキーム」とカタカナですが、
   これで通じるでしょうか。何か適当な日本語がないものでしょうか (ここでは、
   「仕組み」ぐらいかなと思いますけれど)。

   それから、"performance difference" ですが、具体的には、すぐ前で
   言っている「動作が遅くなること」と考えてよいのでしょうね。
   別の解釈があるでしょうか。

○ --process-slot-var=name:

     Set the environment variable name to a unique value in each
     running child process. Values are reused once child processes
     exit. This can be used in a rudimentary load distribution
     scheme,for example.

     複数の子プロセスを同時実行しているとき、その各子プロセスで環境変数 name に
     ユニークな値をセットする。値は、子プロセスが終了すると、再利用される。
     この機能は、たとえば、初歩的な負荷分散スキームで利用できる。

   「複数の子プロセスを同時実行しているとき」は、each running ... の
   補足・展開訳です。「初歩的な負荷分散スキームで利用できる」というのは、
   具体的にどういうことで、どうやるんでしょうか。

○ BUGS:
     The -L option is incompatible with the -I option, but perhaps
     should not be.

     -L  オプションと -I オプションを組み合わせても、うまく行かない。組み合
     わせて使えた方がよいのかもしれないが。

   これは前回の翻訳でも悩みました。この incompatible は、「互換性がない」
   ではなく、「両立しない」だと思います。そこまではよいとして、
   "should not be" は "should not be incompatible" なのか、
   "should not be compatible" なのか。文法的には前者のほうが自然だ
   と思うので、"shoud be compatible" の意味に訳したのですが、こういう
   二重否定はまわりくどく、不自然な感じがしますから、後者と取れないこともありません。
   それならば、「組み合わせて使えないのが妥当なのかもしれないが」ぐらいになります。

   それから、ここでは訳注を復活するつもりです。つぎのような。

     [訳注]: -I オプションの説明にあるように、-I replace-str を指定すると、
            -L 1 が自動的に設定される。だから、ここで言っているのは、現状では
	    -L 2 や -L 3 を -I と一緒に使っても、期待する結果は得られない
            ということだろう。

-- 
長南洋一




linuxjm-discuss メーリングリストの案内
アーカイブの一覧に戻る