【问题标题】:Resources for high performance computing in C++ [closed]C ++中高性能计算的资源[关闭]
【发布时间】:2008-09-26 22:20:51
【问题描述】:

我正在寻找详细介绍使用 C++ 进行高性能计算的编程技术的书籍或在线资源。

【问题讨论】:

  • 您是指大型服务器中的高处理吞吐量,还是减少小型(PC 或更小的)机器中的资源消耗?
  • 你可以考虑这个github.com/ohhmm/openmind/blob/…

标签: c++ performance


【解决方案1】:

实际上,我听说过的所有 HPC 代码都是用于求解线性方程组或 FFT 的。至少在使用的库中,这里有一些链接可以帮助您开始:

  • BLAS - 线性代数的标准例程集 - 诸如矩阵乘法之类的东西
  • LAPACK - 高级线性代数例程的标准集 - 像 LU decomp 这样的东西。
  • ATLAS - 优化 BLAS 实现
  • FFTW - 优化的 FFT 实现
  • PBLAS - 用于分布式处理器的 BLAS
  • SCALAPACK - 分布式 LAPACK 实现
  • MPI - 分布式系统的通信库。
  • PETSc - 可扩展的非线性和线性求解器(用户可扩展,与以上接口)

【讨论】:

    【解决方案2】:

    即使不是 FOSS,如果您需要执行这些库支持的任何操作(例如:信号处理、图像处理、矩阵数学)。当然,能否从中受益取决于您的平台。

    (不:我不为英特尔工作,但我是他们的快乐客户。)

    【讨论】:

      【解决方案3】:

      Trilinos 库和包套件为 HPC 提供了广泛的中间件库,包括稀疏、迭代线性求解器;非线性求解器;特征求解器; ODE & DAE 积分器,包括敏感性分析;优化(侵入性和黑盒);有限元接口;网状接口;预处理器;等等。所有这些包都是使用相当现代的 C++ 技术设计的(有 Python API 以及一些 C 和 Fortran)。在非常大规模的并行(5000+ CPU)模拟中使用了异常后果(核武器设计)并取得了巨大成功。这些软件包提供了一套比 BLAS 等更高级别的功能。

      【讨论】:

        【解决方案4】:

        第一件事可能是阅读MPI(Message Passing Interface),这是 HPC 节点互连中的事实标准。

        【讨论】:

          【解决方案5】:

          查看Eigen Vector/Matrix library。 api 非常优雅,生成的程序非常快(由于 SSE2 架构的显式矢量化)..

          【讨论】:

            【解决方案6】:

            尽管 14 岁以上,Expression Templates 的开创性工作仍然被认为是多年来最杰出的 C++ 工作。快速、高效、安全……我已经使用了这些技术,它们真的很了不起。

            编辑: 如果上面的链接仍然断开,这里是alternate reference for Expression Templates。这篇 DDJ 文章引用了 Veldhuizen 的原创作品。

            【讨论】:

            【解决方案7】:

            看看The ADAPTIVE Communication Environment (ACE)。它是用于 C++ 中高性能应用程序的模板和对象库。它具有出色的线程、网络等跨平台原语。

            【讨论】:

              【解决方案8】:

              无论您编写什么内容,以及您从一开始就为性能设计了多少,很有可能它会从性能调整中受益。通常程序越大,受益越多。 THIS 是一种简单有效的调优方法。它基于“深度采样”,一种在不强调测量的同时提供准确诊断的技术。

              你也可以看看http://en.wikipedia.org/wiki/Performance_analysis#Simple_manual_technique

              【讨论】:

                【解决方案9】:

                高可扩展性 - 构建更大、更快、更可靠的网站。

                http://highscalability.com/

                还有:

                http://www.ddj.com/hpc-high-performance-computing/

                【讨论】:

                  猜你喜欢
                  • 2015-12-03
                  • 1970-01-01
                  • 2010-09-15
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-09-10
                  • 1970-01-01
                  相关资源
                  最近更新 更多