(重新)从C++开始(用于科学计算)

16 c++ scientific-computing

我有各种语言的编程.我一直在使用MATLAB实现我的研究代码(在过去的几个月里),并且第一次真正注意到MATLAB v $ C的执行速度的差异.(尽管我喜欢超快速的原型设计功能).

我期待拾取C++并开始在我的研究中使用它.我知道OOP并编写了相当长的Java(相对较长的背面)和C++(甚至更长的背面).我现在想深入了解C++,因此需要对资源的建议:

  • 我需要哪些C++东西(STL和.)来真正好好利用C++?
  • 什么是开始使用的好教程/手册?
  • 什么是C++的数字/科学库?GSL?是否有类似的(功能)Scipy/Numpy for C++?

我将在Linux上编程,所以我将使用g ++.

任何指向以前的SO问题的指针也表示赞赏.

Hig*_*ark 7

您将希望尽快掌握并行编程.对于消息传递,我喜欢Karniadakis和Kirby的这本书.关于OpenMP的书籍,对于分布式内存编程,这个是最好的.

如果您可以访问它们,那么英特尔的线程构建模块,数学内核库和集成性能基元就可以获得.如果没有,有很多开源替代品,开始看Netlib.

哦,我差点忘了BOOST,这是必须的.

  • 他刚刚进入C++.你的方法将在他开始创造竞争条件之前让他永远不会解决他的记忆泄漏问题. (7认同)

xsc*_*ott 5

关于像Numpy这样的数字内容,你应该看看两者:

Blitz ++ http://www.oonumerics.org/blitz/

Jama/TNT http://math.nist.gov/tnt/download.html