問題タブ [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.
hpc - リソースが利用可能になるまでHPCタスクを再試行し続けます(Windows HPC Server 2008 R2 SP3)
HPCタスクは成功するか失敗するかのどちらかですが、「後で試す」ことをスケジューラーに戻すにはどうすればよいですか。失敗を使用してタスクを再送信できますが、何かが壊れているために失敗したかどうかを判断する方法が必要です(あきらめます)。または、このタスクが別のタスクを待機しているため、すぐに再試行してください(エラーが発生するか、正常に完了するまで試行を続けてください)
HPC APIなどを使用してこれを実現する方法はありますか?ゼロ以外のものは失敗であり、ゼロは成功であると私が聞いたことから、それだけです。確かに、この「後で試す」動作を実現するための優れた方法があるはずです。
バックグラウンド
最初のタスクが他のタスクを実行しているときに、最初のタスクが十分なデータを処理して開始できるようになるまで待機するという点で、それらの間に複雑な相互依存関係がある単一のジョブで多数のHPCタスクを実行しようとしています(カスケード実行のようなものですが、簡単な順序ではないため、HPCで依存関係を定義することはできません)。
当初、私はこれらの複数のタスクを複数のコア間で共有して、メインタスクが関心のあるタスクを完了するのを待っている間にスリープできるようにしようとしていました。Windowsがプロセスをタイムシェアする方法と同様です。HPC(設計上!)ではコアごとに1つのタスクしか許可されないため、8コアのマシンを使用している場合は、一度に8つのタスクしか実行できないことが明らかになりました。
解決策は、バッチファイルなどを使用して複数のプロセスを生成することであるように見えますが、そのパスを進む前に、上記の質問が実行可能かどうかを知りたいと思います。
c# - HPC で SOA リクエストを最適化する方法
HPC を使用してシミュレーションを行いたいので、SOA を使用します。いくつかのサンプル資料から次のコードがあり、それを変更しました (これを最初に追加しました)。現在、最適化/パフォーマンスの低下の問題に遭遇しました。この基本的なサンプルは、サービス メソッドのクエリを想定していません。このメソッドは、パラメーターで取得した値を返します。ただし、私の例は遅いです。4 コア プロセッサと 1Gb ネットワークを備えた 60 台のコンピューターがあります。メッセージ送信の最初のフェーズには約 2 秒かかり、その後、戻り値が返されるまでさらに 7 秒待たなければなりません。すべての値が同時に最小またはそれ以上になります。私が抱えているもう1つの問題は、セッションオブジェクトを再利用できないことです.
BrokerClient または DurableSession オブジェクトを再利用できますか?
このメッセージ パッシングのプロセス全体を高速化するにはどうすればよいですか?
2 番目のバージョンでは、DurableSession の代わりに Session を使用しています。これはうまく機能していますが、Session の再利用に問題があります。
EndRequest の 2 回目の実行中に例外が発生しました。サーバーは意味のある応答を提供しませんでした。これは、コントラクトの不一致、時期尚早のセッション シャットダウン、または内部サーバー エラーが原因である可能性があります。
c++ - Boost::HPC の邪魔になる
boost::intrusive
ライブラリはハイ パフォーマンス コンピューティングにどの程度適していますか? コピー不可、割り当て不可のクラスにコンテナーを使用したい。で通常のSTLを使用する予定でしたshared_ptr
。boost::intrusive
も同じ目的で使用できることがわかりました。だから私の質問は、彼らは本当に効率的ですか?
shared_ptr
型を含む STL コンテナーと のboost::intrusive
どちらを使用するかの選択肢があるとしたら、どちらを選びますか?
tree - 分散ファイルシステム上のファイルのトラバース
私は数億のファイル(数ペタバイト)のファイルシステムを持っており、statが返すほとんどすべてのものを取得して、ある種のデータベースに保存したいと考えています。現在、中央キューからディレクトリ名が供給されるMPIプログラムと、統計呼び出しでNFSを非難するワーカーノード(これはあまり努力せずに処理できます)があります。次に、ワーカーノードはpostgresを押して結果を保存します。
これは機能しますが、非常に遅いです。最新の30ノードクラスターでは、1回の実行に24時間以上かかります。
一元化されたキューを使用する代わりに、ディレクトリ構造を分割するためのアイデアはありますか(このための正確なアルゴリズムはNP困難であるという印象を受けています)。また、postgresをいくつかのルーターを使用したMongoDBの自動シャーディングのようなものに置き換えることを検討しています(postgresは現在大きなボトルネックになっているため)。
私は、この設定をどのように改善できるかについての一般的なアイデアを探しています。
残念ながら、2.6カーネル監査サブシステムのようなものを使用することは、このファイルシステムにヒットするすべてのマシンでそれを実行することは(政治的な方法で)非常に難しいため、おそらく問題外です。
重要な場合は、このファイルシステムを使用するすべてのマシン(数千台)がLinux2.6.xを実行しています。
これの実際の主な目的は、特定の日付より古いファイルを見つけて、それらを削除できるようにすることです。また、ファイルシステムがどのように使用されているかに関する一般的なデータも収集したいと思います。
optimization - デスクトップ マシン用とスーパーコンピューター用に記述されたコードの違いは何ですか?
仮説的に言えば、私の科学的研究が (デスクトップ上での) 関数/モジュール/サブルーチンの開発につながるとしたら、それをスーパーコンピューター (分子をシミュレートする可能性がある) 上で実行される大規模なシミュレーションに組み込むには、何を知る必要がありますか? 、流体、反応など)?
私の印象では、可能な場合は特定のライブラリ (BLAS、LAPLACK など) を利用し、アルゴリズムを修正し (反復を減らし)、プロファイリングし、並列化し、メモリ、ハードディスク、プロセッサの使用/アクセスを考慮する必要があります。 「コードを最適化したいのならやらないでください」という格言を知っていますが、効率的なコードを書くことについて学ぶことに興味があるなら、どのような参考文献が利用できるでしょうか?
この質問は言語にとらわれないと思いますが、生体分子シミュレーションや気候モデリングなどの多くの計算パッケージが Fortran のあるバージョンで書かれているため、おそらくこの言語が私の関心の対象になるでしょう (そして、私は Fortran でかなり広範囲にプログラミングしました)。 77)。
python - MS HPC Server 2008 R2 の MPI スタックを使用して mpi4py を正常にコンパイルするにはどうすればよいですか?
つまり、Python 用の MPI ラッパーが必要です。
mpi4pyがあることは知っています。現在の作業では、Python と Windows を (ほとんど) 使用しています。Microsoft HPC Cluster Pack を使用して、Win 2008 Server を実行するいくつかのかなり「強力な」マシンにアクセスしたいと考えています。Win の経験に加えて、MPI などの *nix の経験が少しありますが、それはこの問題のかなり重要な点です。
Python Tools for Visual Studioに出くわしたとき、mpi4py への関心が新たになりました。それはいくつかの真剣に素晴らしいものです。Visual Studio と Python のファンなら誰でも試してみてください。良い仕事、そして素晴らしいデバッガー。
PTVS のドキュメント ページには、mpi4py のインストールは簡単であると記載されています...そして ActiveState Python の場合、それは本当のようです。ただし、ActiveState の Python を使用せず、代わりに python.org の「通常の」Python ディストリビューションを使用する場合は、少し運が悪いようです。
私の開発マシンは、Win7 64 ビットと Python 2.6 を搭載したラップトップで、64 ビットと 32 ビットの両方のフレーバーがあります。MS HPC Pack 2008 R2 MS MPI および SDK をインストールしました。私は Visual Studio 2008 と 2010 を持っており、すべてに忠実にパッチが適用されています。
バイナリ インストーラーはなく、Unix MPI がリンク先の MPI バージョンに対して非常にうるさいことを知っていたので、独自の mpi4py を構築したいと考えました。mpi4py は基本的に、Python 呼び出しを MPI ライブラリにバインドする MPI .dll (実際には .pyd) に依存しています。
mpi4py の easy_installing とそのライブラリのビルドが失敗しました - MPI ライブラリを指すことができません。OK、問題ありません。mpi4py tarball をダウンロードして展開し、正しいフォルダーを指すようにmpi.cfgファイルを変更しました。
MS MPI インストーラーは、パックの正確なインストール場所を指す環境変数 CCP_HOME を登録します。「CCP」という名前は、Microsoft Compute Cluster Pack と呼ばれていた時代から残っているに違いありません)。これを元の mpi4py 開発者に渡す必要があります。
この後、コンパイルは問題なくパスしますが、リンクできません。未解決の外部が 3 つあります。
HPC 2008 R2 の MS MPI msmpi.lib はこれらを実装していないようで、MPI.pyd をビルドできません。
mpi4py C ソース ファイルでこれらをコメント アウトすることもできますが、これは正しいパスではないと思います。
前もって感謝します!
python - LSFによって4つのコアが割り当てられたクラスターでPythonは12CPUをどのように確認できますか?
LSFを使用してリソースが割り当てられているLinuxクラスターにアクセスします。これは一般的なツールであり、Scali(http://www.scali.com/workload-management/high-performance-computing)から提供されていると思います。インタラクティブキューで、コアの最大数を要求して取得しました。4.しかし、Pythonのマルチプロセッシングモジュールが認識するCPUの数を確認すると、その数は12であり、ノードに割り当てられた物理コアの数です。マルチプロセッシングモジュールには、LSFが課すべき/課すであろう境界を尊重する問題があるようです。これはLSFまたはPythonの問題ですか?
parallel-processing - Application based(which is used) OpenMPI
Please help me to find some working application which is using openmpi. I need any name of application which have widely/worldwide usage and based on openmpi (using it). At least the name of that kind application will be enough.
Thanks
parallel-processing - MPI を使用しない場合
これは、MPI の特定の技術コーディングの側面に関する質問ではありません。私は MPI の初心者であり、ライブラリを間違った方法で使用して自分を馬鹿にしたくないので、ここに質問を投稿します。
私の知る限り、MPI は分散メモリ モデルで並列アプリケーションを構築するための環境です。
非常に時間のかかる操作を行うためだけに、Infiniband と相互接続されたシステムがあります。私はすでにそれを並行して実行するアルゴリズムを作成しているので、実際には MPI を使用して Infiniband を介して複数のノード間でデータ (中間ステップの結果) を送信しているだけです。
MPI を正しい方法で使用していますか? それとも、システムの本来の意図を曲げていますか?
google-app-engine - Google App Engineで並列アプリケーション(ハイパフォーマンスコンピューティング)を実行することは可能ですか?
HPCアプリケーションでGoogleAppEngineを使用した人はいますか?並列処理は可能ですか?Java +スレッドを使用して(少なくとも理論的には)並列処理を行うことができますが、いくつのスレッドを取得できますか?それはどれくらい効率的ですか?