项目简介
本项目是基于C语言开发的并行目录压缩与解压工具。传统压缩工具(如zip和gzip)在处理超大数据集时,因单线程特性效率较低。本工具结合Open MPI和OpenMP技术,采用分片技术实现并行压缩与解压,有效提升了大目录的压缩与解压速度。
项目的主要特性和功能
- 并行压缩与解压:借助MPI和OpenMP技术,对文件分片并分配给多进程或多线程并行处理,提高压缩与解压效率。
- 分片压缩:采用分片策略,将文件或文件块分配给不同压缩分片独立压缩,适合大文件或大目录快速压缩。
- 文件验证:压缩时为每个文件块添加MD5哈希值,解压后通过哈希值验证文件完整性,确保数据无损。
- 跨平台支持:可在MacOS和Linux/Ubuntu系统上运行,提供详细依赖安装和编译指南。
安装使用步骤
1. 安装依赖
运行项目前,需安装以下依赖:MPI、OpenMP、zlib、OpenSSL/MD5。
MacOS 安装步骤
确保已安装Homebrew,若未安装,参考Homebrew官网安装。执行以下命令安装依赖:
shell
brew install gcc openmp libomp openssl@3
Linux/Ubuntu 安装步骤
执行以下命令安装依赖:
shell
sudo apt install mpich zlib1g-dev libssl-dev
2. 编译程序
在MacOS或Linux系统上,使用以下命令编译程序:
shell
mpicc -fopenmp \
-I/opt/homebrew/opt/openssl@3/include \
-L/opt/homebrew/opt/openssl@3/lib \
main.c \
file_process/file_sort.c \
compression.c \
file_process/file_tools.c \
decompression.c \
verification.c \
hashmap.c \
-o main \
-lz -lssl -lcrypto -Wno-deprecated-declarations
3. 运行压缩程序
使用以下命令运行压缩程序:
shell
mpirun -n <进程数> main compress <源目录> <输出目录>
- <进程数>
:指定使用的进程数量。
- <源目录>
:包含待压缩文件的目录。
- <输出目录>
:压缩后的文件输出目录。
4. 运行解压缩程序
使用以下命令运行解压缩程序:
shell
mpirun -n 1 main decompress <源目录> <输出目录>
- <源目录>
:包含压缩文件(.zwz格式)的目录。
- <输出目录>
:解压后的文件输出目录。
5. 示例
shell
mpirun -n 2 main compress /tmp/Cache/temp/data /tmp/Cache/temp/output
mpirun -n 1 main decompress /tmp/Cache/temp/output /tmp/Cache/temp/output2
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】