 |
 |
 |
 |
 |
 |
Let's LTS: 第 4 回 共有 ALF インスタンスとスケジューリング Accelerated Library Framework (ALF) の新しいタスクモデルである、軽量タスクサポート (Lightweight task support, LTS) が SDK 3.1 から加わりました。本記事では、ALF を利用したライブラリの作成を容易にする、共有 ALF インスタンスについて解説します。また、複数のタスクを ALF がどのようにスケジューリングするのか、実験で確認してみます。 |
|
|
|
2009/05/15 |
|
| |
Let's LTS: 第 3 回 タスクコンテキストとタスクパイプライン Accelerated Library Framework (ALF) の新しいタスクモデルである、軽量タスクサポート (Lightweight task support, LTS) が SDK 3.1 から加わりました。本記事では、タスクコンテキストを使って SPE へ起動時パラメータを渡す方法と、タスク依存関係を使ってパイプライン実行を行う方法について解説します。 |
|
|
|
2009/04/17 |
|
| |
Cell Superscalar はどうだい?: 第 2 回 Intrinsics と組み合わせてみよう 前回の記事に引き続き、Cell Broadband Engine (Cell/B.E.) 用 並列化フレームワーク "Cell Superscalar (CellSs)" を取り上げます。
今回は、CellSsの最大の特徴であるIntrinsics との併用を行い、Cell/B.E.のパフォーマンスを最大限まで引き出してみます。 |
|
|
|
2009/03/23 |
|
| |
Let's LTS: 第 2 回 タスク切り替え機能 Accelerated Library Framework (ALF) の新しいタスクモデルである、軽量タスクサポート (Lightweight task support, LTS) が SDK 3.1 から加わりました。本記事では、Cell Broadband Engine (Cell/B.E.) のヘテロジニアスマルチコア環境に役立つ、 ALF 軽量タスクサポートのタスク切り替え機能について使い方を解説します。 |
|
|
|
2009/03/06 |
|
| |
Let's LTS: 第 1 回 ALF 軽量タスクサポートの概要 Accelerated Library Framework (ALF) の新しいタスクモデルである、軽量タスクサポート (Lightweight task support, LTS) が SDK 3.1 から加わりました。本記事では、Cell Broadband Engine (Cell/B.E.) のヘテロジニアスマルチコア環境で必要な様々な悩みを一挙に解決してくれる、ALF 軽量タスクサポートの機能と使い方を解説します。 |
|
|
|
2009/02/20 |
|
| |
IBM Dynamic Application Virtualizatioin を使った Windows アプリケーション開発: 第 2 回 IBM DAV を上手に活用するために Cell Broadband Engine (Cell/B.E.) が持つ高い演算能力には魅力があるが、その演算能力を必要とするアプリケーションが Windows プラットフォームでしか動作しないために、諦めたりしていませんか。IBM Dynamic Application Virtualization (IBM DAV) は、そんな悩みを解決してくれるツールです。 |
|
|
|
2009/02/06 |
|
| |
Cell Superscalar はどうだい?: 第 1 回 まずは使ってみよう 演算コアを複数持つ、いわゆるマルチコアプロセッサはごく一般的なものとなりましたが、それら複数の演算コアを効率よく利用するためには、従来のソフトウエアをなんらかの方法で並列化してやる必要があります。
近年、そのような並列化プログラミング開発を効率よく利用するためのツールやフレームワークが多くの企業・研究機関から発表されています。本連載では、それら並列化フレームワークの一つである、Cell Broadband Engine 用フレームワーク "Cell Superscalar" を取り上げます。 |
|
|
|
2009/01/16 |
|
| |
クローズアップ SDK 3.1: 第 2 回 make.footer を使おう Cell/B.E. SDK 3.1 で提供されている make.footer ファイルをメイクファイルへインクルードすると、サンプルやデモプログラムをビルドするのに便利な疑似「ビルド環境」を利用できます。本記事では、make.footer ファイルで利用可能な機能や特徴と、それらが SDK のサンプルプログラムでどのように使われているか解説します。 |
|
|
|
2008/11/25 |
|
| |
XLC で行こう!: 第 3 回 いくらかの手入れはやっぱり必要 前回の記事では、OpenMPそのものについての解説をするとともに、ベクトルと行列の掛け算をサンプルプログラムとして
"XL C/C++ Alpha Edition Single Source Compiler version 0.9"(XLC SSC)における、スレッド生成にかかるオーバーヘッドを定量的に見積もりました。第三回となるこの記事では、スレッドの数と演算データ量を変えた場合に、どのぐらいの演算処理能力が期待できるのか実際に測定してみましょう。また、後半では第一回の記事にも登場したEuler 法シミュレーションの最適化にチャレンジします。 |
|
|
|
2008/11/21 |
|
| |
SDK 解説: SDK バージョン 3.1 の紹介 Cell Broadband Engine 用の IBM SDK for Multicore Acceleration Version 3.1 がリリースされました。本記事では、SDK Version 3.1 の機能を Version 3.0 との違いを中心にご紹介します。 |
|
|
|
2008/11/07 |
|
| |
プログラムの容易性: 第 1 回 Cell/B.E. プラットフォームでのプログラミング手法を探る Cell Broadband Engine で柔軟にプログラミングを行えることがマルチコアのコミュニティーでホットな話題となっています。この記事では、皆さんの既存のスキルを Cell/B.E. でのプログラムに活用する方法と Cell/B.E. システムのための 3 つのプログラミング手法、そしてこのプラットフォームで利用可能なさまざまなツールやソフトウェア、ハードウェアについて説明します。 |
|
|
|
2008/10/14 |
|
| |
XLC で行こう!: 第 2 回 小さすぎると困ります 前回の記事では、Cell/B.E.用のIBM XLCコンパイラには、"XL C/C++ Multi-core Acceleration for Linux version 9.0"(XLC MA)と、"XL C/C++ Alpha Edition Single Source Compiler version 0.9"(XLC SSC)の2種類あることを述べ、両者の簡単な使用方法を説明しました。第二回となるこの記事では、XLC SSCに焦点をあて、Open MPコードの基本的な書き方について説明し、行列の掛け算を題材にしてデータサイズと並列化効率の関係性について調べてみます。 |
|
|
|
2008/09/19 |
|
| |
IBM Dynamic Application Virtualizatioin を使った Windows アプリケーション開発: 第 1 回 IBM Dynamic Application Virtualizationを試してみる Cell Broadband Engine (Cell/B.E.) が持つ高い演算能力には魅力があるが、その演算能力を必要とするアプリケーションが Windows プラットフォームでしか動作しないために、諦めたりしていませんか。IBM Dynamic Application Virtualization (IBM DAV) は、そんな悩みを解決してくれるツールです。 |
|
|
|
2008/09/05 |
|
| |
Assembly Visualizer を活用した SPU コードの高速化: 第 2 回 パイプラインを最適化する Cell Broadband Engine (Cell/B.E.) の能力を引き出すために、様々なツールが提供されています。 Assembly Visualizer (asmVis) は、SPUの実行パイプラインが十分埋まり性能が引き出されているかを調べるツールです。asmVisを活用してSPUプログラムを最適化する方法を説明します。 |
|
|
|
2008/08/08 |
|
| |
Fun with DaCS: 第 1 回 エラーハンドラを使ってみる この Cell Broadband Engine(TM) (Cell/B.E.) シリーズでは、Data Communication and Synchronization library (DaCS) におけるユーザ定義のエラーハンドラの作成方法および登録方法について学びます。この記事で紹介する内容は "Data Communication and Synchronization Library for Cell Broadband Engine Programmer's Guide and API Reference, Version 3.0" (参考文献参照) を情報源としています。 |
|
|
|
2008/08/05 |
|
| |
Fun with ALF: 第 6 回 タスク依存関係の利用 今回の Cell Broadband Engine(TM) (Cell/B.E.) シリーズでは、2つのステージを持つパイプラインアプリケーションを構築する例でAccelerated Library Framework (ALF) タスク依存関係を使用売る方法を学びます。本記事は "ALF for Cell/B.E. Programmer's Guide and API Reference, Version 3.0" (参考文献を参照) を基にしています。 |
|
|
|
2008/07/22 |
|
| |
XLC で行こう!: 第 1 回 Cell/B.E.用 XLC は2種類あるよ XLC/C++ コンパイラは Power 系プロセッサに最適化されたコードを生成してくれる IBM 製の C/C++ 言語コンパイラです。Cell/B.E. アーキテクチャ用には、現在 2 種類の XLC/C++ コンパイラが用意されています。一つは標準ソフトウエア製品として販売されている "XL C/C++ Multi-core Acceleration for Linux version 9.0"、もう一つは Cell/B.E. SDK3.0 Extra Package にアルファ版として収録されている "XL C/C++ Alpha Edition Single Source Compiler version 0.9" です。この記事では、両コンパイラの違いについて説明し、効率よく開発を進める上でのヒントを紹介します。 |
|
|
|
2008/07/04 |
|
| |
コア・パートナー: 第 4 回 PlayStation 3 Wi-Fi ネットワークを管理する Terra Soft Solutions 社の IT マネージャーである Aaron Johnson が、Cell Broadband Engine をベースとした Sony PlayStation 3に組み込まれた Wi-Fi ネットワークを構成し、暗号化する方法をステップバイステップで紹介します。さらに、PS3 で無線ネットワークを有線ネットワークに切り替える方法を説明する簡単な 16 のステップも学んでください。 |
|
|
|
2008/06/17 |
|
| |
Assembly Visualizer を活用した SPU コードの高速化: 第 1 回 asmVis を試してみよう Cell Broadband Engine (Cell/B.E.) の能力を引き出すために、様々なツールが提供されています。 Assembly Visualizer (asmVis) は、SPU コードがどのようにパイプラインで実行されているかを視覚的に確認し、SPU の性能が引き出されているかを調べるツールです。asmVis を活用してSPUプログラムを最適化する方法を説明します。 |
|
|
|
2008/06/06 |
|
| |
Fun with ALF: 第 5 回 オーバーラップI/Oバッファを利用した行列の加算 今回のCell Broadband Engine(TM) (Cell/B.E.) シリーズでは、Accelerated Library Framework (ALF) オーバーラップI/Oバッファを使って行列の加算を行う方法を学びます。本記事は "ALF for Cell/B.E. Programmer's Guide and API Reference, Version 3.0" (参考文献を参照) を基にしています。 |
|
|
|
2008/06/03 |
|
| |
Fun with ALF: 第 4 回 大きなベクトルの内積の計算 今回の Cell Broadband Engine(TM)(Cell/B.E.) シリーズでは、Accelerated Library Framework (ALF) のバンドル化されたワークブロック分配と、ローカルメモリのサイズ制限からワークブロックが分割されたデータを格納することができない場合にタスクコンテキストを使って対応する方法を学びます。本記事は "ALF for Cell/B.E.Programmer's Guide and API Reference, Version 3.0" (参考文献を参照) を基にしています。 |
|
|
|
2008/05/09 |
|
| |
Fun with ALF: 第 3 回 最小値と最大値の探索 今回の Cell Broadband Engine(TM) (Cell/B.E.) シリーズでは、Accelerated Library Framework (ALF) タスクコンテキストを使って各タスクインスタンスで別々に計算された結果を保存しそれらを統合する方法を学びます。本記事は "ALF for Cell/B.E. Programmer's Guide and API Reference, Version 3.0" (参考資料を参照) を基にしています。 |
|
|
|
2008/04/29 |
|
| |
PlayStation 3 での Linux 開発: 第 3 回 簡単な方法で X11 をスリムにする ソニーの PlayStation 3 (PS3) は Linux を実行することができます。しかし Linux を適切に実行させるためには少し調整が必要です。シリーズ最終回であるこの第 3 回では、Peter Seebach が、より小さなメモリー範囲に収まるように X11 をスリムにする方法について説明します。 |
|
|
|
2008/04/08 |
|
| |
PlayStation 3 での Linux 開発: 第 2 回 メモリーを有効に利用する ソニーの PlayStation 3 (PS3) は Linux を実行することができます。しかし Linux を適切に実行させるためには少し調整が必要です。このシリーズの 2 回目である今回は Peter Seebach が、メモリーは一体どこに使われているのかを調べ、そうしたメモリーを有効に利用する方法について説明します。 |
|
|
|
2008/03/31 |
|
| |
Fun with ALF: 第 2 回 I/Oデータの変換 今回のCell Broadband Engine(TM) (Cell/B.E.) シリーズでは、16ビットの入力データを8ビットの出力データへ変換する例を通じて、Accelerated Library Framework (ALF) のタスクコンテキストバッファを大きなルックアップテーブルとして使う方法を学びます。本記事は "ALF for Cell/B.E. Programmer's Guide and API Reference, Version 3.0" (参考資料を参照) を基にしています。 |
|
|
|
2008/03/25 |
|
| |
Fun with ALF: 第 1 回 大きな行列の加算 今回の Cell Broadband Engine(TM) (Cell/B.E.) シリーズでは、IBM SDK for Multicore Acceleration 3.0に含まれるAccelerated Library Framework (ALF)で2つの大きな行列を加算する方法を学びます。 1つはホスト分割による例、1つはアクセラレータ分割による例です。 "ALF for Cell/B.E.
Programmer's Guide and API Reference, Version 3.0" (参考資料を参照) を元に構成しています。 |
|
|
|
2008/03/18 |
|
| |
PlayStation 3 での Linux 開発: 第 1 回 単なるゲーム機を超える ソニーの PlayStation 3 (PS3) は Linux を実行することができます。しかし Linux を適切に実行させるためには少し調整が必要です。この記事はシリーズの第 1 回として、Peter Seebach が PS3 Linux の特徴や利点を紹介し、また少し調整するだけでメリットが得られる問題をいくつか説明します。 |
|
|
|
2008/03/18 |
|
| |
The little broadband engine that could: IDL は死んだ -- DaCS 万歳! SDK3.0では、IDLの代わりにData Communication and Synchronization library (DaCS) が提供されることになりました。DaCS はヘテロジーニアスかつ多階層を持つシステムにおいて、アプリケーション開発を助けてくれるツール群とアプリケーションフレームワークからなります。この記事では皆さんをDaCSプロセスモデルのツアーにご招待します。通信やメモリアクセスを含む、DaCSの基本原理を探検していきましょう。 |
|
|
|
2008/03/04 |
|
| |
Cell/B.E. コンテナーの仮想化: 第 2 回 実装の問題 この 3 回連載の記事では、コンテナー仮想化 (オペレーティング・システム仮想化) として知られる、ハードウェア・リソースを中心としたソフトウェア仮想化について説明し、オープンソースのプロジェクトである OpenVZ を介してコンテナー仮想化の例を示します。ソフトウェアによる手法を使った Cell/B.E. プロセッサーの仮想化に必要なコンポーネントと手法のすべてを包括的に概説する連載の第 2 回目では、第 1 回で説明した専用仮想化とパーティショニングの実装について詳しく説明します。 |
|
|
|
2008/01/08 |
|
| |
Cell/B.E. コンテナーの仮想化: 第 1 回 概念とアーキテクチャー、そしてツール この 3 回連載の記事では、コンテナー仮想化 (オペレーティング・システム仮想化) として知られる、ハードウェア・リソースを中心としたソフトウェア仮想化について説明し、オープンソースのプロジェクトである OpenVZ を介してコンテナー仮想化の例を示します。ソフトウェアによる手法を使った Cell/B.E. プロセッサーの仮想化に必要なコンポーネントと手法のすべてを包括的に概説する連載の第 1 回目では、Cell/B.E. プロセッサーの仮想化に関連する基本概念、そして OpenVZ および Cell/B.E. アーキテクチャーの特徴と Cell/B.E. 上で OpenVZ がどのようにして動作するかを説明するとともに、OpenVZ ツールの一部を紹介します。 |
|
|
|
2007/12/11 |
|
| |
記録の影響を最小限に食い止める、第 2 回: 迅速なパフォーマンスへの障害を取り除く 連載第 1 回では、Cell Broadband Engine プロセスへの基本的な移植方法を説明しました。この 2 回目の記事ではさらに詳細に踏み込んで、DMA 転送サイズに基づく制約をなくす方法、プログラムを複数の SPE で実行できるように分割する方法、そしてプログラムの処理速度を一層向上させる方法を説明します。 |
|
|
|
2007/10/16 |
|
| |
IBM Installation Toolkit: Linux on POWER をロードする IBM Installation Toolkit for Linux on POWER によって、仮想化された Power マシンでも仮想化されていない Power マシンでも Linux のインストールを簡単なものにすることができ、ブート可能なレスキュー DVD を作成することができます。そしてこのツールキットは Power プラットフォームのすべてを活用するために必要なソフトウェアを提供しています。このツールキットを使って、Red Hat Enterprise Linux と SUSE Linux Enterprise Server を IBM System p マシンと System i5 マシンにインストールする方法を学びましょう。 |
|
|
|
2007/09/26 |
|
| |
The little broadband engine that could: 何で私のスカラーコードはこんなに遅いの? Cell Broadband Engine (Cell/B.E.) プロセッサの Synergistic Processor Engine (SPE) は SIMD 専用アーキテクチャであり、スカラー演算能力を持っていません全ての演算は 16 バイトのベクトルで行われます。プログラマは Cell/B.E. コンパイラがこのアーキテクチャを効果的に利用しやすいコードを設計する必要があります。 |
|
|
|
2007/08/07 |
|
| |
libspe の変更内容: libspe2 が Cell Broadband Engine プログラミングに与える影響 PPE (Power Processor Element) プログラムが SPE (Synergistic Processor Element) のアクセスと管理に使用する標準ライブラリー、libspe に大幅な改訂が行われ、Cell/B.E. (Cell Broadband Engine) SDK 2.1 ではライブラリー・インターフェースを libspe1 から libspe2 に正式に変更しています。この記事では、Jonathan Bartlett が libspe2 のコンセプトを紹介し、libspe2 で基本 SPE プロセスの管理と通信を行う方法を説明します。 |
|
|
|
2007/07/17 |
|
| |
The little broadband engine that could: Mailbox と 割り込み SPE と PPE 間の通信手段のうち、もう 2 つの手段 -- Mailbox とシグナル通知 -- についてみてみましょう。Mailbox は特別な用途のレジスタです。一般的なシステムにおいて周辺デバイスとの通信に使われる I/O レジスタによく似ていていて、SPE と PPE の両方から使用可能です。シグナル通知レジスタは PPE から書き込み・読み出し、どちらも出来ますが、SPE からは読み出しのみ許されています。 |
|
|
|
2007/07/03 |
|
| |
MMOG (Massively multiplayer online game) : 第 1 回 インフラの規模をパフォーマンスに基づいて見積もる MMOG (massively multiplayer online game) は、今日開発されつつあるソフトウェア・システムのうち最も複雑なものの 1 つであり、多くの場合は何十人もの開発者や何百人ものアーティスト、そして真の意味で大規模なインフラを必要とします。この記事は、MMOG を実行するために必要なシステムやストレージ、ネットワークなどに注目するシリーズの第 1 回です。この記事では MMOG を紹介し、ゲームのインフラの規模を見積もるための 1 つの方法を説明します。どの程度のインフラが必要なのか、またどのように MMOG のオペレーションを行うのかを学びましょう。 |
|
|
|
2007/04/10 |
|
| |
Power アーキテクチャーのためのアセンブリー言語 第 4 回: 関数コールと PowerPC の 64-ビット ABI ABI (Application Binary Interface) とは、作成した言語やコンパイルしたコンパイラーが異なるプログラム同士がそれぞれの関数を互いに呼び出せるようにするための一連の規則のことです。4 回からなる連載の最終回となるこの記事では、64-ビットのELF システム (UNIX ライクなシステム) に対応した PowerPC ABI について説明し、PowerPC ABI を使用して関数を作成し、呼び出す方法についても取り上げます。64-ビットの PowerPC ABI がどのように機能するかを詳しく知ることで、アセンブリー言語でプログラミングしているかどうかに関わらず、POWER5 や他の PowerPC ベースのプロセッサーに対応した 64-ビットのプログラムを一層効率的に作成できるようになります。この記事では取り上げていませんが、32-ビット ABI もあります。 |
|
|
|
2007/02/28 |
|
| |
Cell BE プロセッサーでのハイパフォーマンス・アプリケーションのプログラミング、第 3 回: 相乗演算処理装置の紹介 この連載では、Cell BE (Cell Broadband Engine) プロセッサーの相乗演算処理要素 (SPE) の詳細と最低限の基本レベルでのその動作方法を説明しています。今回の記事で取り上げるのは、ストレージ・アラインメントの問題と SPE の通信機能です。 |
|
|
|
2007/02/22 |
|
| |
Power アーキテクチャーのためのアセンブリー言語: 第 3 回: PowerPC 分岐プロセッサーでのプログラミング これまでの 2 回の記事では、POWER5 プロセッサー上で 64-ビットの PowerPC 命令セットを使用してプログラムがどのように動作するか、また PowerPC 命令セットがどのようにしてメモリーをアドレス指定するか、そして位置に依存しないコードを作成する方法について説明してきました。今回の記事では、PowerPC 命令セットに用意されている非常に効果的な条件命令および分岐命令の使い方に焦点を当てます。 |
|
|
|
2007/01/17 |
|
| |
Cell Broadband Engine プロセッサの能力を最大限発揮する: アプリケーションのパフォーマンスを引き出すための 25 個のヒント集 従来のプロセッサと異なり、Cell Broadband Engine(Cell/B.E.)プロセッサでは実アプリケーションにおいて理論ピークに近い性能を引き出すことが可能です。そのためにはCell/B.E.プロセッサアーキテクチャの特徴を理解していなければなりません。アプリケーションのパフォーマンスを最適化するために、本記事で紹介する25のヒントを通じてCell/B.E.プロセッサアーキテクチャの特徴に対する理解を深めましょう。 |
|
|
|
2006/06/27 |
|
| |
Linuxデバッギング・ツールとしてのシグナル シグナル・ハンドラーを使用してキャプチャーしたデータの解析に集中することで、デバッグで最も時間のかかる部分、すなわちバグの発見をスピードアップすることができます。この記事では、特にPPC Linuxでテストした例を交えて、Linux シグナルの背景を解説します。 |
|
|
|
2005/11/29 |
|
| |