littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于C语言的并行目录压缩与解压工具

项目简介

本项目是基于C语言开发的并行目录压缩与解压工具。传统压缩工具(如zip和gzip)在处理超大数据集时,因单线程特性效率较低。本工具结合Open MPI和OpenMP技术,采用分片技术实现并行压缩与解压,有效提升了大目录的压缩与解压速度。

项目的主要特性和功能

  1. 并行压缩与解压:借助MPI和OpenMP技术,对文件分片并分配给多进程或多线程并行处理,提高压缩与解压效率。
  2. 分片压缩:采用分片策略,将文件或文件块分配给不同压缩分片独立压缩,适合大文件或大目录快速压缩。
  3. 文件验证:压缩时为每个文件块添加MD5哈希值,解压后通过哈希值验证文件完整性,确保数据无损。
  4. 跨平台支持:可在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】