Linux下SuiteSparse的下载与编译

前言

SuiteSparse 是一个用于稀疏矩阵计算的开源库,它提供了一系列高效的算法和工具,用于解决线性代数和优化问题中的稀疏矩阵操作。

SuiteSparse Matrix Collection 是由 Tim Davis 创建和维护的一个稀疏矩阵集合,其中包含了各种各样的真实世界和人工生成的稀疏矩阵。网址为https://sparse.tamu.edu/。(https://sparse.tamu.edu/)

下面介绍一下在Linux环境下下载编译SuiteSparse库。

下载编译

  1. 安装必要的编译软件CMake
bash 复制代码
sudo apt-get update
sudo apt-get install build-essential cmake

可以通过下面命令来查看一下CMake的版本。

bash 复制代码
cmake --version

我使用上述命令安装的cmake是3.16版本的,后面编译时报错说需要3.22以上的CMake。所以我需要手动下载CMake。版本满足要求的小伙伴可以忽略下面步骤:

bash 复制代码
#卸载旧版本的 CMake
sudo apt-get remove cmake
#使用wget下载3.25版的CMake,然后把它安装到/opt/cmake目录里
wget https://github.com/Kitware/CMake/releases/download/v3.25.3/cmake-3.25.3-linux-x86_64.sh
sudo mkdir /opt/cmake
sudo sh cmake-3.25.3-linux-x86_64.sh --prefix=/opt/cmake --skip-license
#为了让系统识别新的 CMake,需要更新 PATH 环境变量
echo 'export PATH=/opt/cmake/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
#查看是否正确安装新版本的CMake
cmake --version
  1. 下载依赖包
    SuiteSparse本身要依赖很多包,所以要提前把这些包下载好后面编译才不会报错。
    我们不用去特定把这些包装在suiteSparse目录下,apt-get会帮我们自动管理的。
bash 复制代码
sudo apt-get install libopenblas-dev
sudo apt-get install libgmp-dev
sudo apt-get install libmpfr-dev

下面是对依赖的包的解释:

BLAS 是一组用于执行常见线性代数运算的库,通常由底层优化的线性代数库(如 OpenBLAS、Intel MKL 或 ATLAS)提供。

GMP 是一个用于高精度计算的库,SuiteSparse 的一部分需要使用它。

MPFR 是 SuiteSparse 的一个依赖项,用于处理高精度浮点数计算。

  1. 下载suiteSparse并编译安装
    获取suiteSparse源码:
bash 复制代码
git clone https://github.com/DrTimothyAldenDavis/SuiteSparse.git

切换到 SuiteSparse 源代码所在的目录,并创建目录:

bash 复制代码
cd SuiteSparse
mkdir build
cd build

运行 CMake 配置

bash 复制代码
cmake ..

编译 SuiteSparse。这个编译需要花很长时间,耐心等待吧

bash 复制代码
make

将 SuiteSparse 安装到系统目录中

bash 复制代码
sudo make install
相关推荐
Decay__3 小时前
VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇)
运维·数据库·sql·mysql·架构
测试界的小码农3 小时前
【Linux 命令实战(06):Linux 文件权限管理,掌握 chmod、chown、chgrp】
linux·运维·服务器
艺杯羹4 小时前
1Panel 装好后 ufw 仍是 inactive:一次服务器安全盲区复盘
服务器·数据库·安全·网络安全·系统架构·实战·1panel
陈希1234 小时前
负载均衡与高可用:LVS、HAProxy、Keepalived 实战
运维·负载均衡·lvs
一条破秋裤5 小时前
【1114】【并发控制】【笔记】
linux
2035去旅行6 小时前
ADB的底层原理
linux·adb·嵌入式·arm·soc
武子康6 小时前
单卡 A6000 跑 Qwen-Drive:怎样留下可比较的第一条基线?
linux·人工智能·深度学习
女神下凡6 小时前
芯参谋(107):杰理AC_中科蓝讯_开发指南
linux·服务器·网络·单片机·嵌入式硬件
落羽的落羽6 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
SQL778 小时前
IT运维发展史,一部宏伟史诗
运维·运维发展史