見出し画像

[2018年10月~2019年12月]Slurmというジョブスケジューラ

2位じゃだめなんですか?の「京」のアルバイトプロジェクト

※これとこれ
[2017年12月-2018年2月]Clangは、あぁ名前は知っている。LLVMは、そういうのあるね。 で挑む
https://note.com/shino_project/n/n4386ef505715
[2018年5月]OpenJDKは広いなぁ♪大きいなぁ♪
https://note.com/shino_project/n/n14d2145136b8

には、続きがありまして

富岳をリリースするためにジョブスケジューラアプリをいろいろ検証しないといけないそうで、
検証するために本採用のジョブスケジューラアプリとは、別にOSS(オープンソースソフトウェア)を使って検証プログラムを作って検証するとのこと。
で、それを作ってくれないかというアルバイト。
検証内容については、ちょっとここには書けませんが、
OSSは、Slurm を使うということでした。

https://slurm.schedmd.com/documentation.html

スーパーコンピュータ向けのジョブスケジューラアプリです。
当然、私は、初めてこのアプリの存在を知りましたが、規模の大きなOSSです。

検証内容の要件に従って改造するのですが、
・動作環境を作らなければならない
・どうやったら動作するか理解しなければならない
・動作確認をしなければならない
・要件を満たすためにどこを改造するか調査しなければならない
・改造しなければならない
・検証内容をテストしなければならない

まぁ、これだけでも気が遠くなりそうなのですが、
ドキュメントは全て英語です。
(この英語ドキュメントに日本語訳を付けれないかなぁと思いアプリを作ったのですが、それは別途書きます)

2か月くらいは、ドキュメントの理解と動作環境を作って動作させるまでに要しました。
ここからが本番で、要件を満たすロジックをどこに入れるか?
Slurmは、ほぼC言語でできています。
なので、ロジックを理解するには、C言語のソースを読むことになります。
ロジックの理解は?
ドキュメント(英語)に大雑把に書かれてはいますが、基本的に利用者向けのドキュメントなので書かれていないのと同じです。

ということで、ソースの構成からどんな実行モジュールが作成されるか調査します(主要な実行モジュールだけで10本くらいあります)。
実行モジュールは、大体デーモンでデーモン間で通信しています。

というのを
もっと理解するために
ソースコードに書かれているコメント(もちろん英語、時々フレンチ、時々チャイニーズ)も日本語に訳しました。
(これもアプリを作って日本語訳を付けました、これも別途書きます)

さぁ、改造のスタートラインに着いた感じですが、
ゴールまでの距離が分かりません。
42kmくらい走ればゴールできるのか?鉄人レースみたいな距離を走らなければならないのか?

これも平日の日中以外にやるアルバイトプロジェクトなので全集中で取り組めません。

で、続く

この記事が気に入ったらサポートをしてみませんか?