1月第4週の振り返り

1月第4週(1/20-26)

並列プログラミング

取り組んでいるのはPEごとにメモリが分散している&リモートでバッチ実行されるプログラムであり、デバッガで変数の動きを確認することができない。printfデバッグはその時の当該PEの状態はわかるものの通信が正しく行われているかは確認できない。

そこで4x4行列を2PE/4PEで解いた際の処理を頭で模倣して、ループごとに全PEの状態を紙に書きだす机上デバッグをしたところ、計算機がどのようにタスクを処理しているのかが理解でき、ようやくLU分解法全体の並列処理が完成したと考えられるようになった。

断言できないのは、肝心のOakforest-PACSが現在月末処理中でジョブを実行してくれないからである。とはいえもはや無限ループに悩まされてはおらず、またLU分解部分までは今週頭の稼働期間中に正しい結果が出ていることが確認できたので恐らく正しかろうと思われ、あとはLc=b, Ux=cの代入だけなのでレポートとして出せそうである。

机上デバッグの結果、非人間的な処理方法をhuman-readableな概念で記述できるようになったので、コードそのものは公開できないにせよコメントと抽象化した処理内容を学習の成果として公開する予定である。