"The free lunch is over."
コンピュータの歴史は新しい時代に入った。以前はCPUの周波数の向上に伴い、ソフトウェアは何もしなくても速くなった。2000年当時、お世話になっていたSEの方に「性能が足りないのでプログラムの最適化をしたほうがいい」と提案したところ、「時が解決してくれます」と答えられたのを鮮明に覚えている。ところが2005年あたりから周波数の向上は停滞し、何かしない限り、ソフトウェアは速くならない時代となった。Free lunchは終わったのだ。プロセッサベンダは周波数の向上を諦め、1プロセッサあたりのコア数を増やす事で新しい時代を切り開こうとしている。
ここ数年、さまざまなマルチコアが生まれ、さまざまな開発手法が考案された。プログラマは、プロセッサのアーキテクチャごとに新しい言語仕様を覚え、プロセッサと格闘してきた。そんな中、当然のごとく、さまざまなアーキテクチャで共通に使える言語仕様が望まれ、多くの議論が重ねられて、ようやくオープンな共通仕様が登場した。その名は「OpenCL」。OpenGLで有名な、Khronosグループが音頭をとり、多くのベンダが参加してマルチコア時代の共通フレームワークを作ろうとしている。
この新しい仕様はスタンダードになり得るのか?本当にマルチコアの性能を生かすことができるのだろうか? プログラマの負担を減らす事ができるのか?異なるアーキテクチャ間で、互換性のあるプログラムは作れるのだろうか?これらの質問の答えが、YesになるのかNoになるのかは、これからの努力にかかっている。多くのアーキテクチャで共通に使えるフレームワークをデザインし、多くのツールやライブラリが生まれ、多くのプログラマに受け入れられなければならない。これは多くのプログラミング言語が生まれては消えていく事実を見ても、決して容易なことではない。しかし、確かなのはこの新しい時代にマルチコアに合った新しい開発手法のスタンダードが必要だということ。そしてそのスタンダードに今一番近いポジションにあるのは、間違いなく「OpenCL」であろうということ。
本書を執筆している株式会社フィックスターズは、2004年からソニー、東芝、IBMによって開発され、PLAYSTATION 3にも搭載されたマルチコアプロセッサ「Cell Broadband Engine」のソフトウェア開発に注力し、そのイノベーティブな思想に魅了され、難しいといわれているハードウェアデザインと格闘し、すばらしい性能が出るプロセッサのインプリメンテーションに驚嘆してきた。また、目ざましく成長を遂げるGPUの世界においても、プログラムの並列化、最適化に取り組み、数百を超える演算コアを効果的に扱った際に達成できる性能に歓喜した。一方、多くのクライアントの皆さんから互換性の問題を指摘され、OpenCLのようなオープンなフレームワークを心待ちにしていた。そう、「OpenCL」はニーズファーストのフレームワークなのである。
OpenCLはまだ生まれたばかりの技術で、すべてのニーズに応えていないかもしれない。しかし、本書の読者がOpenCLの技術を学び、活用し、OpenCLのさらなる仕様策定を推し進め、新しいマルチコア時代のソフトウェア開発の一躍を担っていただければ、筆者一同この上ない喜びである。
2010年1月
株式会社フィックスターズ 代表取締役社長/CEO
三木 聡
著者について
【株式会社フィックスターズ】
株式会社フィックスターズは、マルチコアプロセッサの性能を引き出すためのプログラム並列化、最適化を専門に行っているソフトウェアカンパニーです。主に、ファイナンス、ヘルスケア、HPC、デジタルメディアなど高いコンピューティングパワーを必要とする分野向けに、Cell/B.E.やGPUといったマルチコアプロセッサを活用したトータルソリューションを提供しています。同時に、新しいマルチコア技術を普及させるため、プログラマーの育成や、最新技術の情報発信、セミナー活動等にも力を入れています。
【土山 了士(つちやま りょうじ)】
フィックスターズでOpenCLチームのリーダーとしてコンパイラ開発を行うほか、金融HPC向けソフトウェアの開発をしています。小学生のころからコンピュータ(PC-8001)に触れ、大学で並列分散処理を修めて以降、わがままなCPUやDSPがたくさん並ぶシステムにいうことを聞かせる仕事を続けてきました。最近はx86系CPU搭載サーバを多数利用する分散システムに関わりつつ、Cell/B.E.、GPUを活用した高速化を行うなど、並列化できるところならばなんでも手を出しています。
【中村 孝史(なかむら たかし)】
フィックスターズでOpenCLコンパイラ開発を行っています。チップのデータシートやマニュアルを読むのを生きがいとしており、特に、レイテンシ/スループット一覧や、メモリマップドレジスタ一覧を好んでいます。最強のコンパイラを作るには並列処理を知らないといけないと思い立ち、フィックスターズに来たものの、未だに最強コンパイラへの道は見つからず。最近は並列よりもメモリ、メモリよりもI/Oのほうが重要だと主張しはじめるなど若干脱線気味です。
【飯塚 拓郎(いいづか たくろう)】
フィックスターズで OpenCLコンパイラ開発を行っています。GPUの暴れ馬的性能に魅了されて早二年になります。初めて触ったコンピュータはMacintosh Classicでしたが、作者不明の怪しげなインベーダーゲームにはまった記憶しかなく、あのときにQuickDrawの妙味などに気付いていればもっと道を踏み外した人生になったかもと思うと残念でなりません。改めて道をみ外すべく、『GPUの創り方』という本を書くのが密かな野望。
【浅原 明広(あさはら あきひろ)】
フィックスターズでマルチコアプロセッサ向けミドルウェアやOS製品の開発・販売を統括しています。セミナー講師や、技術解説記事の執筆などを多数行っていて、いつもなにかの締切に追われています。実は専門は宇宙物理学で、研究者時代は巨大望遠鏡のデータ収集システムの構築(Linux kernel 2.2ベース!)や、天体γ線のシミュレーションソフトウェア開発(FORTRAN!)を行っていました。今でもチャンスがあれば天文関係の仕事を業務でできないかと画策しています。
【三木 聡(みき さとし)】
2002年にフィックスターズを設立し、代表取締役社長/CEOを務めています。新しいマルチコア時代には、ソフトウェアの作り方が根本的に変わるだろうと2004年に思い立ち、それ以来、マルチコアベースのソフトウェアの研究、開発に会社の未来を見い出し、普及、啓蒙活動に励んでいます。もともとは文系出身でしたが、25歳でプログラマデビューし、情報工学の博士号取得にもチャレンジしています。
About this Title
■■■ 本書刊行によせて ■■■
OpenCLは、かつてないほど幅広い分野のユーザに、複雑なマルチプロセッサ・システムのプログラミング・パワーをもたらす、注目すべき新しいオープン・スタンダードです。
業界スタンダードは、利用者や業界の理解を得られない限り、そのテクノロジーの潜在力や将来性について意味を持ちません。そのため、Khronos Group は、OpenCLの仕様策定のみならず、カンファレンスやプロモーション活動を通して、さまざまな分野に広がるOpenCLエコシステムの育成を、全面的に支援しています。
フィックスターズは、国内初のOpenCL セミナーやチュートリアルを開催しており、最新のOpenCL関連教材を作成するのにふさわしい、高度な知識と経験を有しています。私は、これからOpenCLを学び、そのパワーや可能性を活用したいと考えている多くの皆さまに、この本を自信を持って推薦します。
Neil Trevett(Khronos Groupプレジデント/OpenCLワーキンググループ議長)