タグ付けされた質問 「dc.parallel-comp」

並列計算における理論的な質問

3
MapReduceフレームワークはBSPの一種ですか?
mapReduceフレームワークを、同期間でプロセッサ内にローカルメモリが保持されないタイプのバルク同期並列プログラミングフレームワークと呼ぶのは正確ですか?そうでない場合、どの並列プログラミングモデルがmapReduceフレームワークを最も正確にカプセル化しますか?

3
データ並列演算子を備えた完全な関数型言語を使用してどのアルゴリズムを表現できますか?
データ型のみが数値スカラーと配列の任意のネストである関数型プログラミング言語を想像してください。この言語には、無制限の反復の手段がないため、次のものは許可されません。 明示的なループ(副作用なしではあまり使用されません) 再帰 任意のファーストクラス関数(yコンビネーターなし) ただし、言語には次のものがあります。 トップレベル関数 レキシカルスコープのletバインディング 分岐制御フロー 一般的なスカラー数学および論理関数 fill(n、x)のようないくつかの単純な配列コンストラクターは、同じ値xを持つn要素の配列を作成します 最も重要なこと:並列構造化反復(map、reduce、scan、all-pairsなど)を実行する高次演算子の制限されたセット。 データ並列演算子をより具体的にするには: y = map(f、x)=> y [i] = f [i] y = reduce(f、a、x)=> y = f(a、f(y [p [0]]、f(y [p [1]]、...)))いくつかの順列p y = scan(f、a、x)=> y [i] = reduce(f、a、y [0 ... i-1]) y = allpairs(f、x、y)=> y [i、j] = f(x [i]、y [j]) 他の演算子を使用することもできますが、修飾するには多項式の実行時間を持ち、データ並列計算の合理的なモデルの下で実装可能であり、多くても多項式空間を使用する必要があります。 …

1
決定論的な疑似ランダム性は、並列性のランダム性よりもおそらく強力ですか?
クラスBPNC(とN Cの組み合わせ)を、有限のエラー確率とランダムソースへのアクセスを備えたログ深度並列アルゴリズムとします(これが別の名前であるかどうかはわかりません)。同様にクラスDBPNCを定義します。ただし、すべてのプロセスは、アルゴリズムの起動時に固定されたランダムなビットストリームにランダムにアクセスできます。B P PBPP\mathsf{BPP}NCNC\mathsf{NC} 言い換えると、BPNCの各プロセスは個別のランダムソースにアクセスでき、DBPNCアルゴリズムは完全にランダムなカウンターモードジェネレーターを共有しています。 BPNC = DBPNCかどうかはわかりますか?

3
並列化、特に問題のパターンとアルゴリズムに関する入門ノート
コンピューターサイエンスの基本的なクラスの並列アナログのように、並列プログラミングの優れた紹介を提供するオンラインで利用可能な講義ノートまたはその他のリソースを探しています。 私の焦点は次のとおりです。分割統治、貪欲アルゴリズム、動的プログラミングなど、つまり逐次アルゴリズムの基本パターン(および問題)について話すことができますが、並列アルゴリズムのアプローチを分類するための適切な言語がありません。 たとえば、次の各問題への明白な並列アプローチには定性的振る舞いが異なるという事実を表すために、適切な用語を取得したいと思います。 整数の配列をすべてゼロに設定します(完全にスケーリングします)。 整数の配列を合計する(使用するスレッドが多いほど、オーバーヘッドが大きくなります)。 配列を指定して、各エントリと他のエントリの積をリストします(標準のdouble-for-loopを並列化すると、実行時間はプロセッサ数のsqrtにスケーリングされます)。 共有メモリ環境で十分であり、プロセス間通信は私にはそれほど関係ありません(実際、私はそれをまったく回避するアルゴリズムに興味があります)。さらに、技術的な側面は私には無視できます。

1
どの機械学習分類器が最も並列化可能ですか?
どの機械学習分類器が最も並列化可能ですか?難しい分類問題があり、時間は限られているが、動作するコンピューターのLANはまともな場合、どの分類子を試してみますか? 手元では、私が知っているいくつかの標準的な分類器のように見えますが、次のように積み上げられますが、完全に間違っている可能性があります。 ランダムフォレスト-各マシンがすべてのデータを保持できる限り、非常に並列化できます(つまり、トレーニングデータ自体を分割することはできませんが、それ以外の場合は並列化できます)。 ブースティング-? サポートベクターマシン-あまり並列化できません。 決定木-部分的に分割できますが、効率的ではありません。


1
実用的なマルチワードの比較と交換操作
で紙この質問と同じタイトルで、著者は構築する方法について説明しノンブロッキング 線形化 マルチワードCASの唯一のシングルワードCASを使用して操作を。彼らは最初に、以下のように二重比較単一交換操作-RDCSSを紹介します。 word_t RDCSS(RDCSSDescriptor_t *d) { do { r = CAS1(d->a2, d->o2, d); if (IsDescriptor(r)) Complete(r); } while (IsDescriptor(r)); if (r == d->o2) Complete(d); // !! return r; } void Complete(RDCSSDescriptor_t *d) { v = *(d->a1); if (v == d->o1) CAS1(d->a2, d, d->n2); else CAS1(d->a2, d, d->o2); } ここで、RDCSSDescriptor_tは次のフィールドを持つ構造です。 …

3
厳格な整合性と順次整合性の違い
厳格で順次的な一貫性は独立してかなりよく理解しています。 厳密なCは、基本的に、命令がグローバルクロックで実行される実際の順序を強制します。 Sequential Consistencyは、基本的に1つのプロセッサでのみ順序を強制します。 でもいくつかの文献をまとめるのに苦労しています。 http://www.cs.nmsu.edu/~pfeiffer/classes/573/notes/consistency.htmlは、メモリの「ラグ」を可能にする順次一貫性について説明しています。書き込みがすべてのプロセッサに伝播するまでに時間がかかる場合があります。しかし、それが行われると、一度にすべてに届きます。したがって、以下はSequential Consistencyで有効です P1: W(x)1 ----------------------- P2: R(x)0 R(x)1 今私が気にしているのは、次のプロセスです。これはデッカーのアルゴリズムのようなものです。 P1: W(x)1 R(y)0 ----------------- P2: W(y)1 R(x)0 これは、シーケンシャル一貫性(http://portal.acm.org/citation.cfm?id=1787234.1787255 pg 2)の下では確かに可能ではないはずです。この結果が得られる合計順序はありません。 しかし、シーケンシャルな一貫性により書き込みの伝播が遅くなり、1つのスレッドが他のプロセッサの状態を把握していない可能性があるという考えからは理にかなっています。 ここで何が欠けていますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.