タグ付けされた質問 「software」

科学的または数値計算に最適なライブラリおよびスタンドアロンソフトウェアに関する質問。

10
使用可能な高速C ++マトリックスライブラリの推奨事項
使用可能な高速C ++マトリックスライブラリに関する推奨事項はありますか? 使用可能とは、次のことを意味します。 マトリックスオブジェクトには直感的なインターフェイスがあります(例:インデックス作成中に行と列を使用できます) LAPACKおよびBLASで実行できるマトリックスクラスで何でもできます。 簡単に習得して使用できるAPI Linuxにインストールするのは比較的簡単です(現在Ubuntu 11.04を使用しています) 私にとっては、早すぎる最適化を避けるために、現在、速度やメモリ使用よりもユーザビリティが重要です。コードを書く際、私は常に1-D配列(またはSTLベクトル)と適切なインデックスまたはポインター演算を使用して行列をエミュレートできましたが、バグを避けるためにしたくないです。また、行列をエミュレートするために使用した小さなプログラミングトリックのすべてを思い出すために私の限られた注意の一部を使用するのではなく、解決しようとしている実際の問題と問題領域にプログラムしようとする精神的な努力に焦点を当てたい、LAPACKコマンドなどを覚えておいてください。さらに、記述しなければならないコードが少なくなり、コードが標準化されるほど、より良い結果が得られます。 密か疎かはまだ関係ありません。私が扱っているマトリックスの一部はスパースになりますが、すべてではありません。ただし、特定のパッケージが密行列または疎行列を適切に処理する場合は、言及する価値があります。 テンプレートを作成することも重要ではありません。標準の数値型を使用し、double、float、int以外を保存する必要がないからです。いいですが、私がやりたいことには必要ありません。

8
科学ソフトウェアを文書化する良い方法は何ですか?
多くの場合、他の人が書いた科学的コード(または、時には自分の研究でさえ)を継承または遭遇したときに、ドキュメントがまばらであるか存在しないことに気付きました。運が良ければ、有益なコメントが表示されます。運が良ければ、DoxygenのコメントとDoxyfileさえありますので、関数インターフェースといくつかのフォーマットされたHTMLを参照してください。私が非常に幸運なら、Doxygenとソースファイルのコメントに加えてPDFマニュアルと例があります。そして、私は非常に楽しかったです。 ソースコードの文書化に役立つ情報とツールは何ですか?さらに言えば、科学ソフトウェアの場合、そのソースコードに付随するデータと結果を文書化するのにどのような情報とツールが役立ちますか?

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

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などから)ビルドされるたびに、コードを実行してビルドプロセスを開始します。しかし、私のシミュレーションで生成された数値を私の論文と同期させるためのより良い提案があれば、ぜひ聞いてみてください。


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

9
C ++でパラメータースタディを実行する良い方法は何ですか
問題 現在、有限要素ナビエストークスシミュレーションに取り組んでおり、さまざまなパラメータの影響を調査したいと思います。一部のパラメーターは、入力ファイルまたはコマンドラインオプションで指定されます。他のパラメーターはMakefileでフラグとして提供されるため、これらのオプションを変更するたびにコードを再コンパイルする必要があります。パラメータ空間を体系的に探索するための良い方法についてアドバイスをもらいたいと思います。 この種のことを支援できる便利なC ++ / Pythonライブラリ/フレームワークはありますか?たとえば、コマンドライン引数で入力ファイルオプションをオーバーロードすることができるため、boost.Program_optionsを発見することは大きな助けになりました。また、一部の人々が各ケースを非常に効果的に説明するジョブファイルを使用しているのを見たことがあり、同僚はコメントブロックとしてパラメーターをvtuファイルに書き込むこともできると提案しました。 おそらく、これに多くの時間を投資する価値はまったくありませんか?それは単なる気晴らしと時間の浪費であり、テストプロセスのブルートフォースとアドホックを筋肉だけで行うのが最善ですか? いくつかの考え 私は現在ほとんど手作業で仕事をしており、次の問題に直面しています。 テストケースの命名。アンダースコアで区切られた実行パラメーターなどの名前のフォルダーに結果を保存しようとしましたRe100_dt02_BDF1...。これらは、省略しすぎるとすぐに長くなり、読みにくくなります。また、実数のパラメータにはa .が含まれていますが、これは厄介です。 実行データのロギング。時々、端末に書き込まれ、テキストファイルに保存された結果を確認したいことがあります。たとえば、StackOverflowからのこの回答は多少役立ちますが、解決策は少し煩わしいようです。 パラメータに従ってデータをプロットします。さまざまなログファイルから関連するデータを1つのファイルに収集し、それをプロットするのにかなり時間がかかります。より良いシステムであれば、おそらくこれがより簡単になります。 データに関するコメントの記録。結果を調べた後、テキストファイルにコメントを書き込みますが、これを結果フォルダーと同期させることは難しい場合があります。

3
BLAS、LAPACK、およびその他の線形代数ライブラリの関係は何ですか?
私が取り組んでいるプロジェクトのC ++線形代数ライブラリを検討しています。私がまだ把握していないことは、BLASとLAPACKを他の線形代数ライブラリに接続することです。 線形代数ライブラリに関するこの記事を見ると、次のことが興味深いことがわかりました。 一部のライブラリはBLASおよびLAPACKから独立しています 一部にはBLASとLAPACKが必要です 一部にはBLASおよびLAPACKへのオプションのインターフェースがあります そして、私が理解しているように、BLASとLAPACKを使用して線形代数の問題を直接解決できます。 一部のライブラリは、CおよびFortranで記述されたBLASおよびLAPACKライ​​ブラリに対する単なるC ++インターフェイスであり、他のライブラリは独自の代替ルーチンを実装していると想像できますが、 BLASおよびLAPACKへのオプションのインターフェイスの意味は何ですか?オプトアウトすることで失うものは何ですか?代わりにライブラリは何をしていますか? ライブラリは、単なるインターフェイス以上のものを提供しますか?たとえば、UMFPACKはCで記述されており、BLASおよびLAPACKへのオプションのインターフェースがあります。BLASとLAPACKが単独ではできないUMFPACK(または他のライブラリ)は何ができますか?

10
ソフトウェアに対して選択するライセンスに関する推奨事項と経験
ソフトウェアの開発者は、作業の目標に応じて適切なライセンスを選択することができます。 誰がソフトウェアのライセンスを選択するかについて、いくつかの推奨事項/経験を提供できますか? すべてのコード化された作業をオープンソースコードとして「与える」ことの長所と短所は何ですか? 研究コードの恩恵を受けたい産業のプレーヤーに対処する方法は?
26 software 

3
FortranコンパイラをMacにインストールするにはどうすればよいですか?(OS X 10.x、x> = 4)
関連質問:科学計算とHPCでのMac OSの状態 計算科学のかなりの数のソフトウェアパッケージがFortranで記述されており、Fortranはなくなりません。他のソフトウェアパッケージをビルドするには、Fortranコンパイラも必要です(注目すべき例の1つはSciPyです)。 ただし、Mac OS XにはFortranコンパイラが含まれていません。Fortranコンパイラをマシンにインストールする方法は?
25 software  fortran 

5
シンボリック式から数値的に正確な浮動小数点Cルーチンを自動生成できるソフトウェアはありますか?
実変数の実関数が与えられた場合、IEEE 754算術を搭載したマシンのすべての入力で関数を計算するための数値的に正確なコードを自動的に生成できるソフトウェアはありますか? たとえば、評価される実関数が次の場合: ソフトウェアは、致命的なキャンセルと、特定の入力セットの出力テーブル検索を考慮して、計算精度の低下を回避します。 あるいは、純粋なテーブルベースのルックアップルーチンを生成して、特定の関数を高精度で計算できるソフトウェアはありますか?

5
PETScとTrilinosの主な違いは何ですか?
私の知る限り、米国エネルギー省の計算科学ソフトウェアフレームワークの2つの大きなジェネリックは、 PETScとTrilinosです。言語の違い(CとC ++)を超えて、一見似ているように見えます。2つのフレームワークの主な違いは何ですか?また、どちらを選択するのに影響する要因は何ですか?(制度的バイアスと既存のインフラストラクチャを無視します。)

8
並列デバッグにはどのソフトウェアが適していますか?
現在、並列コードを実行していませんが、将来OpenMPとMPIのハイブリッドを使用して並列コードを実行する予定です。デバッガーは、シリアルプロジェクトを実行するときに非常に貴重なツールでした。 並列ソフトウェアのデバッグに使用する並列デバッガー(または複数のデバッガー)をお勧めできますか?フリーソフトウェアが望ましいが、効果的な商用ソフトウェアについて言及することをheしないでください。

5
計算研究を再現可能にするために、雑誌記事にどの資料を含める必要がありますか(またはオンラインで投稿する必要がありますか)?
計算科学の研究では、再現性がますます重要になっています。(たとえば、科学の Roger Pengによるこの記事を参照してください。他のそのような記事やWebサイトも知っています。)しかし、どの程度の情報をジャーナル記事(またはオンライン)に含めるべきかはわかりません。私の計算研究は再現可能です(知的財産契約のような他の障害がないと仮定)。ガイドラインはありますか?もしそうでなければ、計算科学研究を再現可能にするために研究者がとるべきステップを提案できますか? 回答で特に使用されるのは、これらの提案を実装するための可能な方法、つまりワークフローです。システムに依存しない、またはLinuxベースのワークフローが望ましいです。また、関連する個人的な経験について話し合うことも役立ちます。 私の特定のケースでは、MATLABで実行できるほど単純な2つの計算例を含む理論的な論文を書いています。この場合、MATLABスクリプトを含め、マシン上の特定のバージョンのMATLABを記録するだけで、再現性を確保できます。ただし、もっと複雑なシナリオが存在することは確かです。再現可能な研究を実行する方法についてのアドバイスは、将来のプロジェクトについて知るのに非常に役立ちます。

12
Octaveを使用してMATLABプログラミングを学習することはできますか?
この質問は、Computational Science Stack Exchangeで回答できるため、Cross Validatedから移行されました。 7年前に移行され ました。 私は自分でいくつかの研究/分析を行うことができ、またオンラインで見つけたMATLABスクリプトなどを研究/修正できるようにMATLABプログラミングを学びたいです。 ただし、問題は、MATLABを購入する余裕がないことです。私が聞いたところによると、GNU OctaveはまったくMATLAB互換です。しかし、Octaveの課題は、ドキュメントが非常に少ないことです。 そのため、MATLABは非常に高価です(-ve)が、多くの優れたドキュメント、チュートリアル、およびオンラインスクリプト(+)があり、Octaveは(理解できるように)包括的なドキュメントなどがなくても(ビールのように)無料です。 Octaveをダウンロードしてインストールすることを考えていますが、MATLABドキュメント(およびスクリプト)を使用して作業を進めています。OctaveとMATLABにはいくつかの違いがあることを認識しています-私が解決しようとしているのは、その違いが(Octaveを使用してMATLABを学習する)努力を妨げるほど大きいかどうかです。 建設的なフィードバックを歓迎します。

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