計算科学

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

7
Pythonでforループを並列化する
MatlabのparforのようなPythonのツールはありますか?このスレッドを見つけましたが、4年前です。ここの誰かが最近の経験を持っているかもしれないと思った。 並列化するタイプの例を次に示します。 X = np.random.normal(size=(10, 3)) F = np.zeros((10, )) for i in range(10): F[i] = my_function(X[i,:]) どこmy_function取りndarrayのサイズの(1,3)スカラを返します。 少なくとも、複数のコアを同時に使用したい--- parforのように。つまり、8〜16コアの共有メモリシステムを想定しています。

6
フィギュアを「プロフェッショナル品質」にする属性は何ですか?
私は、ORIGINで作成されたプロットは洗練された「プロフェッショナル」に見える傾向があるのに対し、Mathematicaで作成されたプロットはそうではないと言うのを聞いたことがあります。しかし、ほとんどのプロット作成プログラムは非常に構成可能であり、目盛りの位置とラベル付け、フォントと色の選択、ラベルの配置などの適切な設定により、Mathematicaで図を作成できるはずです。 / matplotlib / Gnuplot / etc。それはORIGINから来るものと同じように見えます。しかし、この文脈で人物が「プロフェッショナル」であるとはどういう意味ですか? 言い換えると、私の目標が科学論文に含めるために可能な限り最高の外観の数字を作成することである場合、その目標に向けて一般的にどのような設計選択が推奨されますか?明らかに、適切な種類のプロット、たとえば棒グラフ対散布図、線形対対数スケールを選択する必要がありますが、これらは使用するプロットプログラムに関係なく常に考えられる選択肢です。私が普段考えていないことにもっと興味があります。これは通常、いくつかのプロッティングプログラムのデフォルトに従って設定されますが、プロットの見た目を改善するために変更できます。

11
ソフトウェアを重視した論文を出版するための会場
ソフトウェアは計算科学の基本的な部分であり、科学記録の重要な部分としてますます認識されています。既存の十分にテストされたコードを使用することの価値を考えると、有用なコードの存在をできる限り広く伝え、その作成者を称賛することは価値があると思われます。アカデミックな環境では、これは主にソフトウェアに焦点を合わせたいくつかの論文を発表することを意味します。 計算ソフトウェアを主な焦点とする学術作品はどこで出版できますか?完全に明確にするために、私は新しい数学、アルゴリズムなどを含まないかもしれない作品に言及しています。それらは本当にソフトウェアに焦点を合わせています。 また、これらのジャーナルにそのような論文を提出した人々から、その体験がどのようなもので、どの会場が推奨されているかを聞くことにも興味があります。 与えられた回答の要約: 数学ソフトウェアでのトランザクション 科学プログラミング SIAM Journal on Scientific Computing(SISC)ソフトウェアセクション 数値ソフトウェアのアーカイブ オープンリサーチ計算 コンピューター物理通信 エンジニアリングソフトウェアの進歩 Journal of Statistical Software Journal of Chemical Theory and Computation 生物学と医学のソースコード PLoS ONE 量子化学の国際ジャーナル 疫学 科学と工学のコンピューティング Journal of Computational Chemistry 地球科学モデル開発 機械学習研究ジャーナル 数学プログラミング計算 Journal of Open Source Software

1
2013年後半のCUDAとOpenCL
プログラマーの観点から、2013年後半のCUDAとOpenCLはどのように比較されますか?私のグループは、GPUコンピューティングを利用しようと考えています。OpenCLのみをサポートし、CUDAはサポートしないハードウェアを選択することにより、自分自身を大幅に制限することになるでしょうか? もう少し具体的に言うと、次の仮定は正しいですか? CUDAで可能なことはすべてOpenCLでも可能です ライブラリを使用していない限り、特定のタスクはどちらのライブラリでも実行するのがそれほど簡単ではありません(またはより困難ではありません) CUDAの主な利点は、ライブラリの可用性です どちらも3つのメインプラットフォーム(Win / OSX / Linux)をすべてサポートしています。
34 hpc  gpu  cuda  opencl 

8
シミュレーションの結果と論文の結果が常に同期していることを確認するにはどうすればよいですか?
私の論文の1つでは、いくつかの数値に加えていくつかの数値結果をリストしています。私がやりたいのは、論文の数値結果が常にコードと一致することを確認することです。今は、シミュレーション結果から数値結果を紙に直接コピーします。これは非常にシンプルでローテクですが、結果を誤ってコピーしたり、紙の結果をコード出力。 論文で引用した数値結果を、コードで生成された結果と同期させる良い方法はありますか?(ここでは、コードを実行することは、論文を更新したいときはいつでも簡単で実用的であると想定しています。)これらの数値結果は、必ずしも表形式に適しているとは限りません。原稿に表がある場合もありますが、より一般的には、方程式の数値としてシミュレーションパラメーターがリストされています。例は次のようになります。 y∗=(y∗1,…,y∗n)y∗=(y1∗,…,yn∗)\begin{align} \mathbf{y}^{*} = (y_{1}^{*}, \ldots, y_{n}^{*}) \end{align} ここで、初期条件の要素を置き換えたいy∗y∗\mathbf{y}^{*}常微分方程式系を数値的に積分するシミュレーションで使用する実際のパラメーターにます。この例のような1回限りのデータにテーブルを使用すると、過剰になり、必要以上にインクが多くなります。 図は簡単なケースだと思います:ドキュメントが(LaTeXソース、Markdown、RSTなどから)ビルドされるたびに、コードを実行してビルドプロセスを開始します。しかし、私のシミュレーションで生成された数値を私の論文と同期させるためのより良い提案があれば、ぜひ聞いてみてください。

6
時間依存のシュレディンガー方程式を数値的に解く簡単な方法はありますか?
一次元の単純なポテンシャルからの波束の散乱の簡単なシミュレーションを実行したいと思います。 単一粒子の1次元TDSEを数値的に解決する簡単な方法はありますか?一般に、偏微分方程式を統合するためにナイーブアプローチを使用しようとすると、すぐに災害で終わる可能性があることを知っています。したがって、私はアルゴリズムを探しています 数値的に安定している、 実装が簡単であるか、簡単にアクセスできるコードライブラリの実装があります。 適度に速く実行され、うまくいけば 理解するのは比較的簡単です。 また、スペクトル法、特に時間に依存しないシュレーディンガー方程式を通常のように解く以上の方法については比較的明確にしたいと思います。ただし、Bスプラインなどを使用する擬似スペクトルメソッドに興味があります。メソッドが時間依存のポテンシャルを取ることができる場合、それは間違いなくボーナスです。 もちろん、そのような方法には常に多くの欠点があるので、それらについて聞いてみたいと思います。いつ機能しないのですか?一般的な落とし穴とは何ですか?どの方法でプッシュでき、どの方法でプッシュできないのですか?

2
完全に閉じたノイマン境界条件(境界での反射)を伴う有限差分によって移流方程式を解くときの奇妙な振動
私は移流方程式を解こうとしていますが、境界から波が反射すると、解に奇妙な振動が現れます。私が原因とその回避方法を知りたいと思う前に誰かがこの人工物を見たなら! これはアニメーションGIFで、別のウィンドウで開いてアニメーションを表示します(キャッシュされているのは一度だけ再生されるか、一度に再生されないかです!) 波が最初の境界から反射し始めるまで、伝播は非常に安定しているように見えることに注意してください。ここで何が起こると思いますか?数日かけてコードを再確認しましたが、エラーが見つかりません。奇妙なのは、2つの伝播ソリューションがあるように見えることです。1つはポジティブなソリューションで、もう1つはネガティブなソリューションです。最初の境界からの反射後。ソリューションは、隣接するメッシュポイントに沿って移動しているようです。 実装の詳細は次のとおりです。 移流方程式 ∂あなたは∂t= V ∂あなたは∂バツ∂u∂t=v∂u∂x\frac{\partial u}{\partial t} = \boldsymbol{v}\frac{\partial u}{\partial x} ここで、は伝播速度です。vv\boldsymbol{v} Crank-Nicolsonは、が空間でゆっくりと変化する(フーリエ変換時に低周波数成分のみを含む場合、移流方程式の無条件(pdfリンク)の 安定した離散化です。u (x )u(x)u(x) 私が適用した離散化は、 ϕn + 1j− ϕnjΔ トン= V [ 1 - β2 Δ X(φnj + 1− ϕnj − 1) + β2 Δ X(φn + 1j + 1− ϕn + 1j − 1) …


3
線形方程式を解く方法を選択する方法
私の知る限り、線形方程式系を解くには4つの方法があります(さらにある場合は修正してください): システム行列がフルランク正方行列の場合、Cramerの規則を使用できます。 システム行列の逆または擬似逆を計算します。 マトリックス分解法を使用します(ガウスまたはガウスヨルダン消去法はLU分解と見なされます)。 共役勾配法などの反復法を使用します。 実際、特に高次元行列の場合、Cramerのルールを使用するか、逆行列または擬似逆行列を計算して方程式を解くことはほとんどありません。したがって、最初の質問は、それぞれ分解法と反復法を使用する場合です。システムマトリックスのサイズとプロパティに依存すると思います。 2番目の質問は、数値の安定性と効率の観点から、特定のシステムマトリックスに最適な分解法または反復法の種類を知っていることです。 たとえば、共役勾配法は、行列が対称かつ正定値の方程式を解くために使用されますが、をA T A x = A T bに変換することにより、任意の線形方程式に適用することもできます。正定行列の場合も、コレスキー分解法を使用して解を求めることができます。しかし、CGメソッドを選択するタイミングと、コレスキー分解を選択するタイミングはわかりません。私の感覚では、大きな行列にはCG法を使用した方が良いと思います。A x = bAバツ=b\mathbf{A}x=bATA x= ATbATAバツ=ATb\mathbf{A}^{\rm T}\mathbf{A}x=\mathbf{A}^{\rm T}b 長方形行列の場合、QR分解またはSVDのいずれかを使用できますが、ここでもいずれかを選択する方法がわかりません。 他のマトリックスについては、エルミート/対称マトリックス、スパースマトリックス、バンドマトリックスなど、適切なソルバーを選択する方法は今ではありません。

5
ATLASとMKLのパフォーマンスの違いは?
ATLASは無料のBLAS / LAPACKの代替品であり、コンパイル時にマシンに合わせて調整されます。MKLは、Intelが出荷する商用ライブラリです。パフォーマンスに関しては、これら2つのライブラリは同等ですか、それともMKLが一部のタスクで優位を占めていますか?もしそうなら、どれ?

9
FEMを学習するための最新のリソース
有限要素法の使用を開始する必要があります。私はClaes Johnsonによる有限要素法による偏微分方程式の数値解を読み始めようとしていますが、それは1987年のものです。 2つの質問: 1)このテーマに関する新しい優れたリソース/教科書/電子書籍/講義ノートは何ですか? 2)1987年の本を読んでどれだけ不足していますか? ありがとう。

4
PDEを解くときに、局所保存が重要なのはなぜですか?
エンジニアは、PDEを解くために、有限体積、保守的有限差分、不連続ガラーキン法などの局所的に保守的な方法を使用することをしばしば主張します。 ローカルで保守的でない方法を使用すると、何が問題になる可能性がありますか? さて、局所保存は双曲線PDEにとって重要ですが、楕円PDEについてはどうですか?

2
log1pとexpm1はいつ使用する必要がありますか?
Google にとって非常に難しい簡単な質問があります(すべてのコンピューター科学者が浮動小数点演算ペーパーについて知っておくべき標準的なもの以外に)。 andなどの代わりにlog1por などの関数をexpm1使用する必要があるのはいつですか?いつ使用すべきではありませんか?これらの関数の異なる実装は、使用法の点でどのように異なりますか?logexp

8
科学的ワークフロー管理システム
できればPythonで、優れたワークフロー管理システム(WMS)を勧められますか?これまでGNU Makeを使用してきましたが、避けたい複雑さの層が導入されています。優れたWMSには次の機能が必要です。 コマンドラインツールやPythonスクリプトと簡単に統合できます。 使いやすく軽量 依存関係を処理する、 コマンドラインインターフェースを提供し、 ロギングメカニズムを提供します。 (オプション)データの出所を提供します。 WMSはバイオインフォマティクス(Galaxyなど)で非常に人気があることは知っていますが、もっと一般的なものを探しています。
30 software  python 

7
Journal of Computational Physicsの代替
Journal of Computational Physicsは過去に計算科学の重要なアウトレットであり、私は以前そこに出版しました。エルゼビアのボイコットに署名した人(私のような)のために、Journal of Computational Physicsに投稿された可能性のある記事を発行するのに適した非エルゼビアのジャーナルはどこでしょうか? 適切な代替手段は次のとおりです。 JCPと主題の重複(少なくとも部分的に) 評判が良い エルゼビアが発行しない 注:「評判」と言うとき、インパクトファクターを意味するものではありません。この 2つがこの分野で十分に相関していないことを示すこの記事を参照してください。

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