shared memory segment
天気:晴れ後曇り 住んでるとこでは雨
久しぶりの更新にも関わらず、今回はわし専用のmemoじゃ。
ネタがないのぅ。いや、あるにはあるんじゃがの。記事にしようかと思うと、時間がない。
後日にしようと思うと忘れる。まぁ、そんなもんじゃろ。
注意:この先に書くことはわし専用のmemoじゃ。真似したり試すなら全て自己責任でよろしこ。
RedHatは公式サイトで、わしが今から書くことをした場合は「サポートOSの対象外にします」と明言しとるんで、サポート受けとる人はしないように。やるなら自己責任で。
PCクラスターにおいて並列処理を行う時に、昔はえかったんじゃが、最近は大規模プロセス数とか、memoryを大量に使用するようなものが増えた。
そんな時たまに
$ mpid: Cannot create shared memory segment of XXXXXXX bytes
といったmessageをMPIが吐き出す事がある。(XXXXXXXは数値)
これはshared memoryの上限値がプログラムを実行するのに足らないというメッセージ。
OS上での初期値は64bitOSじゃと、いくらじゃっけ?
手元にあるCentOS4.5(32bit)じゃと8388608kbyteじゃな。まぁ、確認するにはroot権限で
$ ipcs -l
を実行する表示される。
で、これを解決するにはシステムに設定されているshared memoryのmax値を変更してやればええんじゃが、これをRedHatはするなと言っとる。(上にも書いたが公式で”禁止”と書かれておる)
実際にシステムの設定値をいじるのはシクった場合はOSがお釈迦にもなりかねんので、専門家以外は手を出すべきではないし、専門家でも慎重にすべきじゃな。
shared memoryのmax値を変更するには以下を実行する。
$ /sbin/sysctl -w kernel.shmmax=XXXXXXX
これで変更完了。ただし、この変更は一時的な設定である為に、rebootすると元の値に戻る。
再起動後も設定を継続したいのなら、システムファイルに書き込んでしまえばええんじゃが、システムの値をいじるのは慎重にのぅ。
| 固定リンク
この記事へのコメントは終了しました。
コメント