我有各种语言的编程。我一直在使用MATLAB实现我的研究代码(在过去的几个月里),并且第一次真的注意到MATLAB v $ C的执行速度的差异。(尽管我非常喜欢这个快速原型制作能力)。
我正在寻找C ++,并开始在我的研究中使用它。我知道OOP并编写了相当长的Java(相对较长的背面)和C ++(甚至更长的背面)。我现在想深入了解C ++,因此需要对资源提出建议:
我将在Linux上编程,所以我将使用g ++。
对先前SO问题的任何指示也表示赞赏。
答案 0 :(得分:7)
您希望尽快掌握并行编程。对于消息传递,我喜欢Karniadakis and Kirby这本书。关于OpenMP的书籍,对于分布式内存编程,this one是最好的。
如果您可以访问它们,那么英特尔的线程构建模块,数学内核库和集成性能基元很有用。如果没有,那么有很多开源替代品,开始关注Netlib。
哦,我差点忘了BOOST,这是必须的。
答案 1 :(得分:5)
关于像Numpy这样的数字内容,你应该看看两者:
Blitz ++ http://www.oonumerics.org/blitz/
和
Jama / TNT http://math.nist.gov/tnt/download.html
答案 2 :(得分:4)
在图书馆方面,查看Armadillo。它almost gives you the full extent of MATLAB's array manipulation syntax并使用LAPACK和BLAS(ATLAS)。
答案 3 :(得分:2)
本教程绝对不错,但您最初可能不想解决它。
http://www.parashift.com/c++-faq/
请务必使用以下网站阅读STL(标准模板库)和其他内容:
并查看Boost库:
为了更好地利用C ++,你需要至少学习STL,仅此一项就可以节省大量时间,但正如parashift所提到的,如果你不使用动态绑定,C ++ OOP只能用对象编程
答案 4 :(得分:-2)
TRNG是并行随机数生成库。它允许您创建多个独立的流,并且设计用于群集。