【レポート】
BSD Conference 2006 Canadaは、前日までの空模様とはちがって雨の中での開催となった。前日までは開発者中心のサミットだったが、12日(東部標準時)からはBSDCanである。選考に通過した選りすぐりの論文が発表がおこなわれる。
|
|
雨の降りしきる Ottawa, Canada |
降りしきる雨もまったく関係ないかのように、BSDCanの会場は関係者の熱気で包まれていた。参加者に開発者以外も多いためか、開会式はジョークも飛び交う和やかな雰囲気である。ラウンジで歓談している関係者も多い。初見の方が多いとはいえ、お互いの名前はメーリングリストやIRC、Web媒体を通じてよく知っている。初めて合う相手なのに、案外自分の名前が相手にも知られているというのはなんとも妙な気分だ。
サロンのような雰囲気のあるBSDCanだが、一度発表がはじまるとなれば聴講者は真剣そのものだ。ここから多くの知識を仕入れていこうと、発表がはじまったとたんに顔色がかわる。ここにいる方々はみなが第一線で活躍している一級のFreeBSDユーザたちである。
以降では、BSDCan 2006のうち、とくに興味深いと感じたセッションをとりあげて紹介する。どれも今後のFreeBSD開発において重要な技術となっていく可能性がある。トラックが3並列で進行しているため聴講できないセッションが多かったが、とくにFreeBSDのコアに関与してくる技術や重要度の高いとおもわれるものを中心に選択したつもりだ。今後の方向性を感じていただければ幸いだ。
|
|
BSDCan 2006 開会式 |
FreeBSDデベロッパであるJason Evans氏からは、同氏が開発した新しいmalloc(3)実装であるjemallocに関する技術発表がおこなわれた。本セッションの注目度は高く、多くのFreeBSDデベロッパが聴講にきていた。
|
|
|
FreeBSDデベロッパ, Jason Evans氏 |
FreeBSDデベロッパ, Poul-Henning Kamp氏 – 自分の開発したmalloc(3)実装の性能評価を最前列で興味深く聞き入っている |
FreeBSDの従来のmalloc(3)実装は、マルチプロセッサシステムにおいてはコンテンション、キャッシュスライシング、キャッシュラインシェアリングといった点において性能がよくないことがある。これを改善するべくJason Evans氏によって開発された新しいmalloc(3)がjamallocである。すでにFreeBSD 7-currentには統合されている。
malloc(3)はヒープにおいてメモリを確保する関数であり、OSの性能そのものに直接を影響をあたえる要素のひとつとなる。また、malloc(3)は基本的なAPIである。上位レベルのAPIと比べた場合、つぎのような問題がある。
こうした問題を部分的に解決する方法はある。バッファオーバーフローのキャッチ、malloc_usable_size()の使用など。しかし、方法論としての統一性がなく、繁雑とした状況になっている。
こうした問題を解決するべくすでにいくかの実装が存在している。代表的なものは次のとおり。
それぞれのmalloc(3)実装にはそれぞれの特徴があり、利点と欠点がある。まずはそれぞれに評価をおこない、次の方向性をとらえることが重要になってくる。これまでFreeBSDで使ってきたmalloc(3)はPoul-Henning Kamp氏が開発したphkmallocともいえるものだ。同氏はFreeBSDデベロッパの顔ともいえる存在であり、FreeBSDテクノロジの重要な部分の実装を手がけている。
jemallocでは、phkmallocが抱えている問題を解決するべく、マルチプロセッサ用に設計されたmalloc(3)実装から技術を借用し、いいとこどりにしたようなモデルになっている。
mutexをベースにした実装に変更した場合、コンテンションの発生ということがシステム性能に対して影響を及ぼすようになる。コンテンションとはロック部分で待ちが発生することだ。mutexを使った実装に移行したあとは、できるだけロック部分で待ちが発生しないようにロック順序の変更やロック単位の変更などをおこなってチューニングをする必要がある。
phkmallocはもともとシングルプロセッサシステムが主流だったときに開発された実装であり、マルチプロセッサやmutex実装時における性能は考慮されていない。マルチプロセッサ時代のmalloc(3)への改良が必要になったわけである。
dlmalloc, phkmalloc, jemallocを比較したベンチマークが示された。
ベンチマークの結果からは、jemallocではフラグメントが発生しすぎるという問題が明らかになったが、そもそもそのベンチマークにあまり意味がなかったかもしれないという意見も述べられていた。このベンチマークの目的は論理的な推論と実際の結果が同じになるかどうかを調べることにあったが、不可解な点もあった。malloc(3)は限定されたベンチマークでは実際のシステム性能を測定することができない。キャッシュシステムなどほかのサブシステムに影響される点も多く、フェアな比較ができない。
また、realloc(3)を繰り返すような効率の悪い実装による悪影響がそのままベンチマークに表われている可能性もあり、このベンチマークからは詳しいことがわからないという意見が述べられた。
マルチプロセッサシステムにおけて性能を発揮するには、マルチプロセッサシステムの特性に対応したmalloc(3)実装が必要だ。jemalloはすでにFreeBSD 7-currentに採用されており、今後の展開によってはFreeBSD 6系にバックマージされる可能性もある。今後も評価と改善がおこなれる部分といえる。
| 太陽光発電の国内出荷が好調、累計100万件を突破 [14:39 5/24] |
| 4人が同時に違う色で書き込むことができる「インタラクティブ・プラズマディスプレイ」 [13:20 5/24] |
| 【レポート】利用頻度に応じて最適配置! ETERNUSの自動階層制御 - 富士通フォーラム2012 [10:43 5/24] |
| 近畿大学、セシウムを99%以上取り除く「ゼオCa漆喰」を開発 [10:10 5/24] |
| 【連載】"ものづくり"の現場から - 広がるMATLAB/Simulinkの世界 第2回 アイデアを即座に形に - 新たなセキュリティ技術の開発を目指すNICT [10:00 5/24] |
|
マツダ、低排出ガス車の認定を受けた商用車「タイタン」を発売 [16:17 5/24] ライフ |
|
米国にとってアジア最重要国は? 一般の米国民は"日本"が1位、有識者は"中国" [16:17 5/24] ライフ |
|
【連載】「一太郎2012 承」で電子書籍 第1回 一太郎2012がサポートするEPUB 3.0とは [16:14 5/24] パソコン |
|
Salesforce、企業のリアルタイムコミュニケーションを実現する2つの新製品 [16:09 5/24] 経営 |
|
【インタビュー】映画『メン・イン・ブラック3』のソネンフェルド監督が語る撮影秘話 [16:00 5/24] クリエイティブ |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。