6
A
回答
3
下面是一些阅读列表。不知道它对你来说是否太基础:
Writing Scientific Software:一个很好的后续基本的“学习在C++程序”或其他。
Parallel Scientific Computing in C++ and MPI:如果你不打算平行你的应用程序,你应该。
Engineering and Scientific C++:一个很好的,特定领域的C++编程入门。语言细节有点过时,但整体方法还没有老化。
我建议你阅读所有答案,例如'我应该如何设计一个大型C++程序?'。为其他可能感兴趣的书提供建议。
至于最佳做法,这里有一些建议。再次,我不确定你的出发点,所以有些可能太基本了:
- 正如我上面写的,你应该从一开始就计划开发一个并行程序。如果群集上的消息传递不是你的一杯茶,那么至少应该考虑为多核桌面共享内存编程。 OpenMP值得调查。
- 让自己熟悉现有的工作。 BOOST库可能是必不可少的。虽然我赞赏你打算自己制作的意图,但不要忽略现有的已建立的数字图书馆,例如你会在Netlib找到的BLAS和LAPACK。根据您的开发平台和工具集,您可能会发现它们已经安装。
- 如果您来自科学背景,您可能想要提高您对软件工程的知识和技能。问题如:源代码管理;测试;代码剖析和优化;深入了解你的编译器可以做什么。根据我的经验,许多计算科学家在所有这些东西中都有薄弱的背景。
- 您应该计划花费(大约)尽可能多的时间来设计和测试程序,而不是实际编码它。即使在你自己工作之前,在你开始编码之前,有一个很好的行动计划是很重要的。没有理由为什么它必须在开始时的每一个细节都完整,但没有地图就不会进入领土。
- 你对你想模拟的物理世界的方面保持沉默。在各种物理模拟中有很多现有技术,如果你更具体一些,SO可能会提供一些更具体的建议。
1
开始Numerical recipes: the art of scientific computing。一个相当全面的内容。但是,请记住两件事:
- 它包含C++和Fortran 90代码示例。
- 实际上忘记了使用您的项目中的任何代码示例 - AFAIK它们都是受版权保护的,必须单独获得许可才能重用。
不过,如果您需要它用于教育目的,这本书是强烈推荐阅读。
+0
那么,当然,如果您为许可证付费,您可以使用来自Numerical Recipes的代码。这样的许可证并不昂贵。 – 2010-09-30 18:13:38
1
看看OpenModelica。
相关问题
- 1. 从头开始实施LinkedList方法
- 2. 实施IModelBinder时的最佳实践
- 3. 最佳实践:iAds到iPhone的实施
- 4. 实施哈希的最佳实践?
- 5. 缓存实施的最佳实践
- 6. 学习.NET/OOP最佳实践的最佳方法?
- 7. 最佳实施方法has_n
- 8. X509证书实施最佳实践
- 9. NoSql/Raven DB实施最佳实践
- 10. AES-256最佳实践实施
- 11. Azure ACS - 最佳实践实施
- 12. 最佳实践实施时copyWithZone:
- 13. 多货币最佳实践与实施
- 14. 学习Git最佳实践
- 15. Ember和国际化:请求最佳实践和实施方法
- 16. 最佳实践request.method方法
- 17. Zend模型最佳实践 - 学说?
- 18. GWT:单元测试/模拟JSNI方法的最佳实践?
- 19. Mockito中模拟方法的单元测试最佳实践
- 20. 最佳实践从一个const-方法
- 21. 从头开始实施互斥锁
- 22. JMS开发最佳实践
- 23. Django开发最佳实践
- 24. Android开发最佳实践
- 25. ASP最佳实践开销
- 26. 学习新技术的最佳实践
- 27. java中mutator方法的最佳实践
- 28. 最佳实践CodeIgniter模板
- 29. Rails模型最佳实践
- 30. 从迭代实现django OR查询的最佳实践方法?
嗨。非常感谢您的帮助和广泛的答复。关于你的最后一点,这个想法是开发一些新的分子动力学代码。一些建议在这里?谢谢 – flow 2010-10-01 09:51:08
分子动力学超出了我的肯定,但我看到维基百科文章有一些指向软件的指针。如果您无法找到开放源代码进行检查,那么我会感到非常惊讶,并且文献非常广泛。 – 2010-10-01 11:12:55