問題タブ [distributed-computing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 指向性超立方体のリーダー選出アルゴリズム
指向性超立方体のリーダー選出アルゴリズムを設計しなければならないという問題に悩まされています。これは、超立方体の次元Dに等しいラウンド数のトーナメントを使用して行う必要があります。各ステージdで、1 <= d <Dの場合、隣接するd次元超立方体の2つの候補リーダーは、それぞれの超立方体の結合である(d + 1)次元超立方体の単一の候補リーダーになるために競合する必要があります。
c++ - C ++ Winsock P2P
シナリオ
Winsockを使用したC++でのピアツーピア(p2p)ネットワーキングの良い例はありますか?これは、特にこのテクノロジーを使用する必要があるクライアントにとっての要件です(神はその理由を知っています)。これが実行可能かどうかを判断する必要があります。
どんな助けでも大歓迎です。
編集
また、基礎となるソースコードを理解し、さらに知識を深めるために、ライブラリの使用は避けたいと思います。
language-agnostic - 大きなグラフを分散処理するためのオープン ソースの Pregel のようなフレームワークはありますか?
Google は、Massive Graphs での分散処理のための新しいフレームワークについて説明しています。
http://portal.acm.org/citation.cfm?id=1582716.1582723
Hadoop (Map-Reduce) に似ているかどうか知りたいのですが、このフレームワークのオープン ソース実装はありますか?
私は実際にpythonとマルチプロセッシングモジュールを使用して疑似分散型を作成しているため、他の誰かがそれを実装しようとしたかどうかを知りたいと思っていました. このフレームワークに関する公開情報は非常に少ないためです。(上記のリンクと Google Research のブログ投稿)
javascript - JavaScript 分散コンピューティング プロジェクト
私はまったく何もしない Web サイトを作成しましたが、人々がそこにとどまりたいと思っていることを自分自身で証明しました。ページの累積時間はすでに 11 時間以上記録されています。
私の質問は、Web サイトを分散コンピューティング サイトとして使用することが可能 (または実際的) かどうかです。
私の最初の衝動は、すでにアクティブな JavaScript 分散コンピューティング プロジェクトがあるかどうかを調べることでした。これにより、ページにコードを配置して完了できました。残念ながら、私が見つけたのは、それがクールなアイデアかもしれないと考えている Web サイトの膨大なリストだけでした。
整数因数分解のようなものから始めたいと考えています。この場合は RSA 番号です。サーバーが答えが正しいかどうかを確認するのは簡単で (係数がゼロに等しいかどうかをテストするだけです)、実装も簡単です。
私のアイデアは実現可能ですか?私が使用できるプロジェクトはすでにありますか?
web-applications - 分散したインターネット規模のシステムを構築するにはどうしますか?
必要なスキルのリストに「インターネット規模の分散型システムの構築」に似たフレーズを持つ職務記述書が数多くあります。おそらく何が関係するかについての基本的な感覚はありますが (Hadoop、キー値ストア、メッセージ キューなどのテクノロジを使用し、スケーラビリティや可用性などに重点を置いています)、どのようにそれを行うのか説明していただけますか? これを読むためのリソースは素晴らしいでしょう。
ありがとう、
アビナフ
windows - Microsoft HPC の代替を推奨してください
クラスター上に分散システムを実装することを目指しています。これは、リソースを消費する画像ベースのコンピューティングを大量のストレージ I/O で実行し、次の特性を備えています。
- 専用のマネージャー コンピューター ノードと最大 100 の計算ノードがあります。クラスタは簡単に拡張できる必要があります。
- これは、ジョブ タスクの概念に基づいて構築されています。ジョブには、1 ~ 100,000 のタスクが含まれる場合があります。
- ユーザーがマネージャ ノードでジョブを開始すると、計算ノードでタスクが作成されます。
- タスクは、その場で他のタスクを作成します。
- 実行に数分かかるタスクもあれば、何時間もかかるタスクもあります。
- タスクは依存関係の階層に従って実行され、オンザフライで更新される場合があります。
- ジョブは一時停止され、後で再開される場合があります。
- 各タスクには、CPU (コア)、メモリ、およびローカル ハード ディスク領域に関して特定のリソースが必要です。マネージャーは、タスクをスケジュールするときにこれを認識しておく必要があります。
- タスクは、進行状況と結果をマネージャーに伝えます。
- マネージャは、タスクが有効かハングしているかを認識しています。
Windows HPC Server 2008 (HPCS) R2 は、私たちが必要としている概念に非常に近いものでした。ただし、いくつかの重大な欠点があります。
- タスクの数が増えると、タスクの作成が指数関数的に遅くなります。数千を超えるタスクを提出することは、時間的に耐えられません。
- タスクはその進行状況をマネージャーに報告できません。できるのはジョブだけです。
- 実行時にタスクとの通信がないため、タスクが実行中かどうか、または再起動が必要かどうかを確認できません。
- HPCS はノード、CPU コア、およびメモリのみをリソース単位として認識します。独自のリソース ユニット (空きディスク容量、カスタム ハードウェア デバイスなど) を導入することはできません。
これが私の質問です。私たちを助けることができる分散コンピューティングフレームワークを知っている、または経験したことがある人はいますか? Windowsを使用しています。
.net - 分散タスクの永続性をサポートする .Net / Mono 向けの分散コンピューティング用フレームワーク
単にタスクベースではなく、分散タスクの永続性をサポートする、.Net / Mono 用の分散コンピューティング用のフレームワーク (オープン ソース) を探しています。
手元にあるプロジェクトは、複雑なシステム シミュレーションであり、より小さな独立した「サブシミュレーション」に分散する必要があります。これらのサブシミュレーションは長時間実行され続け、一定間隔でデータを受信してマスターに送り返します。マスターでは、集計結果を含むビューが更新され、ユーザーに提示されます。
したがって、分散される作業 (サブシミュレーション) はステートフルであり、複数のセッションにまたがって長時間ワーカーに (オンラインまたはオフラインで) 存在し続ける必要があります。これには、ワーカーによるローカル永続ストレージ (シリアライゼーション) が必要になります (サブシミュレーションは非常に大きく、セッションごとにマスターとやり取りするのは効率的ではありません)。
このフレームワークは、さまざまな実装 (つまり、ローカル クラスター、インターネット、単一のマシン、サード パーティのクラウド プラットフォーム) を使用できるようにすることで、使用されている実際の基盤となるネットワークまたはクラウド プラットフォームに関する透過性を提供する必要があります。
モデル/シミュレーション レベルで、ネットワーク レイテンシに応じてパフォーマンスを調整できるとよいでしょう (たとえば、ワーカーとマスターの間で送信されるデータの頻度と粒度を調整することにより)。
NGrid を見ましたが、これは未完成で時代遅れのようです。また、他の通常の疑わしいもの (MPAPI、MPI.NET、Alchemi など) もいくつか調べましたが、私が知る限り、これらは要件を満たしていません。そのようなフレームワークが存在しない場合は、そのようなフレームワークの設計に関するヒントに興味があります。
distributed-computing - 分散コンピューティングとプロセス間通信の基本的な違いは?
分散コンピューティングとインタープロセス通信の理論的定義を知っています。
しかし、リアルタイムでは、分散またはインタープロセスを選択するときの結論に達することができませんでした.
例として、分散コンピューティングまたはプロセス間通信に進むことができるいくつかのシナリオを教えてください.
erlang - リモート Erlang ノードの開始
Erlang でマスタースレーブ アプリケーションを作成したいと考えています。アーキテクチャに必要な次のことを考えています。
マスターが停止したときにスレーブが停止するのではなく、マスターがダウンしている間に再接続を試みます。
リモートノードが自動的に接続しない場合、またはダウンしている場合、マスターはリモートノードを自動的に起動する必要があります (おそらくOTPでのスーパーバイザーの動作) 。
これを行うための OTP 指向の動作はありますか? でリモートノードを起動でき、slave:start_link()
でノードを監視できることerlang:monitor()
は知っていますが、これをどのように動作に組み込むことができるかわかりませんgen_server
。
algorithm - 遺伝的アルゴリズムのオープン ソース ライブラリには、cellularGA 機能などのすべてのトリミングが含まれています
次のように動作する SGI UV システム (コア = 512、共有メモリ = 4TB) 用の GA ベースの機能選択プログラムを実装したいと思います。元の機能セットを使用するよりも、または指定されたデータに対して同じことを使用するよりも優れた出力クラス間の識別。たとえば、データは独立変数として {大気圧、温度、myShoeSize} で構成され、出力は降雨であり、機能の可能な結果です。選択は {Atm.Pressure, Temperature} になります)。
GA は、それぞれが異なる機能サブセットを表す親のプールを保持します。これらの親は、サポート ベクター マシンまたはその他の機械学習方法 (ニューラル ネットワークなど) を使用して評価する必要があるため、各親を次に使用可能な CPU コアに送信し、任意のプログラムを使用して評価し、フィットネスをに送り返す必要があります。 GA。したがって、GA は各親の評価 (適合度) を除くすべての責任を負います。代わりに、GA は親を使用可能なコアに送信し、適合度の結果を待ちます。これは、メソッドの分散機能がある場所です (したがって、さまざまなコアでさまざまな GA を実行したくありません。1 つのコアで 1 つの GA を実行し、異なるコアでフィットネス エバリュエーターを生成するだけです)。
私のハードウェアの分散コンピューティング機能を利用するために、GA を非同期モードで動作させたいと考えていますが、親には 2 つのグループ、フィットネスを評価したグループとそれを待っているグループがあります。空きコアがある場合、GA は未評価のプールから親を取得し、それをコアに送信します。その間、GAは評価されたプールから親を取得し、それらを変異させます。それらをクロスオーバーし、その子を未評価のプールなどに送信します。
そこで、私の考えは、オープンソースの GA ライブラリを入手し、その評価関数に関する限り、少し変更することです。ライブラリがこの「非同期」モードを提供している場合は、それで問題ありません。これらすべてに加えて、このライブラリには、cellularGA などの多くの機能を提供してもらいたいと考えています。何が出てくるかは、オープンソースでもあります。
誰か提案はありますか?ところで、この「非同期」モードに関する出版物への言及を知っている人はいますか?それとも欠点がありますか?