問題タブ [scientific-computing]
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.
c - C は本当に多くの科学計算に使用されていますか?
私は現在、大学で「Scientific Computing」という数学のクラスを取っていますが、その教授は、科学計算に使用される最も一般的な言語は C であると教えてくれました。
.net - .net(C#)用の優れた無料(オープンソース)BLAS / LAPACKライブラリとは何ですか?
私はC#で書かれたプロジェクトを持っており、行列に対してさまざまな線形代数演算(LU分解など)を実行する必要があります。
プログラムは主に理論を確認するために作成されたプロトタイプであるため、C#の実装で十分です(おそらくより高速なC ++の実装と比較して)が、コーディングを節約するために利用できる優れたBLASまたはLAPACKライブラリが必要です。
簡単に言えば、.netで使用するための無料/オープンソースのBLASまたはLAPACKライブラリを誰かが推奨できますか?
よろしくエギル。
更新:今日Math.NET Numericsを見つけましたが、面白そうですが、誰かがそれを経験したことがありますか?
c++ - C ++のベクトル配列に最適なライブラリ
1、2、3...9次元のベクトルの配列で計算を行う必要があり、それらのベクトルの数は大幅に異なります(100から数百万まで)。もちろん、データ コンテナーを簡単に分解して並列アルゴリズムを有効にできれば素晴らしいことです。
blitz++ に出くわしました (コンパイルするのはほとんど不可能です) が、ベクトル データの配列を操作する他の高速なライブラリはありますか? boost::fusion は一見の価値がありますか? さらに、vtk の vtkDoubleArray は良さそうですが、vtk は可視化のみに使用される lib です。タプルの配列を持つことは魅力的なアイデアであることは認めざるを得ませんが、boost::fusion や vtkDoubleArray に関するベンチマークは見当たりませんでした。速度を念頭に置いて構築されていないのと同じように。何かご意見は?
よろしくお願いします、
マイティドドル
java - Javaマルチスレッドの初心者向けの質問
私は、並行して進めることができる容易に分離可能な部品を備えた科学的アプリケーションに取り組んでいます。したがって、これらの部分をそれぞれの実行に独立したスレッドとして記述しましたが、スレッドに分割する標準的な理由(つまり、終了コマンドなどをブロックしない)ではないようです。
いくつかの質問:
これは実際に標準のマルチコアデスクトップで何かを購入しますか?つまり、現在のJVMがある場合、スレッドは実際には別々のコアで実行されますか、それとも何か他のことをする必要がありますか?
すべてのスレッドによって読み取られる(書き込まれることはありませんが)オブジェクトはほとんどありません。それに関する潜在的な問題?それらの問題の解決策は?
実際のクラスターの場合、スレッドをさまざまなノードに分散するフレームワークを推奨して、自分で管理する必要がないようにすることはできますか(存在する場合)。明確化:これは、スレッドを個々のノードのタスクに自動的に変換するもの、またはクラスター全体を単一のJVMのように見せるもの(つまり、アクセス可能なプロセッサーにスレッドを送信できるもの)などを意味します。基本的に、並列化をアルゴリズムに組み込んだことを考えると、クラスターに便利な方法で並列化を実装します。私の側では最小限の仕事をします。
ボーナス:ほとんどの評価は、関連するセットを取得するためのキーからのマッピングを使用したセット比較(たとえば、和集合、共通部分、含む)で構成されます。私はFORTRAN、C、およびC ++(最初の科学計算の学期、および10年前の他の2つのHS APクラス)の経験が限られています-並列化のどのような速度/容易さの向上は、私がこれらの言語の1つでのJavaフロントエンドからアルゴリズムバックエンドへの変換。これらの言語でこれらの操作を実装することで、私の経験レベルではどのような問題が発生する可能性がありますか?
functional-programming - 関数型プログラミング言語は実用的なタスクに適していますか?
私が Haskell、Erlang、Scheme を使って実験した結果、関数型プログラミング言語は科学的な疑問に答える素晴らしい方法であることがわかりました。たとえば、小さなデータ セットを取得し、それに対して広範な分析を実行して、重要な回答を返します。Project Euler の難しい問題に取り組んだり、独自の方法で Google Code Jam を試したりするのに最適です。
同時に、その性質上、実際のタスクを実際に実行するよりも、分析的な解決策を見つけることに適しているようです。Haskell では、すべてが遅延評価され、プログラム全体が、プログラムにハードコーディングするか、Haskell の限られた IO 機能を介して乱雑に追加する特定のデータに対する 1 つの巨大な分析ソリューションに要約されます。
基本的に、次のような「実用的」と呼ぶタスク
より直接的に手続き型言語に変換されるようです。このように機能する関数型言語を見つけた中で最も幸運だったのは、Factor です。これは、Python の逆研磨表記バージョンに例えることができます。
ですから、これらの言語で何かを見逃しているのか、それともこの質問をする方法が間違っているのか、ただ興味があります. 実用的なタスクを実行するのに優れた関数型言語の例、または関数型言語によって最もよく実行される実用的なタスクを誰かが持っていますか?
scientific-computing - 実験データを分析するためのツール
特定のパラメーターのパラメーターを最適化するために、多くの変数を使用して実験データを分析するためのツールは何ですか? この質問は意図的に一般的なものです。現在使用するツールよりも、将来検討する必要があるツールを求めています。
関連する質問
c++ - 科学プログラマーのための読書リスト
私は科学プログラマーになるために働いています。私は数学と統計の十分なバックグラウンドを持っていますが、プログラミングのバックグラウンドが不足しています。SP のリファレンスのほとんどは取るに足らないものに近いため、科学的プログラミングに言語を使用する方法を学ぶのは非常に困難であることがわかりました。
私の仕事は統計/財務モデリングに関係し、物理モデルには関係ありません。現在、私は numpy と scipy で Python を広く使用しています。R/Mathematica を完了しました。コードを読むのに十分な C/C++ の知識があります。Fortran の経験はありません。
これが科学プログラマーにとって適切な言語リストであるかどうかはわかりません。もしそうなら、科学的な設定でこれらの言語の構文と設計パターンを学ぶための良い読書リストは何ですか.
python - キュー シミュレーションの視覚化に適した Python パッケージが必要
wxPython GUI 内で、待ち行列理論のシミュレーションに取り組んでいます。( Project link .) シミュレーションを視覚化するための優れたツールは何ですか? 視覚化は、クライアント、サーバー、施設、人口などの単純なオブジェクトで構成する必要があります。それらはすべて、単純なボックスなどで表す必要があります。クライアントが待機するキューがいくつかあります。
これは進行中のシミュレーションの視覚化であるため、オブジェクトは画面上を移動します。オブジェクトがある場所から別の場所にスムーズに移動でき、突然ジャンプしないと便利です。
そのビジュアライゼーションを作成するための優れたツールは何でしょうか? ネイティブの wxPython グラフィックスでそれを行うことができました。PyGame も使用できます。しかし、ここの誰かがもっとお勧めできるものを持っているのではないでしょうか?
database - データベースに「より小さい」、「等しい」、「より大きい」を格納する方法
科学情報をデータベース (SQL サーバー) に保存する必要があります。「より小さい」、「より大きい」が情報の一部であるデータベースに値を格納する最良の方法は何ですか。
例:
PatientId: 123 突然変異率: <3%
患者ID: 999 突然変異率: 3%
PatientId: 456 突然変異率: 10%
データの並べ替えとフィルター処理ができる必要があります。<3% の突然変異率は 3% よりも優れています
どうすればこれを解決できますか?
ご協力ありがとうございました