久々のC

研究で久しぶりにCで書かれたプログラムを読むことになった。読んだプログラムはMPICH。バージョンは1.2.6。ものすごく大きなプログラムなので、読んだといっても一部だけ。プロファイリングライブラリのログ生成部分だけ。とは言ってもココも結構な量があってまだぜんぜん理解できてないんだけど。
MPICH付属のプロファイリングライブラリ(MPE)はMPIイベントの実行や通信の発生タイミングをログに録ってくれる良いツールなんだけど、Bcastのような集団通信命令内での通信の情報はまったく取ってくれない。僕の研究ではその情報が非常に重要なので、何とかMPEを改良して情報を取ろうとコードリーディングを始めたわけ。目的はMPEで生成されるログに集団通信命令内の通信の情報も埋め込むこと。だけど、そのためには大幅な修正が必要そう。MPEのログとは別に集団通信命令のログを録る方法はわかったから、それぞれのログを独立して録って、後でマージするってのが楽な方法かなぁ。とはいっても、これも結構な作業だけど。
ああ、修論やばいなぁ。