「Windows 7」でマルチコアの問題は改善されるか--MSのもう1つの取り組み - (page 3)

文:Stephen Shankland(CNET News) 翻訳校正:川村インターナショナル2009年10月15日 07時30分

 Garvin氏は、プログラマーたちは最終的に、競争力を維持するために並列プログラミングを採用せざるを得ないだろうと述べ、Parallel Studioによって、並列化のコンセプトがメインストリームの開発者にまではるかに広く普及したと述べた。Evans Dataが2009年春に実施した、世界中の開発者を対象とした調査によると、プログラマーの40%が現在マルチスレッドアプリケーションを開発しており、さらに15%が2010年にマルチスレッドアプリケーションを開発する予定だという。

Intelの新しいモバイルコンピュータ向けプロセッサCore i7にはコアが4つあり、8つのスレッドを実行できる。 Intelの新しいモバイルコンピュータ向けプロセッサCore i7にはコアが4つあり、8つのスレッドを実行できる。
提供:Intel

 Microsoftの並列コンピューティング担当プリンシパル・プロダクト・ユニット・マネージャーのSteve Teixeira氏によると、「並列プログラミングは、最も熟練した開発者にとっても、複雑かつ難解で多くの労力を必要とするため、開発者は並列プログラムの作成を避け、多くのCPUサイクルを未使用のままにしている」という。この状況を改善するためのMicrosoftの試みとして、Visual Studio 2010だけでなく、同社の「.NET Framework」のバージョン4も今後登場する。

並列プログラミングツール

 以下のような機能がある。

  • Task Parallel Library」によって、.NETプログラマーは、なじみのある用語でより並列化されたコードを記述できる。例えば、プログラマーは特定のタスクを指定した回数繰り返す「forループ」の使用に慣れているが、Task Parallel Libraryではループの各ステップが順次ではなく同時に実行される。
  • Microsoft Concurrency Runtime」によって、タスクのスケジューリングとリソースの割り当てのための共有リソースが提供される。これは、Windows 7ではさらに適切に動作する
  • Asynchronous Agents Library」によって、実行中の独立したスレッドが相互にメッセージを送ることができる。これは、それぞれのスレッドが、発生してはならない状況を回避する必要があるときに役立つ。
  • Parallel Language Integrated Query(PLINQ)」テクノロジによって、プログラマーはいくつかのデータ操作を、順次ではなく並行して実行できる。
  • Parallel Pattern Library」は、C++言語を使用する開発者にとって並列プログラミングが簡単になるように設計されている。

 ただし、Microsoftは、これらのいずれもがそれほど簡単ではないことを知っている。DeVaan氏は、既存のソフトウェアを並列化する場合のいくつかの事例について疑問を抱いている。例えば、ループを並列化する場合に、それぞれのステップは本当にほかのステップに依存していないのだろうか。同氏によれば、コンピュータ業界には、本当に困難なことのうわべだけを取り繕おうとする「多くのごまかし」があるという。

 「業界として、これがうまく行くように努め、幅広い開発者たちと協力して、過度の作業を必要としない(マルチコアプログラミング)を目指すことになるだろう。それがこれらの方法で本当に実現されるかは、まだ分からない」(DeVaan氏)

この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。原文へ

CNET Japanの記事を毎朝メールでまとめ読み(無料)

-PR-企画特集

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]