Questions tagged «libraries»

相关编程功能的集合,用于实现一组抽象数据类型,数学函数或其他更高级别的分析算法,以便其他程序可以使用和重新使用它们。

17
不将库用于标准数值算法是常见的,为什么?
科学计算库(如GSL)中提供了许多数值算法(积分,微分,内插,特殊函数等)。但是我经常看到带有这些功能的“手动”实现的代码。对于不一定要公开发行的小型程序,计算科学家是否普遍习惯在需要时自行实施数值算法(我的意思是从网站,数值食谱或类似软件进行复制或转录)?如果是这样,是否有特定的原因要避免链接到GSL之类的东西,还是比其他东西更“传统”? 我问是因为我是代码重用的忠实拥护者,这表明我应该尽可能尝试使用现有的实现。但是我很好奇,是否有理由认为原理在科学计算中没有在一般编程中那么有价值。 忘了提一下:我特别是在问C和C ++,而不是像Python这样的语言,使用Python有明显的好处(执行速度)。
54 libraries  c 



2
解决稀疏线性系统的库
有许多不同的库可以解决稀疏的线性方程组,但是我发现很难找出区别。 据我所知,主要有三个软件包: Trilinos,PETSc和Intel MKL。它们都可以做稀疏矩阵求解,它们都很快(据我所知,我还不能在其中任何一个上找到可靠的基准),并且它们都是可并行化的。我找不到的是差异。 那么,那里的不同的稀疏线性系统求解器之间有什么区别呢?

10
快速,轻量级的C ++张量库,可用于尺寸无关的代码
我正在寻找一个支持维度无关代码的C ++张量库。具体来说,我需要沿每个维度(最多3个)执行操作,例如,计算加权和。尺寸是模板参数(因此是编译时常数)。另一个限制是该库应该相对轻量级,因此本征/ Boost样式要比Trilinos / PETSc轻。 有什么建议么? 注意:我查看了Eigen,并认为它几乎完全符合轮廓,如果它不限于2D张量。如果我对此感到误解,请纠正我。
20 c++  libraries  tensor 

4
是否有用于结构化网格自适应网格细化的通用库?
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 自适应网格细化(AMR)是解决PDE数值解中空间尺度变化很大的常见技术。在结构化网格上存在哪些针对AMR的通用库?理想情况下,我希望本着PETSc的精神,库仅处理自适应网格,而我提供物理和离散化(有限差分/体积/元素)。 理想的图书馆是 模块化:不决定如何编写代码或过多的数据结构 General:不在乎我使用的是哪种离散化 高效:不会产生太多开销 并行且高度可扩展 仅适合这些条件中的一个子集的库仍将受到关注。 附录:我知道Donna Calhoun的AMR软件包的详细列表,但是我不知道其中哪个(如果有)符合上述条件。因此,我主要感兴趣的是听取具有一个或多个(或更多)软件包的实际经验的人,以了解他们如何衡量这些术语。

2
哪些库对多网格有良好的高级支持?
我打算使用多重网格来计算一些特征值和向量,并且我注意到PETSc对多重网格提供了高级支持。PETSc文档说不应使用PETSc的这一部分,因为它将很快被替换。 哪些其他库对多网格提供了高级支持,并且PETSc大约多久后将发布新的多网格支持?


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

1
替换C ++中的Mathematica的QuasiMonteCarlo集成
我有一个Mathematica程序,使用该QuasiMonteCarlo方法在3或4维中执行一些积分。问题是,要花费一些令人讨厌的时间,以致于某些计算无法在我们的HPC群集上提供的最大工作时间内完成。因此,我正在考虑用C ++重写该程序,我怀疑它将大大提高它的速度。 我查看了GSL文档,虽然有关于准随机序列和常规MC集成的部分,但没有任何东西可以将它们组合在一起。同样,一两个Google搜索并没有发现任何看起来像是广受信任的实现。在C ++中,经过良好测试的QMC集成实现方式有哪些选择? 为了保持一致性,如果可以选择,我宁愿使用Mathematica实现的类似于Halton-Hammersley-Wozniakowski方法的方法。

3
高效的三对角矩阵算法实现
我正在使用隐式数值方案解决物理问题。这导致我用三对角矩阵求解线性方程。我已经从Wikipedia 编写了此算法。我想知道是否有一个有效的库可以优化方式解决这类方程。一个重要的注意事项是,矩阵本身仅在系统参数发生变化时才会发生变化,因此我有机会对一些算法步骤进行了预先计算,以获得了不错的性能表现。我正在使用C ++。

3
我正在寻找C ++中的并行动态图库
您好scicomp社区, 我曾使用诸如NetworkX(Python),JUNG和YFiles(Java)之类的框架从事图算法研究。我现在正在进入并行和高性能计算领域。对于一个新项目,我正在寻找具有以下功能的C ++图形库: 具有直观的界面,可进行算法开发 支持动态操作:例如,任意节点/边缘的插入和删除 支持并行化:例如,使程序员免受多线程问题的影响 内存开销低,适合高性能计算 请建议一些图书馆,并讨论这些标准以及利弊。

1
三角格上的傅立叶变换库
我正在寻找在二维三角形或六边形格子上的离散傅立叶变换(DFT)的合理快速实现。 我希望能找到指向此类实现的指针(尤其是易于从Python或Mathematica使用的指针),以及对如何将这一问题减少到许多系统中已经内置的一维DFT的描述。

4
在C / C ++中寻找Runge-Kutta八阶
我想在使用Windows机器以C ++编写的天体力学/天体动力学应用程序中使用Runge-Kutta 8阶方法(89)。因此,我想知道是否有人知道有文档记录且可以免费使用的好的库/实现?只要用C编写就可以了,只要不存在任何编译问题即可。 到目前为止,我已经找到了这个库(mymathlib)。该代码似乎还可以,但是我还没有找到有关许可的任何信息。 您能通过揭示一些您可能知道并且适合我的问题的替代方法来帮助我吗? 编辑: 我看到确实没有像我期望的那样有太多的C / C ++源代码。因此,Matlab / Octave版本也可以(仍然必须免费使用)。

2
科学计算中基于任务的共享内存并行库
近年来,出现了一些库/软件项目,它们提供了某种形式的通用数据驱动的共享内存并行性。 主要思想是,程序员无需编写显式的线程代码,而是将其算法实现为相互依赖的任务,然后由共享内存计算机上的通用中间件动态调度这些任务。 此类库的示例是: 夸克:最初是为MAGMA并行线性代数库设计的,似乎也已用于并行快速多极子方法。 Cilk:最初是一个基于MIT的项目,现在得到了Intel的支持,实现为C的语言/编译器扩展,用于Cilkchess计算机国际象棋软件以及FFTW中。 SMP superscalar:在巴塞罗那超级计算中心开发,基于#pragma扩展在很多方面类似于Cilk 。 StarPU:基于类似库的“小代码”,可以针对几种不同的体系结构(包括GPU)进行编译和调度。 OpenMP任务:从3.0版开始,OpenMP引入了可以异步调度的“任务”(请参阅​​规范的2.7节)。 英特尔的线程构建基块:使用C ++类创建和启动异步任务,请参阅教程的第11节。 OpenCL:在多核上支持基于任务的并行性。 尽管有很多文献描述了这些库/语言扩展的内部工作方式以及它们在特定问题上的应用,但我仅遇到了很少的例子将它们用于科学计算应用中。 所以这是一个问题:是否有人知道使用这些库/语言扩展中的任何一个或类似的用于共享内存并行性的科学计算代码?

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.