[過去ログ] くだらねえ質問はここに書き込め! Part 239 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
49(4): 2020/02/13(木)00:42 ID:hSUst/c+(1/4) AAS
科学計算用にLinuxマシンが数十台あるのですが、マシンが空いてるか空いてないかを判定するのにロードアベレージを使っています
そこでなのですが、実際の負荷をほとんどかけずに、ロードアベレージを1以上に保つ方法はありますか?予約用に意図的にロードアベレージを上げたいなと思ってまして
その上に実際の計算が走る可能性があるので、実際の負荷はかけたくないわけです
osはFedoraで、パッケージ等はインストールできない環境です
51(1): 2020/02/13(木)07:05 ID:F1a70ktv(1) AAS
>>49
管理者にtopコマンドなどで不正がバレそう・・・
69(5): 49 2020/02/15(土)01:35 ID:w4gTzI4x(1/3) AAS
本筋ではないですが、納得してもらえないと質問に回答してもらえなさそうなので、長文乙になるかもしれないけど詳細書いときますね
研究室に50台ほどLinuxマシンがつながっていて、学生と教授の10人程度で共用している(わたしは学生)。
ジョブはだいたい数時間〜数日で終わるものがほとんどで、各自空いているマシンを指定して計算をさせる。計算させる内容も人によって様々。
「空いている」マシンを把握するために、常に全マシンのロードアベレージを収集してリスト化する自作スクリプトを常駐させてる。みんなこのロードアベレージに基づいている。
たった50台のマシンかつ研究室の閉じた中での話なので、本格的なジョブスケジューラプログラムは採用していないし、することもない。
また、計算に使用するプログラムも、代々改造されて使われ続けたりしているものもある。並列化の制限からマシン1台使用→複数台使用→マシン1台...というサイクルを繰り返すようなプログラムもあり、
そのプログラムを使って計算をしていると、マシン1台を使っての計算サイクルの間は、後ほど並列計算が流れるはずのマシンは「空き」判定になってしまう。
ただこれは実際に空いているわけではなく、後ほど計算が流れるわけで、その間に他にジョブを流されると、重ねがけになって効率が低下するので、
ロードアベレージを意図的に上昇させて「予約」しておけば、他がジョブを重ねがけする可能性を減らせる。そういうプログラムorスクリプトを用意できれば、研究室全体の効率が上がるな
こういう事情で私はこんな質問をしたわけです
90(1): 49 2020/02/15(土)19:16 ID:w4gTzI4x(2/3) AAS
電車の例えがわかりやすいですね
東京発新大阪行の新幹線でたとえると、計算プログラムは、A,B,C席を座るように設定されて電車は発車します
しかし、最初はA席のみ座っていて、B,C席は新横浜から座る予定となっています。そして、依然D,E席は空いています。
そして品川で他の乗客が入ってきます。で、C席が空いてるなと認識して、C席に座ってしまうわけです。
その後新横浜でB,C席に座ろうと計算プログラムが入ってきて、そのまま座ってしまい、2人重ねの席が誕生してしまいます。D,E席は空いてますが、一旦座ってしまったら席を移ることはできずそのまま新大阪まで我慢することになります。
こんな状況になることがあるわけです。
ここで思われるのは、新横浜で入ってきた計算プログラムの方がD,E席に座ればいいという点と、予約としてB,C席を誰もいないのに確保したら、ほかの人の迷惑にならないのかという点です。
前者は、プログラムの技術的な問題です。ここで言っているプログラムは、
市販プログラムA(マシン間の並列化に対応)と、
市販プログラムB(マシン間の並列に非対応)を交互に実行させながら、データの収集と計算を行う独自プログラムC(実際はAを改造と増築して出来たもの)で、
CはMPIによる並列化に対応しています。問題はCが使用するマシンはCの起動時に指定してやる必要があり、一旦プログラムが作動するとマシンの変更は出来ないことです。
出来るように改造しろという意見はその通りですが、結構非現実的です(市販プログラムを先代が改造を重ねてできあがっているものなので・改造にかかる時間・バグ混入の恐れ)。
後者は、公共交通機関ならたしかにそうですが、研究室内の閉じた中の話で、基本的にマシンが全部埋まって順番待ちになるような事態は起きないです。
またそうだとしても、新幹線の例えに戻ると、B,C席は東京〜新横浜間は空いてこそいますが、新横浜〜新大阪間は座ることが確定しているわけです。そして他の座席はガラガラです。
91(1): 49 2020/02/15(土)19:17 ID:w4gTzI4x(3/3) AAS
この問題を一番シンプルに解決できるのが、実際の負荷を最小限にさせたロードアベレージ(LA)上昇プログラムなわけです
巡回スクリプトに予約フラグを加える(フラグを外し忘れたら?)、全員で誰がどれを使うか示し合わせる(使用/終了の報告を忘れたら?計算全部報告するの?)、
ジョブスケジューラを使う(それぞれ計算機の使い方が違う、順番待ちになることは少ない、導入・周知コスト)、これらよりもいいと考えたわけです。教授にもLA上昇ツールの話はしましたし(あったらいいかもねという意見)、ツールが出来たら研究室内で共有するつもりです
---
yes > /dev/nullとかで吊り上げられますけど、CPU使用率も100%になりますよね
やっぱりこれも1コア分パフォーマンス減りますよね?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.334s*