Multicore Association

The Multicore Associationは、システム開発者やプログラマーがマルチコア技術を任意のアプリケーションに容易に導入できるようオープンな標準API、仕様書、およびガイドラインの策定を行なう、運営資金はメンバーの拠出による、非営利の米業界団体であった。

2005年に創設。

団体は、プロセッサ、インフラ関連デバイス、ソフトウェア、およびアプリケーションなどのマルチコア関連製品に興味のある、開発中、または商品展開中の、ベンダーや開発者向けの中立的フォーラムを提供している。当該メンバーには、プロセッサ･ベンダー、OSベンダー、コンパイラー･ベンダー、ツールやデバッガー･ベンダー、ESL/EDAツール･ベンダー、シミュレータ･ベンダー、アプリケーション･ベンダー、システム開発社がある。

当団体の代表はMarkus Levyである。彼は過去にEEMBC, the Embedded Microprocessor Benchmark Consortiumの代表も務めた。当団体のCTOはSven Brehmerであり、彼はPolyCore Software社の社長を務めている。

 完了したプロジェクト 
2008年、マルチコア･コミュニケーション APIワーキンググループは当団体として最初の仕様書を公開。それはMCAPIと呼ばれた。MCAPIは、近接分散した（マルチコアチップおよび/またはマルチコアボード）組み込みシステムに必須の基本的な通信･同期を捕捉するメッセージパッシングAPIです。MCAPI実装のターゲットシステムは、多岐の不均質性に及びます（コアの不均質性、インターコネクト･ファブリックの不均質性、メモリの不均質性、ＯＳの不均質性、ソフトウェア･ツールチェインの不均質性、プログラム言語の不均質性）。

2011年にMCAPIワーキンググループはMCAPI2.0を公開。このバージョンには新しい機能が含まれている。たとえばルーチン目的のドメインである。MCAPI2.0はドメインを導入してノード･ネットワークに1つの階層構造を追加した。ドメインは様々な実装目的の使い方ができる。たとえば1つのチップ上の全部のコアを代表するために使用したり、公開エリアと保護エリアにトポロジーを分割するために使用するなどである。MCAPI2.0はさらに３つの新しいタイプの初期化パラメータを追加した（ノード属性、実装固有の構成、およびイニシャル･ネットワーク･トポロジーまたは実行中のMCAPIの実装情報）。MCAPIワーキンググループの委員長はSven Brehmerである。

2011年、マルチコア･リソース･マネージメントAPIワーキンググループはMRAPIと呼ぶ最初の仕様書を公開した。MRAPIは基本的なアプリケーションレベルのリソース･マネージメント能力を規定する業界標準APIである。マルチコア･アプリケーションは以下の2つの状況で、調整されたコンカレントなシステム･リソースへのアクセスを可能にする。
個々のタスクやプロセッサに特化したリソースが十分ないとき
ランタイム（プログラムのライフサイクルのフェーズ）･システムがリソース共有を調整するための、均一にアクセス可能なメカニズムを提供しないとき。
当APIはSMPおよびAMP組み込みマルチコア実装に適用できます。MRAPIは（他のマルチコア･アソシエーションAPIと併用することで）アプリケーション実装やあらゆる機能を搭載したリソースマネージャの実装、その他の階層サービスの実装にとって、貴重なツールとして利用できる。MRAPI委員長はJim Holtである。

2013年、マルチコア･タスク･マネジメントAPI(MTAPI)ワーキンググループが最初の仕様を公開した。MTAPIはホモジーニャスおよびヘテロジーニャスなコアを有する組み込み並列システムのタスク調整機能をサポートするAPIの標準仕様である。MTAPIの核心機能はタスクのプロセッサコアへの割り当て、ランタイムのスケジューリングである。MTAPIはマルチコア･システムのスループットを最適化する。その結果、ソフトウェア開発者はタスク･スケジューリング･ストラテジーをレイテンシーや公平性の観点から改善することが可能となっている。MTAPI委員長はシーメンス社のUrs Gleimである。

2013年、マルチコア･プログラミング・プラクティス(MPP)ワーキンググループはマルチコア･プログラミングの課題を理解し、一貫性を改善するため、業界向けにマルチコア･ソフトウェア･プログラミング･ガイドを提供した。MPPガイドは、マルチコア･プログラミングを目指す技術者にC/C++言語を活用した、純粋に価値あるベスト･プラクティスを提供する。委員長はNXPセミコンダクタ社のRob OshanaとCriticalBlue社のDavid Stewartである。

2015年、マルチコア/メニーコア(SHIM)ワーキンググループはソフトウェア開発向けにアーキテクチャ記述標準を定義する仕様を公開した。その特徴は、プロセッサコア、アクセラレータ、キャッシュ、コア間通信を含むハードウェア･トポロジーである。それには各エレメント、命令、メモリ、および通信性能の情報の詳細を含みます。委員長はeSOL社の権藤正樹である。2020年２月１０日、当該アセットはIEEEに移管。

 活動中のワーキンググループ 

 マルチコア通信API(MCAPI)ワーキンググループは、バージョン2.xに向けてMCAPIの利用範囲を広げるため、特徴や機能を追加を実施中である。当ワーキンググループは、共有メモリを用いたアプリケーション･アプリケーション間の双方向作用、アプリケーション･デバイスドライバ間の双方向作用を含む相互運用性とゼロコピー機能について検討している。委員長はPolyCore Software社Sven Brehmer。
 仮想化ワーキンググループは、ハイパーバイザーと通信するために、1セットの準仮想化情報と機能を定義、最適化することを主に検討している。当ワーキンググループはまた、マルチコアプロセッサ内部を含む様々な仮想化の特徴や機能を分類するためのシステムにもフォーカスしている。委員長はCavium Networks社nのRajan GoyalとNokia Networks社のSurender Kumarである。
 オープン非対称型マルチプロセッシング(OpenAMP)ワーキンググループは、詳細な仕様書を策定し、OpenAMPの機能を拡張することで、当APIsを標準化することにフォーカスしている。委員長はXilinx社Tomas Evensenである。

 OpenAMP 
OpenAMPマルチコア･フレームワークは、非対称型マルチプロセッシング(AMP)システムのアプリケーション･ソフトウェアを開発するために必要なオープンソース･フレームワーク。対称型マルチプロセッシング･システム向けのOpenMPに類似している。

OpenAMPマルチコア･フレームワークにはいくつかの実装例がある。それぞれの実装例は、OpenAMP APIを介し、他の実装例と相互運用ができる。Xilinx社Zynq向けに元々開発された、マルチコア･フレームワークの1実装例が、当OpenAMPオープンソース･プロジェクトの中においてオープンソースであった。メンター組み込みマルチコア･フレームワーク(MEMF)はOpenAMP標準の、独自の実装例である。OpenAMP API標準は、Multicore Associationの元でのみ管理されている。