Metadata-Version: 2.4
Name: norc
Version: 0.0.1
Summary: Noise Resilient Hardware Counters in HPC
Author-email: Lukas Fuchs <lukas.fuchs@stud.tu-darmstadt.de>, Ahmad Tarraf <ahmad.tarraf@tu-darmstadt.de>, Alexander Geiß <alexander.geiss1@tu-darmstadt.de>
Maintainer-email: Lukas Fuchs <lukas.fuchs@stud.tu-darmstadt.de>, Ahmad Tarraf <ahmad.tarraf@tu-darmstadt.de>, Alexander Geiß <alexander.geiss1@tu-darmstadt.de>
Project-URL: Homepage, https://github.com/tuda-parallel/NORC
Project-URL: Documentation, https://github.com/tuda-parallel/NORC/docs
Project-URL: Repository, https://github.com/tuda-parallel/NORC
Project-URL: Bug Tracker, https://github.com/tuda-parallel/NORC/issues
Project-URL: Changelog, https://github.com/tuda-parallel/NORC/blob/master/CHANGELOG.md
Keywords: hardware counter,noise,HPC
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: numpy~=1.24
Requires-Dist: matplotlib~=3.7
Requires-Dist: PySide6~=6.6
Requires-Dist: termcolor~=2.4.0
Requires-Dist: pycubexr~=2.0.1
Requires-Dist: tqdm~=4.67
Provides-Extra: development-libs
Requires-Dist: black; extra == "development-libs"
Requires-Dist: isort; extra == "development-libs"
Requires-Dist: nbstripout; extra == "development-libs"

# NORC Analysis Components

**NORC** is a Python toolkit for measuring and analyzing the **noise resilience** of hardware counters in High-Performance Computing (HPC) systems.  
It provides both command-line utilities and a GUI for automated performance measurements, statistical analysis, visualization, and ranking of metrics.

---
## Installation

Clone the repository and install locally:

```bash
git clone https://github.com/tuda-parallel/NORC.git
cd NORC/analysis
pip install .
```

## Analyzing Results

NORC offers two types of analysis tools:
- **CLI Tools** – `norc_analyze`, [`norc_plot`](doc/plot.md), and [`norc_rank`](doc/rank.md)  
- **GUI Tool** – `norc_gui`

### NORC CLI
All CLI tools accept an **experiment directory** as input.  
`norc_plot` and `norc_rank` must be run **after** `norc_analyze` has processed the experiment.

Example workflow:
```bash
norc_analyze /path/to/experiment     # Perform analysis
norc_plot /path/to/experiment        # Generate plots
norc_rank /path/to/experiment        # Rank metrics
```
### NORC GUI
The GUI (`norc_gui`) requires no parameters.
After launch:
1. Use the status bar to select the root directory of an experiment.
2. If the experiment has not been analyzed, NORC will process it automatically.

## tdlr;
After installation, the following commands are available
```bash
pip install .
norc_gui # Launches the GUI
norc_analyze /path/to/experiment     # Analyze results
norc_plot /path/to/experiment        # Generate plots (requires analyze)
norc_rank /path/to/experiment        # Rank metrics (requires analyze)
```


