p3-analysis-library

A library simplifying the collection and interpretation of P3 data.

https://github.com/p3hpc/p3-analysis-library

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.2%) to scientific vocabulary

Keywords

p3 performance portability productivity
Last synced: 6 months ago · JSON representation ·

Repository

A library simplifying the collection and interpretation of P3 data.

Basic Info
Statistics
  • Stars: 8
  • Watchers: 4
  • Forks: 9
  • Open Issues: 5
  • Releases: 1
Topics
p3 performance portability productivity
Created almost 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Security Zenodo

README.md

Performance, Portability and Productivity Analysis Library

DOI OpenSSF Best Practices

The Performance, Portability, and Productivity Analysis Library (P3 Analysis Library) enables a simpler workflow for the collection and interpretation of P3 data.

Table of Contents

Dependencies

  • jsonschema
  • numpy
  • matplotlib >= 3.6.3
  • pandas
  • Python >= 3.8

Installation

To install, run pip install . or python setup.py install.

Getting Started

Demonstrations of library functionality can be found in examples and case-studies.

Contribute

Contributions to the P3 Analysis Library are welcome in the form of issues and pull requests.

See CONTRIBUTING for more information.

License

Distributed under the MIT license. See LICENSE for more information.

Security

See SECURITY for more information.

The master branch of the P3 Analysis Library is the development branch, and should not be used in production.

Citations

If your use of the P3 Analysis Library results in a research publication, please consider citing the software and/or the papers that inspired its functionality (as appropriate). See CITATION for more information.

Owner

  • Name: P3HPC
  • Login: P3HPC
  • Kind: organization

Citation (CITATION.md)

# Citing the P3 Analysis Library

To cite the library itself, please use:

```bibtex
@software{p3-analysis-library,
  author       = {Pennycook, S. John and
                  Sewall, Jason and
                  Jacobsen, Douglas and
                  Deakin, Tom and
                  Zamora, Yuliana and
                  Lee, Kin Long Kelvin},
  title        = {{Performance, Portability and Productivity Analysis
                   Library}},
  month        = mar,
  year         = 2023,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.7733678},
  url          = {https://doi.org/10.5281/zenodo.7733678}
}
```

Additional DOIs are generated for each [release][1].

[1]: https://github.com/P3HPC/p3-analysis-library/releases

## Citing Specific Functionality

Some of the functionality implemented by the P3 Analysis Library
was first introduced in academic papers, as detailed below.

### Performance Portability Metric

The performance portability metric is discussed in the following papers:

- S.J. Pennycook, J.D. Sewall and V.W. Lee, "[A Metric for Performance Portability](https://arxiv.org/abs/1611.07409)", in Proceedings of the 7th International Workshop in Performance Modeling, Benchmarking and Simulation of High Performance Computer Systems (PMBS), 2016
- S.J. Pennycook, J.D. Sewall and V.W. Lee, "[Implications of a Metric for Performance Portability](https://doi.org/10.1016/j.future.2017.08.007)", in Future Generation Computer Systems, Volume 92, March 2019, Pages 947-958
- S.J. Pennycook and J.D. Sewall, "[Revisiting a Metric for Performance Portability](https://doi.org/10.1109/P3HPC54578.2021.00004)", in Proceedings of the IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC), 2020

### Code Divergence Metric

The code divergence metric is based on the one proposed in the following paper:

- S.L. Harrell, J. Kitson, et al., "[Effective Performance Portability](https://doi.org/10.1109/P3HPC.2018.00006)", in Proceedings of the IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC), 2018

### Cascade Plots

Cascade plots were first introduced in the following paper:

- J.D. Sewall, S.J. Pennycook, D. Jacobsen, T. Deakin and S. McIntosh-Smith, "[Interpreting and Visualizing Performance Portability Metrics](https://doi.org/10.1109/P3HPC51967.2020.00007)", in Proceedings of the IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC), 2020

### P3 Analysis Methodology

The end-to-end P3 analysis workflow was first described in the following
article:

- S.J. Pennycook, J.D. Sewall, D. Jacobsen, T. Deakin and S. McIntosh-Smith, "[Navigating Performance Portability](https://doi.org/10.1109/MCSE.2021.3097276)", in Computing in Science & Engineering, Volume: 23, Issue: 5, 01 Sept.-Oct. 2021

GitHub Events

Total
  • Delete event: 3
  • Issue comment event: 5
  • Push event: 3
  • Pull request review event: 4
  • Pull request review comment event: 2
  • Pull request event: 9
  • Create event: 1
Last Year
  • Delete event: 3
  • Issue comment event: 5
  • Push event: 3
  • Pull request review event: 4
  • Pull request review comment event: 2
  • Pull request event: 9
  • Create event: 1

Dependencies

.github/workflows/run-precommit.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v5 composite
  • pre-commit/action v3.0.1 composite
.github/workflows/build-unittest.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
.github/workflows/commit-signoff-check.yml actions
  • gsactions/commit-message-checker v2 composite
pyproject.toml pypi
  • jsonschema *
  • matplotlib >=3.6.3
  • numpy *
  • pandas *
setup.py pypi