Skip to main content

CI & HPC · Travis (.org) branch Read the Docs download the PDF Docs PyPI GitHub Coveralls github branch

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 (YAML format)

How to use ci-hpc?

  1. First install the framework by executing:

    pip3 install --user ci-hpc
    
  2. Create a configuration (file config.yaml) for your repository. In this cofiguration, you should specify several options.

    • ci-hpc needs 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-hpc how to install your project.
      It can be as simple as

      ./configure; make; make install
      or pip 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.sh in this case is a shell script, which contains your installation process)

    • Next thing is testing section. Here, ci-hpc needs 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.

  3. When you are done with the configuration. You should probably verify, it is working. Assuming the following structure:

    .
    └── hello-world
       └── config.yaml
    

    Execute ci-hpc with

    cihpc --project hello-world
    
  4. If everything works, setup a mongoDB server and add collection section (once again file config.yaml):

    • ci-hpc needs to know, what results you want to store. Is it a some json profiler or yaml results? or are the timings save in a xml format? In the ci-hpc there is some general support for the json and yaml formats, but you can write your own artifact module 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.

  5. 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-browser module
  • automatically determine which tests to run based on the previous results
  • webhook support, automatically start ci-chp upon new commit

What's to come?

  • run extra tests when suspecting significant performance change
  • create web visualisation configuration from analyzing records in database

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)

Source distribution for cihpc 0.2.0
File Size Uploaded
cihpc-0.2.0.tar.gz 67.6 kB 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

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 release file

0.1.2

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page