問題タブ [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 - 10 億の数値の中央値を計算する
10 億の数字と 100 のコンピューターがある場合、これらの数字の中央値を特定する最善の方法は何ですか?
私が持っている1つの解決策は次のとおりです。
- セットをコンピュータ間で均等に分割します。
- それらを並べ替えます。
- 各セットの中央値を見つけます。
- セットを中央値で並べ替えます。
- 最低の中央値から最高の中央値まで一度に 2 つのセットをマージします。
最初にm1 < m2 < m3 ...
マージSet1
しSet2
、結果のセットで (マージされた) の中央値よりも小さいすべての数値を破棄できますSet12
。したがって、いつでも同じサイズのセットがあります。ちなみに、これは並行して行うことはできません。何か案は?
boost - Boost :: Asio forC++の問題
私の学士論文では、大きな整数を因数分解する(素因数分解を見つける)ためのアルゴリズムの分散バージョンを実装しています。これには、RSA暗号システムのセキュリティなどのアプリケーションがあります。
私のビジョンは、クライアント(LinuxまたはWindows)がアプリケーションをダウンロードし、いくつかの数値を計算することです(これらは独立しているため、並列化に適しています)。番号(あまり頻繁には見つかりません)は、これらの番号を収集するためにマスターサーバーに送信されます。マスターサーバーによって十分な数が収集されると、残りの計算が実行されますが、これは簡単に並列化することはできません。
とにかく、技術に。クライアントがマスターサーバーと通信するために、Boost::Asioを使用してソケットクライアント/サーバーの実装を行うことを考えていました。LinuxとWindowsの両方でコンパイルしたいので、Windowsはどこからでも始めるのに適した場所だと思いました。そこで、 BoostのGetting Startedページに記載されているように、Boostライブラリをダウンロードしてコンパイルしました。
ブートストラップ
。\bjam
それはすべてうまくコンパイルされました。次に、チュートリアルの例の1つであるAsioのclient.cppをコンパイルしてみます(ここで..編集:制限のためにリンクを投稿できません)。私は次のように、Microsoft VisualStudio2008のVisualC++コンパイラを使用しています。
cl / EHsc / ID:\ Downloads \ boost_1_42_0 client.cpp
しかし、私はこのエラーを受け取ります:
/out:client.exe
client.obj
リンク:致命的なエラーLNK1104:ファイルを開くことができません'libboost_system-vc90-mt-s-1_42.lib'
誰かが何が間違っている可能性があるのか、または私がどのように前進できるのかについて何か考えがありますか?私は、c ++用の単純なクライアント/サーバーソケットプログラムを動作させるために、ほぼ1週間努力してきましたが、運がありませんでした。深刻な欲求不満が始まります。
前もって感謝します。
architecture - 分散メッセージの順序付け
メッセージの順序付けに関するアーキテクチャ上の質問があります。この質問では、トランスポートは無関係なので、指定しません。
Web サイト、CRM、ERP の 3 つのシステムがあるとします。この例では、ERP がデータ所有権の「マスター」システムになります。Web サイトと CRM の両方が、新しい顧客メッセージを ERP システムに送信できます。次に、ERP システムは顧客を追加し、新しく割り当てられたアカウント番号で顧客を公開して、Web サイトと CRM がアカウント番号をローカルの顧客レコードに追加できるようにします。これは非常に簡単なプロセスです。
次は注文に移ります。CRMまたはWebサイトがERPシステムで注文するには、アカウント番号が必要です。ただし、顧客が口座番号を持っていない場合でも、CRM はユーザーが注文することを許可します。(この例では、CRM の動作を変更できないと想定しています) これにより、CRM でアカウント番号が更新される前に、ユーザーが新しい顧客を作成して注文できる可能性が生じます。
このシナリオを処理する最善の方法は何ですか? 注文メッセージをアカウント番号なしで送信し、エラー キューに入れるのが最善でしょうか? CRM エンドポイントにメッセージを保持させ、CRM でアカウント番号が更新されるまで待つ方がよいでしょうか? たぶん、私が考えていなかったものとはまったく違うものでしょうか?
助けてくれてありがとう。
r - SNOW クラスターを含む R コードをプロファイリングする方法
foreach、DoSNOW、および解決する SNOW ソケット クラスターを使用しているネストされたループがあります。非常に非効率的なことをしていないことを確認するには、コードのプロファイリングをどのように行うべきですか。
また、Snow クラスター内のマスターとノードの間のデータ フローを測定する方法はありますか?
ありがとう、
ジェームズ
r - SNOW (またはマルチコアなど) を使用しているときに、計算の状態をどのように保存しますか?
厳しい経験から、長い計算の状態をディスクに時々保存して、何かが失敗した場合に後でそれらを開始できると便利であることがわかりました。R の分散計算パッケージ (SNOW やマルチコアなど) でこれを行うことはできますか?
マスターが非透過的な方法でスレーブから物を収集しているため、これがどのように行われるかは明らかではないようです。
cluster-computing - では、分散型とクラスター化の違いは何でしょうか?
この二つの言葉はよく耳にしますが、
しかし、常に混乱しています。
私の推測:
- 分散サーバーの場合、各サーバーには提供する独自の一意のデータがあります
- クラスタ化されたサーバーの場合、各サーバーは、同期するのに十分な時間を与えられた同じデータを持っていると想定されています
それが違いですか?
java - RMI テーブルにそのようなオブジェクトがありません、サーバー通信エラー
私の目標は、サーバーとクライアントを同時に起動する分散コンピューティング プログラムを作成することです。いくつかのマシンにインストールして、すべてのマシンが相互に通信できるようにする必要があります。つまり、マスター ノードと 5 つのスレーブ ノードがすべて 1 つのアプリケーションから通信できるようにする必要があります。
私の問題は、unicastRef を適切に使用できないことです。同じポートですべてを起動することに問題があると考えています。見落としているより良い方法はありますか?
これは私のコードの一部です(重要な部分)
試す {
これは私のメインクラスです(上記)
これはサーバークラスです(以下)
public RMIServer() { }
何が欠けているのか、何が見落とされているのかわかりませんが、出力は次のようになります。
5225 でリッスン 8776 でリッスン サーバー準備完了 私たちはスレーブです 8776 でリッスン java.rmi.NoSuchObjectException: そのようなオブジェクトはありません.executeCall(StreamRemoteCall.java:233) の sun.rmi.server.UnicastRef.invoke(UnicastRef.java:359) の sun.rmi.registry.RegistryImpl_Stub.lookup(不明なソース) の Main.main(Main.java:62) )
62行目はこれ ::: Call ss = (Call) rr.lookup("FILLER");
c# - .Net フレームワークを使用した分散コンピューティングの問題へのアプローチ
複数のコンピューターにまたがる大きなファイルに特定の計算を分散するプロジェクトのプログラミングに興味があります。分散コンピューティングの必要性は、私が実際のコンピューティングを行うために使用しているソフトウェアのクラッシュと不安定な性質から生じます。そのため、一部のコンピューターではクラッシュする可能性がありますが、他のコンピューターでは確実に機能します。私がこれまでに持っているアイデアには次のものがあります。
仕事に適しているのはどれですか?私が知っておくべき他のアイデアはありますか?
また、信頼できる分散コンピューティングの C# フレームワークをお勧めできる場合は、それが役に立ちます。
java - テラコッタとは何ですか?
- テラコッタとは何ですか?
- どのようなサービスを提供していますか?
- それはどのような問題を解決しますか?
- Terracottaが解決する問題と同様の問題を解決する他の製品は何ですか?
hadoop - 分散コンピューティングはどこから始めればよいですか?
分散コンピューティングの技術を学ぶことに興味があります。Java開発者として、私はおそらくHadoopから始めたいと思っています。そもそも本・チュートリアル・記事をお勧めしていただけませんか?