ニュース
» 2005年04月12日 16時00分 公開

「マルチコア」「メニーコア」を視野に開発者らを支援するIntelInterview(2/2 ページ)

[本田雅一,ITmedia]
前のページへ 1|2       

 ソフトウェア開発者たちは自分自身で選択権を持っています。まず、並列化プログラミングが難しいのであれば、シングルスレッドでも十分という考え方があります。例えば、最新バージョンのOracleが、DBMSでマルチスレッドを使いこなしてくれるのなら、それを積極的に活用するようシステム設計を行えばいいという考え方もあります。

 一方、先ごろ米国で行われたIntel Developer Forumで取り上げたテキストマイニングのように、並列プログラミングを積極活用することで実現できるアプリケーションもあります。こうしたマルチスレッドにどっぷり浸かるプログラミングは、例えば、アドビシステムズのように画像処理ツールのベンダーやゲームベンダーなど求めているものでしょう。

ITmedia 一般的なビジネスロジックを考える上では、さほど並列化は意識しなくていいのでしょうか?

カック それはケースバイケースですし、並列化はさほど難しいものではなくなってきています。あらゆるアプリケーションで、並列プログラミングがカンタンに行えるようになりつつあるからです。例えば、現在使われているOpenMPのような仕組みを超えて、新しい言語なども出てくると思います。

 また、Intelはパラレルコンテナという技術にも取り組んでいます。パラレルコンテナとは、C++のデータ構造オブジェクトに何らかの操作を行う際、配列やツリー構造データへのアクセスでデータの矛盾が発生しないようにする仕組みです。同一の構造体に対して複数のスレッドが同時にアクセスする場合の問題を、プログラマーからは見えないところで解決しますから、開発者は並列プログラミングの手間を削減できます。

2015年 メニーコアの時代に向けて

ITmedia Intelは今後10年をかけて、「メニーコア」へと進むと話しています。数十まではともかく、現状のプログラミングモデルで、メニーコア時代にも対応できるだけのスケーラビリティーが得られるものでしょうか?

カック それはまさに今、私が抱えている問題ですね。並列化への対応には3つのレベルがあると考えます。

 先ず、プログラムソース内でどのように並列化を指示するのか? という部分。ここではスレッドビルディングブロックやパラレルコンテナが役立つでしょう。また、きちんとパラレル化されているかをチェックする仕組みも必要です。新しいプロシージャコールをOpenMPに加えていくなど、さまざまな新しい技術に注目して実装して行っています。

 次に、開発されたプログラムのチェックです。きちんとスレッドが並列に動作するか? 矛盾は発生しないか? などをプログラミング後にチェックする仕組みですが、これはデュアルコアでもメニーコアでも基本は変わりません。

 最後はライブラリレベルでの対応です。IntelはIPP(Intel Pewrformance Premitive)やIntel Math Libraryといった高性能の機能モジュールを提供しています。これらはマルチスレッド化を意識し、マルチコア環境下でパフォーマンスを高めるようにプログラムされていますから、積極的にこうしたライブラリを使う方がパフォーマンスは上がります。例えば、フーリエ変換やデータマイニングなどの基本的な演算処理のパラレル化はIntelに任せてください。

 今後、5年ぐらいの間にIntelが提供するライブラリを充実させていき、最終的にはアルゴリズムを選択すると効率的に並列化されたプログラムの骨格が出来上がるといったプログラミング環境にしていきます。

ITmedia いずれも既存のアプローチの延長線上にあるものですが、幾つぐらいのコアまで、そのプログラミングモデルで対応できると考えていますか?

カック 2015年の段階でコアの数は100以上と話しています。100程度であれば、頭の中で十分に想像できる範囲ですよね。また、アプリケーションは十分に100コアのプロセッサを活用できると思います。

 というのも、データのサイズが圧倒的に増加しているためです。例えば、現在のPCではデジタルカメラで撮影した静止画を軽々と処理できますが、それと同じぐらいの感覚で映画1本をまるまる扱うようになるでしょう。Googleだって、将来はもっとすべての世界中の本が見通せるようになっているかもしれません。データ量の増大に対して並列プログラミングは有効に機能すると思います。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ