2015-09-28 9 views
6

アルゴリズムの複雑さを分析するためのバロメーターとみなされます。しかし、モバイル機器にGPUが搭載されている今日では、モバイルデバイス上で複雑なアルゴリズムを実行するためにその高性能を使用できる数多くのアプリケーションがあります。たとえば、iOSのメタルフレームワークをGPGPU操作に使用できます。しかし、言うまでもなく、それは多くの力を消費する。だから私の質問は、私が開発/実装している、たとえば、モバイルデバイス上のグラフ検索アルゴリズムで、私はまた、時空とともに、私のアルゴリズムの "パワー"の複雑さを考慮してはいけないということですか?今、私は議論が、アルゴリズムが直接消費しないパワーであり、それに完全に同意するということができるということを知っています。だから、私の文法は、アルゴリズムの効率を測定するもう一つの次元であると言っても間違いです。しかし、アルゴリズムの性能指標として見えるべきではありませんか?アルゴリズムの複雑さ:パラメータとして「消費電力」を見分ける方法は?

+3

私はエネルギー消費の正式化については気づいていませんが、時間とスペースはおそらくエネルギーにとってはいくらか有用なプロキシです。少ないCPUサイクルでより少ないエネルギーで済み、メモリアクセスも少なくなります。特定のタスクを達成するためのエネルギー消費を最小限に抑えるように設計されたアルゴリズムの概要については、例えば、 [ここに](http://cacm.acm.org/magazines/2010/5/87271-energy-efficient-algorithms/fulltext)、[この他の調査](http://people.cs.pitt.edu /~kirk/cs3150spring2010/sigactreview.pdf)を締結しました。 –

+1

興味深い考え。 Big-Oの意味では、消費電力は時間の経過とともにメモリ使用量の積分として測定でき、CPUを稼働させ続けるためには、メモリ(少なくとも命令ポインタレジスタ)のゼロでない量が必要であることを覚えておいてくださいdo-nothingループ。多くのアルゴリズムでは、最悪の場合の時間とメモリの要件が増えますが、このフレームワークでは、メモリを大量に使用して短時間を費やすアルゴリズムには報いることができますが、 –

+0

あなたの返信ありがとうございます。あなたの答えに基づいて、メモリアクセスの数は消費される電力に比例すると考えられます。実際、この事実が議論の前提とみなされるならば、空間の複雑さは私にもっと細かく見なければならない。これは、使用されているネットスペースだけを考えることはできませんが、メモリが割り当てられ解放された回数を考慮する必要があります。 –

答えて

1

これを可能にするには、アルゴリズムのアトミック操作に関連するエネルギー消費モデルが必要です。

「複数のエネルギーを消費します」、「メモリスロットは単位時間あたり2つのエネルギーを消費します」などのように多分、Energy = Time x Spaceという関係が理にかなっているかもしれません。

とにかく、このような「ナイーブな」モデルは、時間の複雑さのモデルと同じ現象に悩まされる可能性があります。現代のアーキテクチャーの動作とはまったく似ておらず、桁違いに間違っている可能性があります。

より正確なモデルを使用すると、解析的に扱いにくいものになります。

+0

エネルギー=時間x空間は最初の良い亀裂です。より洗練されたモデル*は、扱いやすく現実的である可能性があります - Aggarwal他のI/O複雑性モデルの成功を見てください。 2つの別個のレベルのメモリを有するシステムをモデル化する。 –

+0

@j_random_hacker:洗練されたモデルは扱いにくく、現実的ではないと思っていますが、これは単なる意見です:) –

2

No. 複雑さは、アルゴリズムが時間/メモリでどのように比例するかを説明します。パワーは時間とメモリの関数になります。

アルゴリズムA - O(N^2)とB - O(N^3)があり、両方とも同じ問題を解決したとします。 n = 1000の場合、Bは1単位の電力を使用しますが、Aは20を使用します。今度は、n = 10kまで拡張するとBには1000単位の電力が必要ですが、Aには2000のみが必要です。n = 100kでBは、 Aは200,000を必要とします。等々。 これは、エネルギー消費がアルゴリズムの実行に対して一定であることを前提としています。

ところで、同じことが時間とともに起こります。たとえば、短い配列の場合、線形検索に勝るものはありません。

特定のケース(固定解像度のUIをレンダリングする)では、消費電力を測定して最適化することが理にかなっています。しかし、今日の決議のために働くのは、必ずしも明日には正しいことではありません。

+0

"これは、エネルギー消費量がアルゴリズムの実行に一定であることを前提としています。 - 典型的な現代のCPUではおそらく合理的な仮定ですが、総電力コストには、ライブ状態のメモリのバイト数に比例する項がなければなりません。例えば。 O(1)バイトのメモリを使用するO(n)アルゴリズムは、O(n)バイトのメモリを使用するO(n)アルゴリズムより漸進的に少ない電力を使用する必要があります。 –

関連する問題