Questions tagged «programming-paradigms»

14
为科学研究代码编写单元测试是否值得?
我坚信使用验证完整程序的测试(例如收敛测试)的价值,包括一套自动化的回归测试。在阅读了一些编程书籍之后,我也感到I,我“应该”编写单元测试(即,用于验证单个函数正确性并且不等于运行整个代码来解决问题的测试)。 。但是,单元测试似乎并不总是与科学规范相适应,并且最终会感到虚假或浪费时间。 我们应该为研究代码编写单元测试吗?

9
函数式程序设计与科学计算
如果这是一个模糊的问题,我深表歉意,但是这里有: 在过去的几年中,函数式编程在软件工程界引起了很多关注。许多人已经开始使用诸如Scala和Haskell之类的语言,并声称比其他编程语言和范例更成功。我的问题是:作为高性能计算/科学计算专家,我们应该对函数式编程感兴趣吗?我们应该参加这次小型革命吗? 函数式编程在SciComp工作领域中的优缺点是什么?

7
如果我希望将来的代码在petascale机器上运行,我应该投资哪种编程范例?
从对Top500的调查中可以很明显地看出,该行业正朝着处理核心呈指数增长的趋势发展。最大的超级计算机都使用MPI进行节点之间的通信,尽管似乎没有明显的节点上并行性趋势,并且使用最简单(但不一定是最有效)的方法将单个MPI进程映射到每个核心,自动来自编译器,OpenMP,pthreads,CUDA,Cilk和OpenCL的并行化。 我是维护和开发有潜力在世界上一些最大的超级计算机上使用的代码的一组科学家之一。假设开发人员时间有限,那么我该如何适应未来的发展,以便可以利用世界上功能最强大的计算机的性能?我应该对流程互连体系结构做出哪些假设?当我们进入众核时代时,将遭受哪些范式?在Petascale机器上是否可以在生产中使用分区的全球地址空间语言?



6
使用C ++模板的泛型和元编程在计算科学上有多大用处?
C ++语言通过模板提供通用的编程和元编程。这些技术已进入许多大型科学计算程序包(例如MPQC,LAMMPS,CGAL,Trilinos)。但是,它们在整体开发时间和可用性上是否具有相等或充分的效率,它们实际上对科学计算做出了哪些贡献,这些价值超出了诸如C或Fortran之类的非通用,非元语言。 给定科学计算任务,通过C ++模板进行的通用和元编程是否已证明通过任何易于理解的基准(代码行,人工工作等)衡量的生产率,表达力或可用性方面的改进?相应地,将C ++模板用于通用编程和元编程会带来哪些风险?


2
为什么计算科学家需要实现自己的std :: complex版本?
许多计算科学较为著名的C ++库如征,Trilinos和deal.II使用标准的C ++模板库头对象std::complex<>,表示复杂的浮点数。 在Jack Poulson 回答有关默认构造函数的问题时,他指出,“出于多种原因” 他std::complex在Elemental中具有自己的实现。那是什么原因 这种方法的优点和缺点是什么?

5
C ++或Python用于开发CFD库
您会说两种为计算连续体力学编写通用(有限体积,fem,dg)库的方法的优缺点?这就是我现在所看到的,所以请提供您自己的经验,不要为我而发火:): 1)C ++: 通用编程,虚函数,重载,速度...:所有可用的genreic + OOP工具来构建您想要的任何东西 大部分都提供低级库(没有广泛的科学和工程库开发,例如Python开发的库) 2)用于并行计算的Python +包装器(pyOpenCL等) 大量的各种支持库 编码您的想法:实施非常快 执行时间较慢 如果您想编写一个支持各种方法,处理复杂几何图形和问题的框架,那么您会选择什么?为什么选择?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.