問題タブ [hpc]
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.
appfabric - ファイルまたはデータベース クエリだけをキャッシュできる App Fabric はありますか?
各ノードに常駐する機能があります。この関数は、ファイル (データベースではなく) にアクセスするためのフォルダー パスへのアクセスを必要とします。現在、単一の共有ドライブにアクセスしないように、各ノードのフォルダーを同期しています。この同期手順を回避して、フォルダーで App Fabric キャッシュを利用することはできますか? それとも、キャッシュは正式なデータベース クエリにのみ使用されますか? どんな助けでも大歓迎です。
configuration - Hadoop ノードとコアの割り当て戦略
50 ノードのクラスターがあり、各ノードには計算用に 8 つのコアがあります。200 個のレデューサーを課す予定のジョブがある場合、パフォーマンスを向上させるための適切な計算リソース割り当て戦略は何でしょうか?
つまり、それぞれに 50 ノードと 4 コアを割り当てるのと、それぞれに 25 ノードと 8 コアを割り当てるのとではどちらがよいのでしょうか? どのような場合にどちらが良いですか?
c# - シングル スレッド プログラムの C# イベント サブスクリプションの制限
単一のスレッド化されたプログラムで並行して実行されている多くの HPC ジョブのステータスを監視しようとしています。OnJobState によって発生したイベントをサブスクライブしています。3 つのジョブだけを監視すると、イベントの状態の変化が失われ、ジョブが実行中のままになります。 .
すべてのイベントをキャッチするには、ジョブごとにスレッドが必要だと思いますが、単一のスレッド プログラムでのイベント サブスクリプションの制限に関する情報が見つかりません。
.net プラットフォームはこれをすべてキューに入れると思っていましたが、そうではないようです。
cuda - ハイパフォーマンスコンピューティングの用語:GF / sとは何ですか?
CUDAに関するこのドブ博士の記事を読んでいます
私のシステムでは、グローバルメモリ帯域幅は60GB/秒をわずかに超えています。これは、この帯域幅が128のハードウェアスレッドにサービスを提供する必要があると考えるまでは優れています。各スレッドは、多数の浮動小数点演算を提供できます。32ビット浮動小数点値は4バイトを占めるため、このハードウェア上のグローバルメモリ帯域幅が制限されたアプリケーションは、約15 GF / s、または利用可能なパフォーマンス機能のごく一部しか提供できません。
質問:GF / sは、1秒あたりのギガフロップスを意味しますか?
gpu - NVIDIA Quadro 6000 と Tesla C2075 グラフィック カードの違いは何ですか?
GPU コンピューティングを調べていますが、NVIDIA Quadro 6000 と NVIDIA Tesla C2075 グラフィックス カードの技術的/パフォーマンスの違いがわかりません。どちらも 6GB の RAM と同じ数のコンピューティング コアを備えています。違いは何ですか?カードでCUDA計算をしたい。
編集: Nvidia が、カード X は気候計算に適していると言っている場合、カード y は地震処理に適していると言っている場合、これは PR にすぎません。気候計算用に作成されたグラフィック カードはありません。カードは、単精度または倍精度の計算、または FFT などに適しています。それがまさにここでの私の質問です: 技術的な違いは何ですか? また、あるカードと他のカードでより高速な結果を得るには、どのような種類の計算を期待する必要がありますか?
performance - Fortran コードのパフォーマンスを改善するためのヒントとコツ
私の博士号の一環として。研究では、大気と海洋循環の数値モデルの開発に取り組んでいます。これらには、約 10^4 時間ステップにわたって、約 10^6 格子点の PDE のシステムを数値的に解くことが含まれます。したがって、典型的なモデル シミュレーションは、数十の CPU で MPI を実行すると、完了するまでに数時間から数日かかります。当然のことながら、結果がバイトごとに同一であることを確認しながら、可能な限りモデルの効率を改善することが重要です。
私は自分の Fortran プログラミングに非常に満足しており、コードをより効率的にするためのいくつかのトリックを認識していますが、まだ改善の余地があり、気付いていないトリックがあると感じています。
現在、使用する除算をできるだけ少なくし、リテラル定数を使用しないようにしています (非常に早い段階からこれを行うように教えられました。たとえば、実際の計算では 0.5 の代わりに half=0.5 を使用します)。超越関数はできるだけ使用しません。などなど。
他にどのようなパフォーマンスに敏感な要素がありますか? 現時点では、私はいくつかについて疑問に思っています:
1) 数学演算の順序は重要ですか? たとえば、私が持っている場合:
乗算の順序に基づいて異なる効率で評価しますか? 現在、これはコンパイラ固有のものでなければなりませんが、明確な答えはありますか? d が次数 (精度限界) に基づいて (わずかに) 異なる値を取得していることに気付きましたが、これは効率に影響しますか?
2) サブルーチン内のモジュールからこれらの配列にアクセスするのと比較して、サブルーチンへの引数として多数 (たとえば、数十個) の配列を渡しますか?
3) Fortran 95 構造 (FORALL および WHERE) と DO および IF との違いは? コードのベクトル化が大きな問題だった 90 年代にこれらが重要だったことは知っていますが、明示的な DO ループをベクトル化できる最新のコンパイラーとの違いはありますか? (私は仕事で PGI、Intel、および IBM コンパイラーを使用しています)
4) 数値を整数乗するか、掛け算するか? 例えば:
また
私は、可能な場合は常に後者を使用するように教えられてきました。これは効率や精度に影響しますか? (おそらくコンパイラにも依存します)
Fortran コードの効率を改善するために知っているトリックやヒントがあれば、議論したり追加したりしてください。他に何がありますか?上記の各コンパイラがこの質問に関連して何をするかについて何か知っている場合は、それも含めてください。
追加: ボトルネックやパフォーマンスの問題自体はありません。操作の意味でコードを最適化するための一般的なルールがあるかどうかを尋ねています。
ありがとう!
c++ - MPI 不明なデータ型を送受信する方法
C++ でアルゴリズム ライブラリを開発しました。これにより、ユーザーは、個々のアルゴリズム間でデータを共有するための独自のデータ型を実装できます (これもユーザーによって実装されます)。これは問題なく動作しますが、ライブラリ レベルで並列化を提供したいと考えています。個々のアルゴリズムは、分散メモリ マシンの異なるノードで並行して実行する必要があります。
コードを変更せずに分散および共有メモリ マシンに使用できるため、MPI を並列化に使用することにしました。残念ながら、ユーザーが実装したデータ型をノード間でどのように配布するかという問題に取り組んでいます。次の問題があります。
- データがどれほど大きくなるかはわかりません。実行ごとに変化する可能性さえあります。
- データ構造の中にどんなデータが入っているかわかりません。
- データ量は最大 1GB まで非常に大きくなる可能性があります (これは MPI では問題になりません)。
- ユーザーは、並列実行用のデータ型またはアルゴリズムの実装に違いを感じないはずです (アルゴリズムに関しては、実際には問題はありません)。
ノード間でこれらのデータを共有するためにMPIを使用する可能性はありますか、またはこの種の問題により適したアプローチが利用可能ですか? 少なくとも共有メモリ マシンで動作するソリューションが必要ですが、共有および分散メモリ マシンでコードを変更せずに動作するソリューションが必要です。
java - HPC + Oracle Connections =災害のレシピ?
HPC(ハイパフォーマンスコンピューティング)クラスターでJavaアプリケーションを実行しています。アプリケーションは、Oracle11.2.0データベースへのJDBCシン接続を確立します。これがクラスター上にある場合、多数の接続が同時に作成および維持されます(ただし、データベースとの実際の対話は比較的最小限です)。同時接続の潜在的な最大数は4500になります(ただし、これほど多くなることはありません)。
アプリケーションは、次のエラーで失敗する125番目の並列接続付近まで正常に動作します。このエラーメッセージは、その後の接続試行でも持続します。
これは、データベースに許可される接続数の制限と関係があると思いますか?または、これはデータベースの負荷に関連していますか?
より多くの接続を並行して行うことができるように、これをどのように解決できるかについて誰かが考えていますか?
よろしくお願いします。
cluster-computing - CentOSはCondorをサポートしていますか?
Condorをミドルウェアとして使用してHPCクラスターを作成する予定です。CentOSはOSとして良い選択ですか?つまり、CentOSはコンドルをサポートしていますか?インストールプロセスに役立つチュートリアルはありますか?
よろしく、