計算科学

科学的問題を解決するためにコンピュータを使用する科学者のためのQ&A

3
GPGPUアクセラレーション用のNvidia K20XとGeForce Titan
アカデミックコンピューティング、特にDGEMMコンポーネント用のこれら2つのグラフィックカードの違いを理解しようとしています。 生の統計を見ると、どちらも同じGK110チップを備えており、事実上すべてのカテゴリで同等の統計があり、コアアーキテクチャも同じだと思います。割引前のK20Xは、タイタンの約4倍のコストです。効率の観点からは、K20XよりもTitanを使用する方が理にかなっているようです。 ここで違いを理解するのに苦労しています、誰かが状況を解明できますか? メモとして、私はこれらのカードをラックサーバー用に購入し、基本的にカードが死ぬまで完全に傾けて実行することを検討しています。ただし、1つのジョブで複数のGPUを使用する効率が特に重要だとは思いません。

2
GPGPU計算用の線形ソルバーの選択(OpenCL)
私はすでに、共役勾配法を使用してGPUおよびOpenCLを使用して熱伝達の問題を解決するための有限要素法の実用的なソリューションを開発しました。この方法の主な欠点は、メモリの需要が高いことです。さらに、グラフィックカードの場合、メモリは非常に限られていることがよくあります。2つのオプションが表示されます。 サブドメインを作成し、メッシュの一部をホストメモリと交換する 多正面法を使用する 特定のアーキテクチャを考慮する必要があります。スワッピングは非常に高価になる可能性があります。CGメソッドはGPGPUコンピューティングのコンテキストで人気がありますが、CGとマルチフロンタルメソッド(GPGPUの場合)の比較は見つかりません。マルチフロンタル法はCGよりも高速ですか?これは一般的な質問ですが、実際にはまだ実装に依存しています。

3
正規分布の有限混合からサンプルを引きますか?
Pr(θ|data)=∑i=1kwiN(μi,σ2).Pr(θ|data)=∑i=1kwiN(μi,σ2).\Pr(\theta| \text{data} ) = \sum_{i=1}^k w_i N(\mu_i, \sigma^2).θθ\thetaθ∼Pr(θ|data)θ∼Pr(θ|data)\theta\sim\Pr(\theta|\text{data})iiiiii{wi}{wi}\{w_i\}θ∼N(μi,σ2)θ∼N(μi,σ2)\theta\sim N(\mu_i, \sigma^2)。このフォームの後方からサンプルを描画する効率的な方法はありますか?

3
Hartree-Fock方程式を繰り返し解くと収束するのはなぜですか?
時間に依存しない電子シュレディンガー方程式を解くハートリーフォック自己無撞着場法では、スピンの選択に関して外部場の電子系の基底状態エネルギーを最小化しようとします軌道、。 { χ I }E0E0E_{0}{ χ私}{χ私}\{\chi_{i}\} これを行うには、1電子ハートリーフォック方程式 ここで、は電子スピン/空間座標、は軌道固有値、はFock演算子(1電子演算子) 、 (ここでは総和が核に渡っており、は核Aの核電荷であり、は電子と原子核間の距離)。XIIε F I fは iが=-1f^私χ (x私)= ε χ (X私)f^私χ(バツ私)=εχ(バツ私)\hat{f}_{i}\chi(\mathbf{x}_{i})=\varepsilon\chi(\mathbf{x}_{i})バツ私バツ私\mathbf{x}_{i}私私iεε\varepsilonf^私f^私\hat{f}_{i} ZAriAiAV H F if^私= − 12∇2私− ∑A = 1MZあr私+ VH F私f^私=−12∇私2−Σあ=1MZあr私あ+V私HF\hat{f}_{i} = -\frac{1}{2}\nabla^{2}_{i}-\sum_{A=1}^{M}\frac{Z_{A}}{r_{iA}}+V^{\mathrm{HF}}_{i}ZあZあZ_{A}r私r私あr_{iA}私私iああAVH F私V私HFV^{\mathrm{HF}}_{i}は、システム内の他のすべての電子によって電子感じる平均電位です。以来、スピン軌道に依存している、他の電子の、我々はフォックオペレータはそれの固有関数に依存していると言うことができます。A. SzaboとN. Ostlundによる「Modern Quantum Chemistry」、54ページ(初版)には、「Hartree-Fock方程式(2.52)は非線形であり、反復的に解かなければならない」と書かれています。私は私の研究の一部としてこの反復解の詳細を研究しましたが、この質問については、メソッドの基本構造を述べることを除いて、それらは重要ではないと思います:V H F I χ jを私私iVH F私V私HFV_{i}^{\mathrm{HF}}χjχj\chi_{j} スピン軌道初期推定を行い、を計算します。V H F I{ χ私}{χ私}\{\chi_{i}\}VH F私V私HFV_{i}^{\mathrm{HF}} これらのスピン軌道について上記の固有値方程式を解き、新しいスピン軌道を取得します。 自己矛盾のない状態になるまで、新しいスピン軌道でこのプロセスを繰り返します。 …

2
SVDを安定させるためにどれだけの正則化を追加しますか?
インテルMKLのSVD(dgesvdSciPyを介して)を使用していて、マトリックスの条件が悪い/フルランクではない場合float32と精度を変更すると、結果が大幅に異なることに気付きましたfloat64。結果がfloat32-> float64変更の影響を受けないようにするために追加する必要がある正則化の最小量に関するガイドはありますか? 際、特に、、Iはその参照L ∞ノルムV T Xの Iとの間の精度を変更した場合約1による移動とを。AのL 2ノルムは10 5であり、合計784のうち約200のゼロ固有値があります。A = UD VTA=UDVTA=UDV^{T}L∞L∞L_\inftyVTバツVTXV^{T}Xfloat32float64L2L2L_2あAA10510510^5 上のSVDをやっでλ = 10 - 3は違いワニスを作りました。λ I+ AλI+A\lambda I + Aλ = 10− 3λ=10−3\lambda=10^{-3}

3
C ++でLAPACKを使い始める方法は?
私は計算科学が初めてで、統合、補間、c ++でのRK4、Numerovなどの基本的な方法をすでに学びましたが、最近、教授から、LAPACKを使用して行列に関連する問題を解決する方法を学ぶように求められました。たとえば、複雑な行列の固有値を見つけるようなものです。私はサードパーティのライブラリを使用したことがなく、ほとんど常に自分の関数を記述しています。私は数日間探し回っていましたが、素人向けのlapackガイドは見つかりませんでした。それらはすべて私が理解できない言葉で書かれており、すでに書かれた関数を使用することがなぜこれほど複雑になるのか、私にはわかりません。彼らはzgeev、dtrsvなどの言葉でいっぱいで、私は不満を感じています。私はこの疑似コードのようなものをコーディングしたいだけです: #include <lapack:matrix> int main(){ LapackComplexMatrix A(n,n); for... for... cin>>A(i,j); cout<<LapackEigenValues(A); return 0; } ばかげているのか、アマチュアなのかわかりません。しかし、繰り返しますが、これはそれほど難しいことではありませんか?LAPACKとLAPACK ++のどちらを使用すればよいかわかりません。(私はc ++でコードを書いていて、PythonやFORTRANの知識がありません)、そしてそれらをインストールする方法。
10 lapack 

1
高速で、後方安定(左)
非常に少数の退化したケース(&lt; 0.1 %)で、多くの3×33×33\times3行列逆行列(ニュートン反復極分解の場合)を計算する必要があります。&lt;0.1%&lt;0.1%<0.1\% 明示的な逆行列(行列のマイナーを行列式で割ったもの)は機能しているようで、約32〜40の融合フロップです(行列式の逆数の計算方法によって異なります)。detスケールファクターを考慮しない場合、18のフューズフロップのみです(9つの要素はそれぞれab-cd、2のフューズフロップの形式です)。 質問: 18(任意のスケール)未満または32(1の逆数を考慮した適切なスケール)の融合フロップを使用して逆を計算する方法はあり3×33×33\times 3ますか? 3×33×33\times 3行列の逆安定左逆行列を計算するための経済的な方法(〜50 fフロップを使用)はありますか? 単精度のフロート(iOSゲーム)を使用しています。後方安定性は私にとって興味深い新しい概念であり、実験してみたいと思います。ここだ記事の考えを引き起こしました。


1
正定対称行列の逆行列とその行列式を計算する最速のアルゴリズムは何ですか?
正定対称行列が与えられた場合、逆行列とその行列式を計算するための最速のアルゴリズムは何ですか?私が興味を持っている問題については、行列の次元は30以下です。 高い精度とスピードが本当に必要です。(数百万行列が実行されます) 行列式が必要です。各計算では、iverse行列の要素が1つだけ必要です。ありがとう!

5
ログ-ログスペースの統合
私は一般に、ログログスペースでよりスムーズでより適切に動作する関数を使用しています。そのため、補間/補外などを実行し、非常にうまく機能します。 これらの数値関数をログ-ログスペースに統合する方法はありますか? つまりscipy.integrate.cumtrapz、 st を見つけるために、ある種の単純な台形ルールを使用して累積積分を実行することを望んでいます(たとえば、Pythonではを使用)。F(r)F(r)F(r) F(r )= ∫r0y(x )dバツF(r)=∫0ry(バツ)dバツF(r) = \int_0^r y(x) \, dx しかし、私はyとx(可能な場合)の代わりに、値とl o g (x )を使用することを望んでいます。l o g(y)log(y)log(y)l o g(x )log(バツ)log(x)yyyバツバツx

3
meshfreeメソッドの本格的な使用例を教えていただけますか?
最小二乗法の関数に基づくElement-Free Galerkinのようなメッシュレス手法を利用した科学的コードと商用パッケージについて聞きたいです。「深刻な」とは、たとえばFEMで解決される問題と同等のサイズの問題を解決するために使用できることを意味します。 創業からすでに15年以上。それらを開発した人々はそれらを非常に有望であると考えました。私は単に現在の最新技術を理解しようとしています。

3
N次元Delaunayテッセレーションソフトウェアライブラリ
N次元空間(N&gt; = 2)に不規則に配置された既知のポイント/ノードのセットがあり、これらのポイントのDelaunay三角形分割を生成し、対応する要素を返す方法が必要です。 ND Delaunay三角形分割を行う既存のメッシュライブラリはありますか? (空間内の任意の点で線形補間の基礎としてメッシュ要素を使用したいので、これを行っています。現在、ディメンションは、ディメンションにテンプレート化されたC ++クラスによって処理されます。

1
多電子時間依存シュレディンガー方程式を数値的に解くのが難しいのはなぜですか
人々は通常、単一電子問題(SAE)を使用して多電子システムを扱い、問題を単一電子問題に変換しているようです。例えば、ヘリウム原子がレーザー場と相互作用する問題を数値的に解く場合、人々は通常、擬ポテンシャルによる電子-電子効果を含めて概算し、本質的に一電子問題を解きます。それでは、時間依存の多電子シュレディンガー方程式を数値的に解くことが難しいのはなぜですか。古典的なn体問題よりもはるかに難しいですか?天文学ではリアルタイムでも数値的に解決される古典的な体の巨大な問題がたくさんあるのを見てきました。たとえば、ここでは280000粒子の相互作用を含む2つの銀河の衝突をリアルタイムでシミュレートしています。んんn

2
RBFカーネルマトリックスは悪条件になる傾向がありますか?
RBFカーネル関数を使用して、1つのカーネルベースの機械学習アルゴリズム(KLPP)を実装します。結果のカーネル行列はKKK K(i,j)=exp(−(xi−xj)2σ2m)K(私、j)=exp⁡(−(バツ私−バツj)2σメートル2)K(i,j)= \exp\left({\frac{-(x_{i}-x_{j})^2}{ \sigma_{m}^2}}\right) 極めてL2ノルムの悪いconditioned.The条件数が来ることが示されている1017−10641017−106410^{17}-10^{64} 条件を整える方法はありますか?パラメータを調整する必要があると思いますが、正確にはわかりません。σσ \sigma ありがとう!

2
Fortranで倍精度値を設定する方法
最近、FORTRAN95で奇妙な問題が発生しました。変数XとYを次のように初期化しました。 X=1.0 Y=0.1 後でそれらを一緒に追加して、結果を出力します。 1.10000000149012 変数を調べたところ、0.1は完全な精度の倍精度で表されていないようです。これを回避する方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.