项目简介
本项目是一个基于C++的数值计算框架,为数值计算课程打造了简单且通用的可移植框架。主要目标是实现标准数值方法,探索达到峰值性能的可能,同时保证数值稳定性与精度。此外,还对多种线程模型和数值算法的实现进行了探索,以及不同编译器和语言(如C11和Fortran2008)的性能比较。
项目的主要特性和功能
- 通用数值计算框架:支持多种数值计算任务。
- 多种数值方法实现:涵盖矩阵运算、数值积分等标准数值方法。
- 性能优化:采用CPU指令集优化、内存对齐等多种性能优化技术。
- 多线程支持:支持串行、C++11标准线程、OpenMP、Cilk、TBB等多种线程模型。
- 多语言实现:核心数值例程在C++11、C11和Fortran2008中实现,方便比较不同编译器性能与代码可读性。
- 无第三方依赖:代码可在多种平台运行,无需任何第三方依赖。
安装使用步骤
安装
- 环境要求:
- CMake 2.8或更高版本。
- 支持C++11的C++编译器(如GCC 4.8.4+、Clang 3.5+、Intel C/C++ Compiler 16+)。
- 可选:C11和Fortran编译器。
- 可选:Boost库(推荐版本1.54.0+)。
- 下载源码:
bash mkdir calc-build cd calc-build
- 配置构建: 使用CMake配置构建,可选择不同构建变体:
basic
:标准构建,启用Boost和quadmath支持(如果找到)。vanilla
:无外部依赖的构建。full
:包含所有可选外部依赖的构建。 例如,配置vanilla构建:bash BUILD_VARIANT=vanilla cmake ../calc
- 编译:
bash make
使用
- 命令行选项:
若构建时启用了Boost::program_options,可使用
-h
选项查看帮助信息。例如:bash ./bin/quest01-1 -h
- 运行示例:
运行程序时,可通过命令行参数指定算法、线程模型、精度等。例如:
bash ./bin/quest01-1 -A data1024 -B data1024 --verbose=6 --precision=64 --algorithm=num-cpp-b
- 查看版本信息:
使用
--version
选项查看系统、版本和构建信息:bash ./bin/quest01-1 --version
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】