問題タブ [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.
language-agnostic - OpenMPを使用した複数レベルの並列処理-可能ですか?頭いい?実用的?
私は現在、管理しているシミュレーションツール用に、C++のスパース行列/数学/反復ソルバーライブラリに取り組んでいます。既存のパッケージを使用したかったのですが、徹底的な調査の結果、シミュレーターに適したものは見つかりませんでした(flens、it ++、PetSC、eigenなどを調べました)。良いニュースは、私のソルバーとスパース行列構造が非常に効率的で堅牢になったことです。悪いニュースは、OpenMPを使用した並列化を検討していることです。学習曲線は、少し急です。
私たちが解決するドメインは、ブロック対角形式でまとめられたサブドメインに分割できます。したがって、私たちのストレージスキームは、それぞれがサブドメインに適した形式(たとえば、圧縮行ストレージ:CRS、圧縮対角ストレージ:CDS、高密度など)を持つ小さな正方行列(blocks [])の配列のように見えます。サブドメイン間の接続を説明するバックグラウンドマトリックス(現在CRSを使用)。
ほとんどの(すべて?)反復ソルバーの「ホットスポット」は、行列ベクトルの乗算演算です。これは、私のライブラリにも当てはまります。したがって、私はMxVルーチンの最適化に注力してきました。ブロック対角構造の場合、M * x=bの擬似コードは次のようになります。
ここで、background_matrixはバックグラウンド(CRS)行列、blocksはサブドメイン行列の配列、.rangeは開始インデックスから終了インデックスまでのベクトルの部分を返します。
操作はループの他の反復から独立しているため、明らかにループを並列化できます(そして並列化できます)(範囲は重複しません)。通常のシステムには10〜15個のブロックがあるため、4つ以上のスレッドが実際に大きな違いを生みます。
並列化が適切なオプションであると見なされているもう1つの場所は、各サブドメインストレージスキームのMxV操作です(上記のコードの1行目と6行目で呼び出します)。CRS、CDS、および密行列MxV操作の並列化についてはたくさんあります。通常、2つのスレッドで素晴らしいブーストが見られ、スレッドが追加されるにつれて収穫逓減が大幅に減少します。
上記のコードのブロックループで4つのスレッドが使用され、それらの各スレッドがサブドメインの解決に2つのスレッドを使用するスキームを想定しています。ただし、OpenMPを使用してスレッドのプールを管理する方法がわかりません。openmpforループのスレッド数を制限することは可能ですか?このマルチレベルの並列処理は、実際には意味のあることですか?私がここで提案したことについての他の考えはありがたいです(そして最後まで読んでくれてありがとう!)
c - X11 を静的にコンパイルするにはどうすればよいですか?
クラスター ( HECToR )で並列 C コードをコンパイルしています。
並列ジョブを対話的に実行するつもりはありませんが、私のコードには、順次実行するときに使用される X11 関数への参照がいくつか含まれています。私が使用しているクラスターは共有ライブラリをサポートしていないため、少なくともこれまで使用してきた方法では、X11 が除外されます。
X11 を静的にコンパイルするために何かできることがあるかどうか教えていただけますか?
よろしくお願いします。
ロス
algorithm - 大規模な疑似逆行列
巨大な行列のムーア・ペンローズ疑似逆行列を計算したいと思います。理想的には、2300万行1000列のマトリックスで実行したいのですが、必要に応じて、実験の一部で実行するだけで行数を400万に減らすことができます。
明らかに、マトリックスをメモリにロードしてSVDを実行しても機能しません。 ウィキペディアはクリロフ部分空間法を指摘し、アーノルディ、ランチョス、共役勾配、GMRES(一般化最小残余)、BiCGSTAB(安定化双共役勾配)、QMR(準最小残余)、TFQMR(転置なしQMR)、およびMINRES(最小残余)に言及しています。 )最高のクリロフ部分空間法の1つとしての方法。でもここからどこへ行けばいいのかわからない。そのような巨大な行列の疑似逆行列を計算することさえ可能ですか?もしそうなら、どのアルゴリズムまたはソフトウェアライブラリを使用していますか?大規模なコンピューティングクラスターを利用できるので、並列アプローチを歓迎します。
この答えは、Rパッケージbiglmを指しています。それはうまくいくでしょうか?誰かがそれを使用しましたか?私は通常Pythonで作業しますが、この特定のタスクに他の言語やツールを使用してもかまいません。
mpi - MPIプログラムを単一のシステムで実行できますか、それともクラスターでのみ実行する必要がありますか?
大学でPelicanHPCを使用してクラスター化されたネットワークにアクセスできます。InではさまざまなMPIプログラムを実行していますが、自宅では他のMPIプログラムの作成/使用を練習したいと考えています。自分のシステムでMPIプログラムを実行する方法はありますか?
(私はUbuntu Jauntyに取り組んでいます)
.net - オープン ソースまたは無料の .NET HPC 実装
Windows XP、Vista、および 7 マシンを使用してコンピューティング グリッドを作成することがどれほど実現可能かを調べようとしています。すでに Windows HPC Server 2008 が出回っていることは知っていますが、コストを考えると、基本的には頼まなければ買えないという状況でした。
私はMPI.NETを見つけましたが、これは 2 年近く更新されていないように見えるので、少し懐疑的です。
理想的には、.NET 4.0 並列ライブラリと統合するだけで、利用可能なグリッドがあり、それを処理することを認識できるように構成できるものがあればいいのにと思います。夢物語。
無料ではなく、非常に高価でなくても、グリッド環境で最新のC# コードを使用できるものはありますか?
distributed - コンドルで共有せずに依存ファイルにアクセスする
私はコンドルがジョブを実行できる 6 つの Windows マシンを持っています。ジョブを実行しているマシンで、送信されたファイルが出力を生成し、それがテキスト ファイルに配置されることがあります。そのジョブをコンドルに再送信すると、「ファイルにアクセスできません: 許可」というエラーが表示されます。出力ファイルが拒否されたため、コンドルにジョブを再送信するたびに出力ファイル名を変更する必要がありました。
私の送信ファイルはこのように見えます
test_job.sub
# ユニバース = バニラ 実行可能ファイル = C:\Progra~2\R\R-2.10.1\bin\Rscript.exe 引数 = One.R getenv = true
要件 = ARCH == "INTEL" && OPSYS == "WINNT60"
入力 = One.R
shuld_transfer_files = yes when_to_transfer_output = on_exit transfer_input_files = 2.r transhal_executable = false
出力 = test_r_out.out ログ = test_r_log.log エラー = test_r.error
列
One.R が Two.R を呼び出す
私の問題は、このマシンでジョブを実行しているすべての人が、手動共有と出力ファイル名を変更するオプションなしで、従属ファイルに直接アクセスできるはずです。
これに関するアイデアに感謝します
ありがとう、
c++ - 64 ビット マシンの Visual Studio で CUDA と OpenCV を構成する
過去 1 週間から、64 ビット Windows XP マシンの Visual Studio 2008 で OpenCV2.1 と CUDA3.1 を構成しようとしています。しかし、すべて無駄です。
OpenCV だけでも問題なく動作しています。CUDA3.1 だけでも問題なく動作しています。私は 64 ビットで CUDA3.1 を使用しています...しかし、OpenCV では、32 ビット インストールを使用しています (Source Forge で提供されているように) - エラーの可能性 ??
CUDA プロジェクトで OpenCV 設定を構成し、サンプル プロジェクトをコンパイルすると、次のファイルでエラーが発生します。
cxcore.hpp cxoperations.hpp cxcore.hpp cxmat.hpp および CUDA ビルド規則についても。
上記のファイルはすべて私が書いたものではありません。しかし、ライブラリです(私は推測します)。
64 ビット XP マシンに VS 経由で CUDA、OpenCV をインストールする方法はありますか?
c# - C#でプログラム的にScriptBlock内のパラメータオブジェクト(PSCredential)を渡します
HPCコマンドレットをプログラムで実行して、リモートコンピューター上のHPCインストールクレデンシャルを変更しようとしています。コマンドレットをローカルで実行する場合、それは非常に簡単です。
ただし、リモートPowerShellで同じことを実行したい場合は、Invoke-Commandを実行し、コマンド内のScriptBlockに資格情報を渡す必要があります。どうやってやるの?文字列ではなく、ScriptBlock内のInstallCredentialパラメーターにバインドされたオブジェクトとしてクレデンシャルを渡す必要があることを除いて、次のようになります。
java - ANT の問題: net/sf/antcontrib/antcontrib.properties
Debian Lenny サーバーにソフトウェアをインストールしようとしています。具体的には、Capture-HPC です。すべての前提条件とともに、VMWare サーバーをセットアップしました。ディレクトリで ant を実行しようとすると、次のエラーが発生します。
何が原因なのか誰にも考えがありますか? 私のアリのインストールに関する詳細は次のとおりです。
そしてbuild.xmlファイル。. .
.net - HPC 言語としての F#
F# を使用して格子ボルツマン (流体力学) コードを開発しています。現在、24 コア、128 GB メモリのサーバーでコードをテストしています。このコードは基本的に、時間発展のための 1 つの主要な再帰関数と、3D 次元空間反復のための System.Threading.Tasks.Parallel.For ループ内で構成されます。3D スペースは 500x500x500 の大きさで、1 つのタイム サイクルが永遠に続きます :)。
サーバーは 24 個のコアすべてを使用する、つまり 100% 使用すると予想します。私が観察したのは、1% から 30% の使用率です。
そして私の質問は次のとおりです。
- F# は、そのようなサーバーでの HPC 計算に適したツールですか?
- 実際の問題に CPU を 100% まで使用することは現実的ですか?
- ハイスピードアップするにはどうすればいいですか?すべてが 1 つの大きな並列 for ループにあるので、それがすべて私がすべきことだと思います...
- F# が適切な言語でない場合、どの言語ですか?
ご提案ありがとうございます。
編集: 誰かが興味を持っている場合は、喜んでコードを共有します。
EDIT2 :コードの削除されたバージョンは次のとおりです: http://dl.dropbox.com/u/4571/LBM.zip
起動ファイルは ShearFlow.fs で、ファイルの一番下には