2012-02-28 26 views
6

OpenMPはクロスプラットフォームのGCCでサポートされていますが、OpenMPはすべてのターゲットプラットフォームでサポートされていますか?具体的には、iOSとAndroid **は携帯電話/タブレットがクアッドコアに移行するため、ゲームのすべてのコアを使用するのではなく、大きな欠点となります。iOS/Android上のOpenMP

** Android用のC++アプリケーションを作成することはできません。

答えて

3

これは必ずしも当てはまりません。例:http://groups.google.com/group/android-ndk/browse_thread/thread/a547eac5446035b4?pli=1

OMPは、すべてのターゲットGCCプラットフォームでサポートされていません。たとえGCCがARM/Thumbアーキテクチャをターゲットとすることができるとしても、それは確かにGameboy Advanceでは利用できません。

OOSがサポートされているかどうかはわかりませんが、Appleは非同期タスクキューイングに重点を置いたGrand Central Dispatchライブラリの使用を強く推奨しています(Appleは本当に理想的な連続した処理をスピードアップするためには、並列ループとはまったく異なるローディングアイコンをアプリケーションがストールして表示しないようにする必要があります)。

Androidの最初の場所にC++アプリを書くことができないのですか?

はい、Android NDKのCおよびC++は、ネイティブAndroidアプリケーションを構築するためにサポートされている2つの言語です。iOSは、C、C++、およびObjective-Cに重点を置いています。

+0

アップル独自のライブラリについて - 私は具体的には異なるプラットフォームで動作するコードが必要であり、Appleのものは多すぎるほど多くの問題を引き起こすとは思っています。 GCCがiOS OpenMPの実装を可能にする点はありませんか? –

+0

それは本当です。あなたの基本的なOMP parallel forは、少なくともdispatch_applyを使ってコードブロックとGCDを理論的に実装することができます。現在のところ、私はclangでそれをサポートしていないと思うし、アップルは独自のコントロールフリークになる傾向があるので、近い将来OMPサポートをどれだけ得ることができるか分からない。 AppleがGCDのようなものを作ったとき、彼らは一般に私が彼らの実績から見たものに基づいて、より多くのクロスプラットフォームのソリューションに賛成しているだろう。 – stinky472

+0

ポータブルソリューションを探しているなら、コンパイラがその存在を実際に認識することを必要としないスレッドビルディングブロックの場合のように、C++の上に座ることができるもので最もうまくいくかもしれません。 – stinky472