littlebot
Published on 2025-04-13 / 1 Visits
0

【源码】基于C++的数值计算框架

项目简介

本项目是一个基于C++的数值计算框架,为数值计算课程打造了简单且通用的可移植框架。主要目标是实现标准数值方法,探索达到峰值性能的可能,同时保证数值稳定性与精度。此外,还对多种线程模型和数值算法的实现进行了探索,以及不同编译器和语言(如C11和Fortran2008)的性能比较。

项目的主要特性和功能

  1. 通用数值计算框架:支持多种数值计算任务。
  2. 多种数值方法实现:涵盖矩阵运算、数值积分等标准数值方法。
  3. 性能优化:采用CPU指令集优化、内存对齐等多种性能优化技术。
  4. 多线程支持:支持串行、C++11标准线程、OpenMP、Cilk、TBB等多种线程模型。
  5. 多语言实现:核心数值例程在C++11、C11和Fortran2008中实现,方便比较不同编译器性能与代码可读性。
  6. 无第三方依赖:代码可在多种平台运行,无需任何第三方依赖。

安装使用步骤

安装

  1. 环境要求:
  2. CMake 2.8或更高版本。
  3. 支持C++11的C++编译器(如GCC 4.8.4+、Clang 3.5+、Intel C/C++ Compiler 16+)。
  4. 可选:C11和Fortran编译器。
  5. 可选:Boost库(推荐版本1.54.0+)。
  6. 下载源码: bash mkdir calc-build cd calc-build
  7. 配置构建: 使用CMake配置构建,可选择不同构建变体:
  8. basic:标准构建,启用Boost和quadmath支持(如果找到)。
  9. vanilla:无外部依赖的构建。
  10. full:包含所有可选外部依赖的构建。 例如,配置vanilla构建: bash BUILD_VARIANT=vanilla cmake ../calc
  11. 编译: bash make

使用

  1. 命令行选项: 若构建时启用了Boost::program_options,可使用-h选项查看帮助信息。例如: bash ./bin/quest01-1 -h
  2. 运行示例: 运行程序时,可通过命令行参数指定算法、线程模型、精度等。例如: bash ./bin/quest01-1 -A data1024 -B data1024 --verbose=6 --precision=64 --algorithm=num-cpp-b
  3. 查看版本信息: 使用--version选项查看系统、版本和构建信息: bash ./bin/quest01-1 --version

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】