問題タブ [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.
c++ - 分散アルゴリズムプログラミング用のヘルパーライブラリ?
分散アルゴリズムをコーディングするとき、プロセッサ、レジスタ、メッセージ、リンクなどの抽象的なものをモデル化するためにライブラリを使用しますか?それを行うライブラリはありますか?
たとえば、自己安定化最小スパニングツリーアルゴリズムのような自己安定化アルゴリズムについて考えています。
c++ - 信頼できないクラスタにプログラムを配布する方法は?
私が探しているのは、次のいずれか/すべてです。
- ワーカー障害の自動検出 (たとえば、コンピューターの電源がオフになっている)
- 特定の IP アドレス範囲で実行中のすべての (Linux) PC の検出 (コンピューターがオンの場合)
- ...そして自動ワーカー生成 (ping+ssh?)
- ワーカーが他のプロセスの速度を落とさないように負荷を分散する (いいね?)
- ある種のメッセージパッシング
...そして車輪の再発明をしたくありません。
C++ ライブラリ、bash スクリプト、スタンドアロン プログラムなど、すべて大歓迎です。
ソフトウェアの例を挙げるなら、上記の機能のうち、どのようなものか教えてください。
architecture - EagerReadDerivation: メリットとコストのバランスを取る
これから取り組む予定の Silverlight アプリケーションのために、ドメイン駆動設計と分散 DDD について勉強しています。EagerReadDerivation パターンは、アプリケーションのスケーラビリティを向上させるように見えますが、複雑さが増します。
アプリケーションには、複数のサービスで処理する必要がある大きなテキスト ファイル (100,000 行以上) をアップロードする何千ものユーザーがいる可能性があります。また、"what-if" シナリオ (ParallelModel 風) もサポートする必要があります。モデル駆動型のアプローチは複雑さを管理するのに役立つと信じているので、データベースからロジックをできるだけ排除したいと考えています。
私の質問は、EagerReadDerivation パターンを試みた開発者に向けたものです。それはあなたにとって報われましたか?また、アプリケーションをさらに複雑にする価値はありましたか?
c++ - C++/分散システム/ネットワークでのプロジェクトに関する提案
C ++でのコーディングを含み、ネットワーク(プロトコルスタック)に関連する2〜3か月のプロジェクト(フルタイム)に取り組みたいと思います。私は自分のネットワークスタックを書くことを考えていましたが、それはそれほど面白くないようです。ネットワークパフォーマンスに関しては、分散システム/GPUにtcp/ipのようなスタックを実装するというアイデアを見つけるのは素晴らしいことです。私はこれを3時間グーグルしてきましたが、2か月を費やす価値があると思われるものは何も見つかりませんでした。netperfのようなオープンソースプロジェクトは私の範囲を超えているようです。自分のペースで取り組むことができる、比較的小さなスタンドアロンのプロジェクトが本当に欲しいです。このプロジェクトの目的は、プロジェクトでの私の自由な時間を活用し(後でオープンソースライセンスの下でリリースする可能性があります)、C ++、ネットワーク、並列プログラミング、GPU、
アイデアを見つけているときに障害にぶつかったようです(または、正確に何をすべきかについてあまり明確ではないかもしれません)。だからどんな提案も本当にありがたいです。ありがとう!
concurrency - 並行アプリケーションと分散アプリケーションをプログラミングするための適切なハードウェア設定は何ですか?
独自の uber Blade システムを構築するお金はありませんが、同時実行および分散プログラミング (CCR/DSS、Hadoop、Project Voldemort などを考えてください) に取り組みたいと考えています。
現在、4 GB の Q6600 と別の HDD を持っていますが、それだけです。マルチスレッド プログラムを作成することはできますが、分散ファイル システムやキー値ストアを適切にテストして、関連するボトルネック (ディスク アクセス、ネットワークなど) を探すことができません。
誰にもいくつかの推奨事項がありますか?小型の安価なボックスをいくつか購入して、ミニ ネットワークをセットアップしますか? それとも、2 つの i7 と ESX とシミュレートされたネットワークを備えた単一のボックスでしょうか?
編集:
私は現在、VirtualBox と VmWare を使用していますが、これでは十分とは思えません。間違っている場合は訂正してください。たとえば、ハード ドライブがロックする可能性があります。同じ hdd コントローラーを介してチャネリングされます。ネットワークは完全に仮想であるため、ここでも実際のケース テストはありません。
私が仮想化の道に進む場合、できるだけ「実生活」に近づけるために何をお勧めしますか?
java - クラスタ共有キャッシュ
複数の JVM 間でキャッシュを共有できる Java フレームワークを探しています。
私が必要とするのは、 Hazelcastのようなものですが、「分散」部分はありません。アイテムをキャッシュに追加して、他の「グループ メンバー」キャッシュに自動的に同期できるようにしたいと考えています。可能であれば、信頼できるマルチキャスト (または同様のもの) を介してキャッシュを同期したいと考えています。
私はShoalを見てきましたが、悲しいことに、「分散状態キャッシュ」は私のニーズに対して不十分な実装のようです.
私はJBoss Cacheを見てきましたが、私がしなければならないことには少しやり過ぎのようです。
私はJGroupsを見てきました。これは、私がしなければならないことにとって最も有望なツールのようです。JGroups の経験がある人はいますか? できれば、共有キャッシュとして使用した場合は?
他の提案はありますか?
ありがとう !
編集: Hazelcast と Infinispan のどちらかを決定するのに役立つテストを開始しています。すぐに回答を受け入れます。
EDIT : 要件が突然変更されたため、分散マップはもう必要ありません。低レベルのシグナリング フレームワークには JGroups を使用します。助けてくれてありがとう。
c++ - C++ 分散プログラミング
分散インメモリ キャッシュ、分散タスク、パブリッシュ/サブスクライブ メッセージング用のライブラリはありますか? 私は Java で Hazelcast を使用しましたが、似たようなものが欲しいです。
Memcached がメモリ内キャッシュであり、分散されていることも知っていますが、メッセージングとリモート タスクがありません。
従来の RPC とソケット プログラミングを使用せずに、サーバーのクラスターを調整するための何かが必要なだけです。
c# - 分散コンピューティングについてさらに学ぶ
分散コンピューティングとその方法についてもっと学びたいと思っています。主に C++ ですが、C# にも興味があります。
誰かがいくつかのリソースを推奨できますか? このトピックについてほとんど、またはまったく知らないので、どこから始めればよいですか?
ありがとう。
java - 大規模クラスターでの ehcache のパフォーマンス
Ehcache の複製キャッシュを使用したいと思います。最初は Hibernate の 2 番目のレベルのキャッシュのバックエンドとして、次に任意のデータのキャッシュとして使用します。
memcached のような分散キャッシュがどのように機能しているかは知っており、大規模なクラスターに拡張できることも知っていますが、Ehcache レプリケーションが大規模なクラスターでどのように動作するかわかりません。
- 誰かが何らかの情報または何らかのベンチマークへのポインタを持っていますか?
RMI、JGroups、JMS、Terracotta など、多くのレプリケーション戦略を使用できることがわかりました。RMI と Terracotta が最も人気があるようです。
- 大規模なクラスターでそれらを比較するとどうなりますか?
多くのノード (数十など) を追加すると、レプリケーションによってパフォーマンスが低下しますか?
c# - .net分散グリッドコンピューティングの移行、ライブラリに関する推奨事項、アーキテクチャ
私はc#マルチスレッドモンテカルロシミュレーションを持っています、アプリケーションはすでに独立して実行されるタスクに分割できるように構造化されています、TaskControllerはタスクを実行し、中間結果を集約し、収束(早期終了基準)をチェックしてから最終結果を返します、これは現在ThreadPoolを使用して実装されています。
この計算を支援するために、複数のコンピューターを活用したいと思います。IISを使用するための承認またはインフラストラクチャがありません(これはポリシーは変更されません)が、たとえばNetTcpBindingエンドポイントバインディングでWCFを使用できます。サーバー間でこの通信をテストし、適切なアクセス許可と動作を持っています。
まず、1つのマスターexe(コンソールアプリ)と複数のスレーブを専用ワーカーとして他のサーバーに配置することを考えています(これらはexeですか?それともWindowsサービスですか?)、最終的にはこれを数百のワークステーションで実行するように設定できます(同様に)サーバーとして)アイドル時間中(またはスクリーンセーバーがアクティブなとき)の社内。
これは自分で書くこともできますが、コミュニケーションを処理する必要があります、1、2ウェイ?早期終了(中間コンバージェンス結果チェック)、不要になったタスクのキャンセル、作業の展開、作業の展開に使用できる準備が整ったマシンの検出、ワークステーションがアイドル状態でなくなった場合の作業の調整/一時停止?分散システムに入る他のすべて?
マスター(タスクコントローラー)がすべてのスレーブワーカーのアドレス(ip)を知っていて、作業を行うように指示する必要がありますか(使用可能な場合)、またはスレーブワーカーがマスターアドレスを知っているだけで、そうするか、コミュニケーションは双方向に流れる必要がありますか?これは24時間制で実行され、さまざまなビジネス地域をサポートするために1日あたり約9回の実行が開始されます。
この取り組みに役立つ.netグリッド/分散ライブラリの推奨事項とアーキテクチャに関するアドバイスを探しています。
アップデート
次のいずれかを使用した経験はありますか?
または、JavaSpaces、.netのJiniを使用したか、同等の.netテクノロジーを見つけました
ありがとう