CI & HPC ·

A simple framework which can monitor the performance and scalability of software packages. The framework presented here combines Continuous Integation & High Performance Computing together with a minimalistic set of Python scripts. The results can be visualised in form of static Jupyter notebook or in an interactive web page.
Features
- automatically run benchmarks of your project
- inspect performance and scalability of your project
- create complex configurations with travis-like syntax build matrix capabilities (
YAMLformat)
How to use ci-hpc?
-
First install the framework by executing:
pip3 install --user ci-hpc
-
Create a configuration (file
config.yaml) for your repository. In this cofiguration, you should specify several options.-
ci-hpcneeds to know, which repositories are part of your project. You can specify one or more repositories. Each repository will be cloned and checked out when installing. -
You also need to tell the
ci-hpchow to install your project.
It can be as simple as./configure; make; make install
orpip install ./foo/But it can be also quite complex, you can even simplify entire process with usage of install file:
with something like this!sh install.sh(install.shin this case is a shell script, which contains your installation process) -
Next thing is testing section. Here,
ci-hpcneeds to know, what benchmarks you want to run under what configuration. You can create complex build matrices so your configuration can be kept simple and transparent.
-
-
When you are done with the configuration. You should probably verify, it is working. Assuming the following structure:
. └── hello-world └── config.yamlExecute
ci-hpcwithcihpc --project hello-world -
If everything works, setup a mongoDB server and add collection section (once again file
config.yaml):-
ci-hpcneeds to know, what results you want to store. Is it a somejsonprofiler oryamlresults? or are the timings save in axmlformat? In theci-hpcthere is some general support for thejsonandyamlformats, but you can write your ownartifactmodule and simply put it in the correct folder. -
The most of the heavy lifting is already done in a parent class so adding a new collection module should be relatively easy.
-
-
Now to display the results, setup a visualization server.
What's new?
- now supporting multiple repositories within single project
- speed up testing process by using multiple cores on a computing node
- easily run ci-hpc on a previous commits by using
commit-browsermodule - automatically determine which tests to run based on the previous results
- webhook support, automatically start
ci-chpupon new commit
What's to come?
- run extra tests when suspecting significant performance change
- create web visualisation configuration from analyzing records in database
Metadata
Release files for cihpc 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cihpc-0.2.0.tar.gz | 67.6 kB | Without provenance | Details |
Release files / cihpc-0.2.0.tar.gz
| Download URL | cihpc-0.2.0.tar.gz |
|---|---|
| Size | 67.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c78d23cc7fac3d6669f095c0e42f4dbe3d2e7aa4fafa566937a3dafc61873b25
|
|
BLAKE2b-256 checksum How to use checksums |
5f6d2087f348b81f988a79fd1dbb2cc4dc2b06fbdd020630f95f1fab8ac62af4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.3
|
Security for cihpc 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.