計算科学

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

1
オープンソースの逆ベースのマルチレベルILU実装はありますか?
マルチレベル逆ベースのILUプレコンディショナーのシリアルパフォーマンス、特に異種Helmholtzのシリアルパフォーマンスには非常に感銘を受けましたが、オープンソースの実装が見つからないことに驚きました。特に、ILUPACKはバイナリを学者が自由に利用できるようにしますが、ソースコードをリリースしているようには見えません。 誰も実装をオープンソース化していないというのは本当ですか?

3
行列ベクトル乗算のスケーリングが行われないのはなぜですか?
長い投稿で申し訳ありませんが、最初の段階で関連があると思ったものをすべて含めたかったのです。 私が欲しいもの Krylov Subspace Methods for Dense Matricesの並列バージョンを実装しています。主にGMRES、QMRおよびCG。(プロファイリング後)私のDGEMVルーチンは哀れなことに気付きました。それで、私はそれを分離することによってそれに集中することに決めました。12コアのマシンで実行してみましたが、以下の結果は4コアのIntel i3ラップトップ用です。傾向に大きな違いはありません。 私のKMP_AFFINITY=VERBOSE出力はここにあります。 私は小さなコードを書きました: size_N = 15000 A = randomly_generated_dense_matrix(size_N,size_N); %Condition Number is not bad b = randomly_generated_dense_vector(size_N); for it=1:n_times %n_times I kept at 50 x = Matrix_Vector_Multi(A,b); end これは、50回の反復でCGの動作をシミュレートすると思います。 私が試したもの: 翻訳 私はもともとFortranでコードを書いていました。C、MATLAB、Python(Numpy)に翻訳しました。言うまでもなく、MATLABとPythonは恐ろしいものでした。驚くべきことに、上記の値ではCはFORTRANよりも1〜2秒優れていました。一貫して。 プロファイリング 実行するコードのプロファイルを作成し、46.075数秒間実行しました。これは、MKL_DYNAMICがに設定されFALSE、すべてのコアが使用されていたときです。MKL_DYNAMICをtrueとして使用した場合、特定の時点で使用されていたコアの数は(およそ)半分だけです。詳細は次のとおりです。 Address Line Assembly CPU Time 0x5cb51c mulpd %xmm9, …

1
Compへの「知識のテンドリル」アプローチはどれほど効果的ですか。サイエンス?
Math SEでこれを読んでいた。基本的な質問は次のとおりです。 誰かが高度なものを勉強したいと思っていると仮定します。これを行う1つの方法は、基本から始めて構築することです。しかし、このプロセスでは「全体像」が失われる可能性があります。もう1つの方法(私はRecursive Wikiと呼びます)は、論文とGoogle / Wikiで理解できない用語を選択することです。それらを読みます。それらの中には新しい用語があります。素材を徹底的に知る「基本ケース」に到達するまで、Google / Wikiを使用します。論文を完全に理解するまで後戻りしてください。他の論文についても繰り返します。これにより、モチベーションを維持しながら知識を得ることができます。しかし、それは基本的な問題を引き起こす可能性があります。 これは、スタンフォード大学のVakil教授の記事に基づいています。抜粋は次のとおりです。 .....数学は非常に豊富で無限であるため、体系的に学習することは不可能です。あるトピックをマスターしてから次のトピックに進むと、どこにも到達しません。代わりに、あなたはあなたの快適ゾーンから遠くに広がる知識のtendを持つでしょう。その後、これらの巻きひげからバックフィルし、快適ゾーンを広げることができます。これは、「フォワード」を学習するよりもはるかに簡単です。(注意:この埋め戻しは必要です..... そのような方法の反対者の間の一般的なコンセンサスは、四分の一あたり100の論文が発表される代数幾何学や、文字列理論に触れる前に数学の基礎を構築しようとすると、アルツハイマー病と80。私の質問は、これはCompSciを研究するための良い戦略ですか? Comp Sciは非常に学際的であるため(通常、エンジニアは数学とコンピューティングの両方を知る必要があります)、そのような再帰的学習モードは学術研究に十分ですか?または、従来のモードはあまりにも優れているので置き換えられませんか? たとえば、オペレーティングシステムの知識がまったくない翻訳ルックアサイドバッファ(TLB)について知る必要がありました。 私の再帰パス(ウィキペディアによる)は: TLB>キャッシュ>(戻る)TLB>ページテーブル>(戻る)TLB>仮想アドレス>(戻る)TLB>再読み込み。完了 TLBが何であるかを知っていると感じます。再び遭遇した場合、何が起こっているのかがわかります。私は自分を欺いていますか?

4
区間演算を必要とするアプリケーションにはどのようなものがありますか?
私は区間演算(IA)について非常に基本的な概念を持っていますが、理論的にも実際的にも計算科学の非常に興味深い分野のようです。明らかなアプリケーションが検証済みのコンピューティングと不適切な問題であることは明らかですが、これはあまりにも抽象的です。ここでは多くの人が応用計算に関与しているため、IAなしでは解決が困難または不可能な現実の問題に興味があります。

4
線形連立方程式の解は、最初のいくつかの変数についてのみ近似できますか?
私はmが大きいサイズmxmの線形方程式系を持っています。ただし、私が興味を持っている変数は、最初のn個の変数です(nはmと比べて小さい)。システム全体を解くことなく、最初のm値の解を近似できる方法はありますか?もしそうなら、この近似は完全な線形システムを解くよりも速いでしょうか?

1
クリロフ部分空間法をマルチグリッドのスムーザーとして使用できますか?
私の知る限り、マルチグリッドソルバーは、Jacobi、Gauss-Seidel、SORなどの反復スムーザーを使用して、さまざまな周波数でエラーを減衰させます。代わりに、クリロフ部分空間法(共役勾配、GMRESなど)を利用できますか?私はそれらが「スムーズナー」として分類されるとは思わないが、それらは粗いグリッド解を近似するために使用できる。標準的なマルチグリッド法の場合と同様に、ソリューションへの類似した収束を期待できますか?それとも問題に依存していますか?

4
変数を並べ替えて最小帯域幅のバンド行列を生成する方法は?
私は有限差分によって2Dポアソン方程式を解こうとしています。このプロセスでは、各方程式に変数がしかないスパース行列を取得します。たとえば、変数が場合、離散化の結果は次のようになります。555UUU うんi−1,j+Ui+1,j−4Ui,j+Ui,j−1+Ui,j+1=fi,jUi−1,j+Ui+1,j−4Ui,j+Ui,j−1+Ui,j+1=fi,jU_{i-1,j} + U_{i+1,j} -4U_{i,j} + U_{i,j-1} + U_{i,j+1} = f_{i,j} 私はこのシステムを反復法で解くことができることを知っていますが、変数を適切に順序付ければ、直接法(すなわち、ガウス消去法w / oピボット)。これは可能ですか?他の、おそらく構造化されていないスパースシステムでこれを行うための戦略はありますか?

4
厳密な正の制約を持つ線形計画法の実行可能性の問題
線形制約のシステムがあるAx≤bAx≤b{\bf Ax} \leq {\bf b}。これらの制約を満たす厳密に正のベクトルを見つけたいです。つまり、すべてのコンポーネントにはが必要です。LPソルバーを使用して、このような厳密に正のベクトルを見つける(またはが存在しないことを確認 する)にはどうすればよいですか?LPでは常に等式を許可する必要があるため、単純に別の制約システムを導入することはできませんが、目的関数を変更してLPソルバーを数回使用できます。スラック変数メソッドを使用する必要があると思いますが、その方法はわかりません。x i > 0 x i x x x x i > 0x>0x>0{\bf x} > 0xi>0xi>0x_i > 0xixix_ixx{\bf x}xx{\bf x}xx{\bf x}xi>0xi>0x_i > 0

1
有限要素法の偏微分方程式の弱い定式化を導き出す方法は?
私は、「弱い定式化」の洗練された理解を強調しなかった有限要素法の基本的な紹介をしました。ガラーキン法では、(楕円形の)PDEの両側にテスト関数を掛けてから、(部分または発散定理によって)積分することを理解しています。時々、適切な弱い定式化に到達する前に、パートごとに2回統合する必要がありました(本の裏にある答えに基づいて)。しかし、同じ概念を他のPDEに適用しようとすると(それらはまだ時間に依存していません)、離散化に適した定式化がいつ行われるかを認識できません。このフォームを線形方程式に離散化できることを教えてくれる「赤旗」はありますか? さらに、基底関数の適切なセットを選択するにはどうすればよいですか?


3
高周波ヘルムホルツ用のスケーラブルな前提条件とは何ですか?
標準のマルチグリッドおよびドメイン分解法は機能しませんが、大きな3D問題があり、直接ソルバーはオプションではありません。どのような方法を試してみるべきですか? 私の選択は、以下の考慮事項の影響を受けますか? 係数が数桁にわたって変化する、または 有限要素法と有限の異なる方法が使用されます
15 pde 



3
B3LYPはGaussin 0 *、GAMESS-US、Molproなどでどのように実装されていますか?
具体的には、B3LYPに関連する作業をGau​​ssian 03から始めましたが、GAMESS-USで続けました。デフォルトのB3LYPメソッドによって提供されるエネルギーは同じではありません。これについては、GAMESS-USマニュアル(詳細情報セクション)で説明されています。 GAMESSのB3LYPは、VWN5電子ガス相関汎関数に一部基づいていることに注意してください。ローカル相関に関するVWNペーパーで言及されている2つの可能なパラメーター化を含む5つの式があるため、他のプログラムは他の選択肢を使用し、したがって異なるB3LYPエネルギーを生成します。たとえば、NWChemのマニュアルでは、「既定のモンテカルロパラメーターではなく、RPAパラメーターで機能するVWN 1」がデフォルトとして使用されています。このVWN1フォーミュラをB3LYPハイブリッドで使用する場合は、単に「DFTTYP = B3LYP1」を選択します。 デフォルトはGAMESSとNWCHEMで異なり、GAMESSにNWCHEMがデフォルトで行っているのと同じ計算をさせるオプションがあると言います。 G03とGAMESS B3LYPの計算を一致させるにはどうすればよいですか? さまざまなソフトウェアパッケージのB3LYPのデフォルト実装とその機能の違いは何ですか。つまり、B3LYPの定義/実装を調整できますか?

1
有限体積法を使用する場合、境界条件はどのように適用する必要がありますか?
前の質問から、この不均一な有限体積メッシュに境界条件を適用しようとしていますが、 ドメインのlhs(にロビン型の境界条件を適用したいので、x=xL)バツ=バツL)x=x_L) σL=(dux+au)∣∣∣x=xLσL=(dあなたはバツ+aあなたは)|バツ=バツL \sigma_L = \left( d u_x + a u \right) \bigg|_{x=x_L} ここで、は境界値です。はそれぞれ境界、移流、拡散で定義される係数です。の誘導体であり、境界で評価および、我々が解決される変数です。 A 、D 、U X = ∂ UσLσL\sigma_La,da、da, d UUux=∂u∂xあなたはバツ=∂あなたは∂バツu_x = \frac{\partial u}{\partial x}uあなたはuuあなたはu 可能なアプローチ 上記の有限体積メッシュにこの境界条件を実装する2つの方法を考えることができます。 ゴーストセルアプローチ。 ゴーストセルを含む有限差分としてをします。σ Lが = D U 1 - U 0uxあなたはバツu_xσL=du1−u0h−+au(xL)σL=dあなたは1−あなたは0h−+aあなたは(バツL) \sigma_L = d \frac{u_1 - u_0}{h_{-}} + a u(x_L) A.次に、ポイントおよびを使用した線形補間を使用して、中間値を見つけます。x 1 …

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