インテル Parallel Studioを使って並列化プログラミングを試してみた(codeZine)より。
ん。。。また、違和感のある記事。。。
しかしここ数年の間に大きな変化がありました。それはCPUのマルチコア化です。2006年にPentium 4シングルコアの製造が中止され、Intel Core 2が発売され始めた時、筆者は非常に衝撃を受けました。なぜならば、それは従来の開発技法が通用しないことを意味するからです。
記事を通して、従来のどのような開発技法が通用しなくなるのか、説明がない。まぁ、それは、次の説明から、推し量ることは出来る。
もう単一CPUの時代は終わり、CPUのマルチコア化が進んで行きますので、開発者もそれに伴って並列プログラミングをする必要性が生じました。
今までシングルコアのCPUが主流だったからといって、並列プログラミングがまったくなかったわけではありません。今までもマルチスレッドプログラミングを行っていた人も多いと思います。この手法でもコア数が2ならば十分に対応可能でしょう。
しかし、コア数が4・8・16・32・64・……と増えるにつれてこの方法では対処できなくなります。また、コア数を固定したプログラミング方法では、エンドユーザーがCPUを買い換えた時パフォーマンスがアップしません。エンドユーザーは新しいCPUを買えばシステムの性能がよくなると考えていますので、これではシステム不備だと看做されてしまうでしょう。今後コア数が増加することは目に見えていますので、新しい技術が必要なのは明白です。
なんだか違和感。
マルチ コア化が進んできたから、並列プログラミングをする必要が生じるのだろうか。そんなことはない。シングル コアであっても、並列プログラミングをする必要はあったし、そのメリットもあった。業務システムを作る上で、一番スピードを出しにくいところは、ユーザーが入力を行うところです。人が操作するスピードは、機械がどんなに速くなろうと、そうそう変わりません。その為、ユーザーが入力している間に何か処理をする、ということは、スピードアップについてとても有効です。はい、ここに並列プログラミングをする理由があります。
同じように、ネットワーク アクセス、ディスク アクセスなどの I/O が絡むところは、他の処理を並列に行う事でスピードを上げることが出来ます。CPU のスピードに比べて、メモリやディスク、人が処理をするスピードは、十分に遅いからです。
次、コア数。コア数が3以上と3未満とで、マルチ スレッド プログラミングに違いがあるのか?無いと思います。英語のウィキペディアから引用します。
Sun Microsystems(Wikipedia)より:
In the early 1990s the company began to extend its product line to include large-scale symmetric multiprocessing servers, starting with the four-processor SPARCserver 600MP. This was followed by the 8-processor SPARCserver 1000 and 20-processor SPARCcenter 2000, which were based on work done in conjunction with Xerox PARC. In the late 1990s this transformation was accelerated by the acquisition of Cray Business Systems Division from Silicon Graphics.[35] Their 32-bit, 64-processor Cray Superserver 6400, related to the SPARCcenter, led to the 64-bit Sun Enterprise 10000 high-end server (otherwise known as Starfire). More recently, Sun has also ventured into the blade server (high density rack-mounted systems) market.
Windows NT 4.0 の頃、マザーボードに2つの CPU を付けることが出来るものがありました。それと、ひとつの CPU でコアがふたつある状態。OS にとっては違うかもしれませんが、OS の上で動くアプリケーションにとって、何が違うのでしょう。
インテルの CPU は2つしか積むことが出来ませんでしたが、サン マイクロシステムズの CPU は、1990年代の初めでも4つのプロセッサーを同時に搭載可能でした。その後、8プロセッサー、20プロセッサーに対応したハードウェアが発表されています。私も、1997年頃に4プロセッサーの製品を使用したことがあります。それまでの開発手法と、その時の開発手法、今の開発手法。特に意識して変えてはいません。「通用しなくなる」というのは、納得できない。
投稿日時 : 2009年9月18日 23:35