/ concept-collection / benchcompress
Sign in
concept-collection / benchcompress
benchcompress / README.md
84 lines · 2.5 KBCodeBlameHistory
30a2f07initialJeremy Magland 1# zia
769ad9aformatJeremy Magland 3A benchmarking framework for evaluating compression algorithms on numeric array datasets, with a focus on scientific data.
7ccd097update web-uiJeremy Magland 4
0602a7eui improvementsJeremy Magland 5Latest benchmark results: https://magland.github.io/zia/
33c9443delta encodingJeremy Magland 7## Overview
69b432bupdate READMEJeremy Magland 9Zia is a comprehensive benchmarking framework for evaluating compression algorithms on numeric array datasets. The system follows an automated workflow:
33c9443delta encodingJeremy Magland 10
69b432bupdate READMEJeremy Magland 111. **Defining Components**
12 - Algorithms are implemented in `zia_benchmark/src/zia_benchmark/algorithms/`
13 - Datasets are defined in `zia_benchmark/src/zia_benchmark/datasets/`
14 - Each component specifies metadata like version, tags, and compatibility requirements
33c9443delta encodingJeremy Magland 15
69b432bupdate READMEJeremy Magland 162. **Automated Benchmarking**
17 - Benchmarks run automatically via GitHub Actions on pushes to main branch
18 - For each compatible algorithm-dataset pair, measures:
19 - Compression ratio
20 - Encoding throughput (MB/s)
21 - Decoding throughput (MB/s)
22 - Results are verified by decompressing and comparing with original data
33c9443delta encodingJeremy Magland 23
69b432bupdate READMEJeremy Magland 243. **Result Storage**
25 - Results are committed to a dedicated `benchmark-results` branch
26 - Local and remote caching system prevents redundant rerunning of benchmarks (only modified or added components are re-benchmarked)
27 - Caching is based on algorithm and dataset versions
33c9443delta encodingJeremy Magland 28
69b432bupdate READMEJeremy Magland 294. **Web Interface**
30 - Interactive visualization at https://magland.github.io/zia/
31 - Filter and sort results by dataset or algorithm
32 - Visual charts for comparing performance metrics
33 - Export results to CSV for further analysis
33c9443delta encodingJeremy Magland 34
69b432bupdate READMEJeremy Magland 35## For developers
33c9443delta encodingJeremy Magland 36
69b432bupdate READMEJeremy Magland 37The project consists of two main components:
39- `zia_benchmark/`: Python package containing the core benchmarking framework, algorithms, and datasets
40- `web-ui/`: React-based web interface for visualizing benchmark results
42### Local Development Setup
441. Install Python dependencies:
45```bash
46cd zia_benchmark
47pip install -e .
49zia-benchmark --help
50zia-benchmark list
51zia-benchmark run --help
52```
542. Install web UI dependencies:
55```bash
56cd web-ui
57npm install
58```
603. Run web UI locally:
61```bash
62cd web-ui
63npm run dev
64```
9900d62formatJeremy Magland 65
66### Code Formatting
68This project uses pre-commit hooks to automatically format code before each commit. The formatting includes:
69- Python code formatting using black
70- TypeScript/JavaScript code formatting using npm scripts
72To set up the pre-commit hooks after cloning the repository:
741. Install pre-commit:
75```bash
76pip install pre-commit
77```
792. Install the git hook scripts:
80```bash
81pre-commit install
82```
84After this setup, code will be automatically formatted when you make a commit.
moveopenescclose