Skip to content

Latest commit

 

History

History
75 lines (65 loc) · 3.46 KB

bitshuffle.mkd

File metadata and controls

75 lines (65 loc) · 3.46 KB
  • kiyo-masui/bitshuffle

0. bitshuffle简介

Bitshuffle是一个用于高效压缩和解压缩Numpy的多维数组的开源项目。它使用了一种基于位操作的压缩技术,可在保持数据准确性的前提下,显著减少存储空间和I/O带宽需求。

Bitshuffle库专门为具有规律的二进制数据设计,例如科学计算、传感器数据、遥感数据等。它特别适用于处理具有较高数据重复性和较低信息熵的数据。通过使用位重排算法,Bitshuffle可以将重复的二进制模式重新排列,以便更好地利用压缩算法的性质,从而实现更高的压缩比率和更快的I/O速度。

Bitshuffle项目包括两个核心库:Bitshuffle和Bitshuffle-HDF5。Bitshuffle用于压缩和解压缩Numpy数组,而Bitshuffle-HDF5则为HDF5文件格式提供了透明的压缩和解压缩功能,可从HDF5文件中读取和写入压缩的数据。

Bitshuffle具有跨平台的特性,可以在各种操作系统上使用,包括Linux、Windows和Mac OS。它还支持多种编程语言,如Python、C和C++,为用户提供了方便的接口和易于集成的能力。

Bitshuffle项目被广泛应用于科学计算、大数据分析、天文学、气候模拟等领域,以加快数据处理和降低存储成本。

1. 构建环境

    c# 系统信息
    [root@bdfffb2fc3db lib]#   cat /etc/os-release 
    NAME="Loongnix-Server Linux"
    VERSION="8"
    ID="loongnix-server"
    ID_LIKE="rhel fedora centos"
    VERSION_ID="8"
    PLATFORM_ID="platform:lns8"
    PRETTY_NAME="Loongnix-Server Linux 8"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:loongnix-server:loongnix-server:8"
    HOME_URL="http://www.loongnix.cn/"
    BUG_REPORT_URL="http://bugs.loongnix.cn/"
    CENTOS_MANTISBT_PROJECT="Loongnix-server-8"
    CENTOS_MANTISBT_PROJECT_VERSION="8"

# 内核信息
    [root@bdfffb2fc3db lib]# uname -r
    4.19.0-19-loongson-3

2. 安装软件包

python3.3 or later ,
HDF5 1.8.4 or later, 
HDF5 for python (h5py), 
Numpy and Cython
 pip3 install Cython

均通过yum安装
hdf5需要安装devel和static库 也通过yum安装
寻找hdf5的安装路径 rpm -qi/ql hdf5.loongrach64
发现hdf5的动态库和静态库在usr/lib64下

3.编译执行

python setup.py install --h5plugin --h5plugin-dir=spam --zstd 编译执行报错Can't find hdf5 with pkg-config fallback to static config 需要手动创建hdf5的pkg-config文件 使用命令 pkg-config --variable pc_path pkg-config 查找 pkg-config 的搜索路径。 在pkg-config的搜索路径下添加hdf5.pc 写入 ``` prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib64 includedir=${prefix}/include

Name: hdf5
Description: HDF5 Library
Version: 1.10.5
Cflags: -I${includedir}
Libs: -L${libdir} -lhdf5
```

保存后在运行,出现其他问题: loongarch64-loongson-linux-gnu-gcc: error: unrecognized command line option ‘-mcpu=native’; did you mean ‘-march=native’? error: command 'loongarch64-loongson-linux-gnu-gcc' failed with exit status 1 解决方案:这个错误是由于编译器不识别 -mcpu=native 这个参数引起的,它可能是由于平台或编译器版本的不同导致的。一种解决方法是将 -mcpu=native 参数替换为 -march=native,两者的作用是相同的 1.打开 setup.py 文件,并找到使用 -mcpu 参数的位置。 2.添加loongarch64架构。 3.保存文件