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

計算科学の学習/教育の問題に言及する

7
すべての計算科学者が持つべき中核スキルは何ですか?[閉まっている]
すべての科学者は、統計について少し知っておく必要があります。相関の意味、信頼区間とは何かなどです。同様に、すべての科学者はコンピューティングについて少し知っておくべきです。問題は何ですか?すべての作業科学者がソフトウェアの構築と使用について知っていると期待するのは合理的ですか?コアスキルのリスト --- 名前に「クラウド」または「ペタ」を使用して何かに取り組む前に、人々が知っておくべきこと--- 基本的なプログラミング(ループ、条件、リスト、関数、およびファイルI / O) シェル/基本シェルスクリプト バージョン管理 プログラムをどれだけテストするか 基本的なSQL このリストにはないものがたくさんあります:マトリックスプログラミング(MATLAB、NumPyなど)、使い慣れたスプレッドシート、ほとんどのプログラミング言語と同じくらい強力です)、Makeなどのタスク自動化ツールなど。 だから、あなたのリストには何がありますか?すべての科学者が最近知っていることを期待することは公平だと思いますか?そして、それのためのスペースを作るために上のリストから何を取りますか?すべてを学ぶのに十分な時間はありません。
52 education 

7
フロップカウントによるアルゴリズム分析は時代遅れですか?
私の数値解析コースでは、問題のサイズに対して、必要な浮動小数点演算(フロップ)の数を数えることにより、アルゴリズムの効率を分析することを学びました。たとえば、数値線形代数に関するTrefethen&Bauのテキストには、フロップカウントの3Dに見える写真さえあります。 キャッシュにないものをフェッチするためのメモリレイテンシは、フロップのコストよりもはるかに大きいため、「フロップは無料」と言うのが流行しています。しかし、少なくとも数値解析コースでは、フロップを数えることを生徒に教えています。代わりに、メモリアクセスをカウントするように教える必要がありますか?新しい教科書を書く必要がありますか?または、メモリアクセスがマシン固有であり、時間を費やすことができませんか?フロップまたはメモリアクセスがボトルネックであるかどうかに関して、長期的な傾向はどうなりますか? 注:以下の回答のいくつかは、「実装を強烈に書き換えて、数フロップを節約するか、キャッシュのパフォーマンスを向上させるべきですか?」しかし、私が求めているのは、「算術演算またはメモリアクセスの観点からアルゴリズムの複雑さを推定する方が便利ですか?」という行に沿ったものです。

8
ような代数式を単純化できるオープンソースまたはアクセスしやすいソフトウェアはありますか
私は常に物事を手作業で計算しますが、今では私の仲間は厄介になり、上の表現のように物事をプラグインするだけで多くの反復運動をしています。これらの種類の方程式を単純化するためのPythonやRなどのオープンソースソフトウェアに特に興味があります。私はウルフラムアルファを使用してみましたが、私は失敗しました。式x = √を置き換えることができるオープンソースソフトウェアパッケージを方程式x 2 +2x+3に代入し、結果を単純化しますか?具体的には、コマンドのようなソフトウェアパッケージを探しています。x=2–√t−1x=2t−1x=\sqrt{2}t-1x2+2x+3x2+2x+3x^{2}+2x+3simplify

7
計算科学にはプログラミングが含まれますか?
ウィキペディアで計算科学について読みましたが、私の理解はあまり明確ではありません。 計算科学にはプログラミングが含まれますか?計算科学は、ブランクが任意の学問分野(材料科学、工学、化学、生物学など)になる可能性のある計算_ ____とどの程度違いますか?(私は計算材料科学をやっています。)

3
HPCシステムの作成とプログラミングをどのように勉強すればよいですか?
私は必ずしもHPCの多くの仕事をするわけではない分野にいます。そして、それが遭遇するとき、それはしばしば他の分野の研究者が彼らの方法などへの新しいアプリケーションを探求する結果です。主にこれが意味することは、それが研究の過程で実際に導入されたり、ワークショップ、セミナーなどであまり育てられたりしないことです-それを必要とせずに自分のキャリア全体に行くことが可能です。 しかし同時に、私ができる仕事の多くは、利用可能なHPCリソースをより有効に活用することで恩恵を受けることができます。そのほとんどは、うまく並列モンテカルロシミュレーションの形で行われます。 私の問題は、クラスターやMPIなどの使用方法を学習するためのリソースを見つけることです。 これらのタイプのシステムでのプログラミング、または独自の非常に控えめなHPCセットアップのセットアップと実行に関する書籍に関する提案はありますか?
16 hpc  education 

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が何であるかを知っていると感じます。再び遭遇した場合、何が起こっているのかがわかります。私は自分を欺いていますか?

1
計算物理学で知られる大学
私は計算物理学に非常に興味があり、これらのトピックを研究するのはとても楽しいです。私は1学期を海外に行くことを計画しているので、私はどの大学が計算物理学で知られているのだろうと思っていましたか?特にアメリカの大学に関しては? 計算物理学は物理学の巨大で独立した分野ではなく、理論物理学部門に統合されていることが多いことを知っています。しかし、それにもかかわらず、活発で成長している研究グループに関するヒントや提案を非常に感謝しています。 編集:私が興味のあるトピックについてもう少し詳細を追加するように頼まれました。 私は第4学士学期であり、格子量子場の理論についてはほとんど何も知らないので、それは少し難しいです。ですから、特定の研究分野を好むと言うのは難しいです。 私は、理論的背景が得られたらすぐに専門化できるように、計算物理学に関するいくつかの講義を行ったり、幅広い可能性を提供したりするような種類の大学/学部を見つけたいと思っていました。
14 education 

6
C / C ++でBLASの参照レベルの実装はありますか?
netlib BLAS実装は優れたリファレンスであり、ほとんどが最適化されておらず、十分に文書化されています(例:zgemm)。ただし、Fortran 77に含まれているため、より現代的なプログラミング教育を受けた人にはややアクセスしにくくなっています。C / C ++にnetlibのようなBLASの参照レベルの実装はありますか?
11 blas  education 

5
数学や計算の勉強に集中することが望ましいですか?
クリロフ部分空間法に関する私の研究と並行して、HPCの背後にある数学を一歩前進させるか、計算の理論(ハードウェア、OS、コンパイラなど)を探索するオプションがあります。現在、私は両方ともちょうど得るために十分に知っています。たとえば、CGの方程式と反復法の基本をどのように導出するかは知っていますが、詳細や、PreconditionersやConvergenceなどのより複雑なものについてはわかりません。同様に、有限要素法の基本(弱形式、非弱形式、コドメインやガラーキンなど)は知っていますが、その深さはわかりません。計算の面では、可能なすべての言語でシリアルにコーディングする方法を知っており、OpenMPとMPIを十分に使用できます。私はハードウェアとキャッシングをそれほどよく理解していません。 私の質問は次のとおりです。何に集中すべきか:数学または計算?それらはHPCで分離不可能ですか?一方について学習することを推奨しますが、他方については学習しませんか? 編集:私は現在機械工学を専攻しており(後悔しています)、工学と計算(流体、熱伝達など)のコースをたくさん持っています。私は今年HPCの大学院に入学する予定で、卒業研究を始める前に何らかの側面(Math / Comp / Hybrid)を強化したいと考えています。私は数学とコンプが同じように好きです(だから「もっと楽しむことをする」は冗長です)。

3
計算手法を学ぶための優先事項、大学院生としてライブラリを使用するのと比較して、自分のコードをいつ書くべきですか?
私は大学院で工学の研究を始めており、計算科学プロジェクトに取り組んでいます。ここで、独自のアルゴリズムを実装することの利点と欠点についていくつかの議論があったことに気づきました。独自のアルゴリズムを実装する場合とライブラリを使用する場合の費用便益分析は、大学院生である場合と異なりますか?

4
計算科学コースの学生のパフォーマンスをどのように評価できますか?
計算科学のコースを教える必要がある人として、私は古くからの質問に直面しています。「標準」のテスト方法でテストするのが難しいアプリケーションに依存する主題を学習する学生の能力をどのように評価するのですか(筆記試験または口頭試験)?コースの一部は、抽象的なレベルでの理論と方法の理解に依存します。そのために、これらの概念に対して筆記テストを引き続き使用したいと思います。ただし、これらの方法の実際の使用に関する理解をテストするには、別のアプローチが必要です。 さまざまなプラットフォーム(MATLAB、Modelica、Mathematica、その他の言語向け)の急増だけでなく、インターネット接続やテストセキュリティにも関連する自然な課題を考えると、学生の理解を実際に評価するための新しい方法または独自の方法に興味があります数値的方法。(テストのセキュリティを促進する機能は特に望ましいです。) 編集:私が教えているクラスは入門レベルのコースであることにも言及する必要があります。そのため、生徒は比較的小さな知識ベースしか利用できません。
10 education 

1
通常のルンゲクッタ法はSDEに一般化できないという理解しやすい議論はありますか?
確率微分方程式(SDE)を解く単純なアプローチは次のとおりです。 通常のマルチステップのルンゲクッタ法を採用し、 基礎となるウィーナープロセスの十分に細かい離散化を使用し、 ルンゲクッタ法の各ステップをオイラー丸山に類似させます。 今、これは複数のレベルで失敗し、私はその理由を理解しています。しかし、私は今、最初にルンゲクッタ法と確率微分方程式の知識がほとんどない人にこの事実を納得させるように命じられています。私が知っているすべての議論は、私が与えられた文脈でうまくコミュニケーションできるものではありません。したがって、私は上記のアプローチが破滅的であるという簡単に理解できる議論を探しています。

3
科学計算と数値分析
私はコンピュータサイエンスと数学の二重の専攻です。私は両方の主題が大好きです。おそらく科学計算の分野で、大学院生になることを考えています。科学計算と数値解析の本当の違いは何ですか?彼らはキャリアとして研究されていますか?

2
(自己)教育のための簡単なMHDシミュレーションコード
電磁流体力学の問題を解くための超単純な計算コードが欲しいのですが。高精度でもパフォーマンスでも問題ではありません。プラズマの定性的な振る舞いを視覚的に探求するだけではありません。私にとって重要なのは: 一般性-MHDの特定のサブ問題に特化すべきではありません 動作させるのは簡単 -インストールが難しいライブラリは必要ありません。入力はわかりやすく、いくつかの例で十分に文書化されています 読みやすく、変更しやすい -コードを読んで、MHDソリューションについて学ぶことができます。このコードを独自のMHDコード開発の開始点として使用できます。 このNavier stokesソルバーと同じくらい簡単なものが最適です python-numpyまたはjavaが最適ですが、C ++またはFortranは私にとって大きな問題ではありません。 今まで私は見つけました: 一部のライブラリ(MHD-Hermesとpython-mhd)はpythonにありますが、ドキュメントや使用例がないようです。 そして、これは 無料、高速、シンプル、そして効率的なTVD MHDコードで、frotranにありますが、400行しかありません 私は自分で何かを書くことを考えていましたが、同様のものがすでに利用可能であることを確認したいと思います。上のリンクからNavier-Stokesソルバーを取得し、FFTポアソンソルバー(またはParticle Mesh Ewald)によって電位と磁気ポテンシャルを導入するだけで、かなり簡単になると思います。

9
Cを学ぶ必要がありますか?
私はサイエンティフィックコンピューティングの博士課程の学生で、過去数か月間、PythonとC ++を正しい方法で学ぶのにかなりの時間を費やしました。私はC ++をよく学んだと感じています。良い参考書を手元に置いておけば、Pythonを使用して自分のやりたいことができるようになります。 また、MATLABを十分に理解しているため、自分のアイデアのプロトタイプを作成し、解決策を得ることができます。(もし私が最初の選択であるPythonをコーディングするのに飽きすぎている場合)。 CとC ++を1つの "C / C ++"にまとめる必要があることをここで何度か読んだことがあります。それらは異なる動機を持つ非常に異なる言語であり、私はその見解に完全に同意します。 私は常に学習しているのでC ++を "知っている"と主張することはできませんが、それをどのように使用すべきか、どのように使用すべきでないかはほとんど理解していると思います。私が学んだ最初の言語はCでしたが、最後に使用してから非常に長くなります。私の質問は本質的にこれです: 私がMATLAB、C ++、Pythonを知っていることを考えると、Cの学習に時間をかけるべきですか?上記の3つの言語についての知識は、コーディングするのに十分ですか? 私の研究は、数値線形代数の側面に関するものですが、離散イベントシミュレーション/確率論的プロセスのコンサルティングも行っています。私の意図は業界で働くことです(私の顧問は、C ++を学ぶことを勧めたので、彼には言語の個人的な好みはありませんが、雇用を続けることができます)。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.