Skip to main content

プログラミングを容易にするマルチコアコーディング標準

マルチコア・アソシエーションは、スマートフォン、タブレット、その他の組み込みシステムで使用されるマルチコア・チップ向けのソフトウェア作成に伴う複雑さを軽減するプログラミング・モデルの仕様を確立しています。

協会は、

チップメーカーは、CPU、センサー、およびアクセラレータをチップにエネルギー効率の高い方法で追加しています(チップ・メーカーは、同じチップまたは異なるチップ上のコアにまたがる通信、リソース共有および仮想化を標準化するために、デバイスのアプリケーションパフォーマンスを向上させます。しかし、マルチコア・チップは、複数のコアにまたがるアプリケーションを作成し、正確な同期を取って正しい出力を得るために計算が特定の順序で確実に実行されるようにするプログラマにとっても課題になっています。

低レベルのAPIは、マルチコア・プログラミング・モデルから、アプリケーションをチップ・アーキテクチャ、オペレーティング・システム、特殊なハードウェアにまたがるように調整することができます。マルチコア・アソシエーションは、コミュニケーションおよびリソース管理のためのMCAPI(マルチコア通信API)およびMRAPI(マルチコア・リソース管理API)を完成させ、仮想化に関連する新しいツールおよびAPIを作成するためのワーキンググループを持っています。しかし、すべての当事者の主な目標は移植性を確立することだ」とレビー氏は語った。一貫したプログラミングモデルにより、異なるマルチコアプラットフォーム間でのアプリケーションの再利用が容易になります。これらのAPIに先立ち、ほとんどの設計では移植性に欠ける独自のメカニズムが使われていたとLevy氏は言います。

スマートフォンは、さまざまな機能を提供するさまざまなオペレーティングシステムを実行する複数のプロセッサコアを使用して設計できます。 Mentor GraphicsはNucleusリアルタイムオペレーティングシステムを毎年約4億台の携帯電話機に搭載しています。 MCAPIは、2つのコア上のソフトウェアが通信するための簡単な手段を提供している、とWalls氏は述べています。

一部のデバイスでは、AndroidやLinuxなどのOSを実行して、ファイルとデータの管理と通信。もう1つのコアは、ユーザーには見えず、セルラーネットワーク接続の確立や保守、通話の処理など、低レベルの電話活動を管理することができます。MCAPIを使用することで、組み込みアプリケーションコードは、 Walls氏によれば、MCAPIを使用することで、プログラマはマルチコアのアプリケーションを一度有効にし、同じコードを製品ラインや次世代製品の複数の製品に再利用することができますマルチコアとマルチチップ通信用の開発ツールとランタイムソフトウェアを提供するPolyCore SoftwareのCEO、Sven Brehmerは述べています。MCAPIはテレコムとデータコムのインフラストラクチャやマルチメディア機器で最も多く使用されています。 。他の関心領域としては、医療機器、高性能コンピューティング、およびレーダーなどの軍事および航空機機器が挙げられる。APIは、特定のチップ上のコア間または特定のチップ上の特定の領域上の通信など、特定の実装のためのドメインの確立を可能にする。チップのトポロジーMCAPIインフラストラクチャの1つの側面は、通信ノードのネットワークの仕様を含みます。ここで、ノードは、プロセス、スレッド、またはノードのインスタンスになることができます。オペレーティングシステム、ハードウェアアクセラレータ、またはプロセッサコアをサポートしています」とLevy氏は述べています。

MCAPIは、マルチコアチップの電源管理と仮想化を調整するアプリケーションレベルのリソース管理機能用のAPIであるMRAPIと連携して動作するように設計されています。チップには動的に変化する機能や機能が含まれており、一部のマルチコアチップでは、単一のOSがすべてのリソースを追跡して制御することは難しいとレビー氏は述べている。 MRAPIは、省電力状態、デバイス障害、ハイパーバイザ再パーティションなど、システムレベルのイベント通知を低レベルでサポートします。たとえば、対称型マルチプロセッシングを備えたLinuxベースのデバイスは、オペレーティング環境またはリソースが変更された、レビーは言った。

「MRAPIを利用することで、システム開発者はマルチコアプロセッサの現在および将来の世代に対応するポータブルアプリケーションプログラムを作成することができます。また、この標準化により、チップベンダーやサードパーティのツールプロバイダーはリソース管理を引き継ぐことができるため、プログラマーは高度なアプリケーションに集中することができる、とLevy氏は述べている

組込み仮想化製品のユーザー向けにAPIを開発しており、異なる仮想化環境でアプリケーションとミドルウェアの相互運用性を実現することができます。しかし、より大きな焦点は、APIを利用する標準化されたツールの開発にあります。レビ氏は、メンター・グラフィックス、インテル、フリースケール、テキサス・インスツルメンツなどの新APIの支持者たちは、それぞれ独自のデバッグとトレースツールを開発していたと指摘している[

]。「ツールベンダーの純結果は、顧客が必要とするすべてのものを提供することはできませんが、お客様はこの多様なシステムを開発し理解することができなければなりません」とLevy氏は言います。

他のマルチコアOpenMPやOpenCLのようなプログラミングモデルがありますが、それらはすべて競争力よりも「相乗的」になるように設計されています。 OpenMP APIはマシンレベルの並列アプリケーションを作成するように設計されていますが、OpenCLはCPUやグラフィックスプロセッサを含むマルチコアプロセッサ間でタスクを並列実行するためのプログラミングフレームワークです。

Multicore AssociationのメンバーにはIBM、Samsung、Advanced Micro Devicesも含まれます。