epyc

epyc: Computational experiment management in Python - Published in JOSS (2022)

https://github.com/simoninireland/epyc

Science Score: 98.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 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Engineering Computer Science - 40% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Python computational experiment management

Basic Info
  • Host: GitHub
  • Owner: simoninireland
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Size: 1.39 MB
Statistics
  • Stars: 12
  • Watchers: 4
  • Forks: 5
  • Open Issues: 0
  • Releases: 1
Created over 9 years ago · Last pushed over 3 years ago
Metadata Files
Readme Changelog Contributing License Citation

README.rst

epyc: Python computational experiment management
================================================

.. image:: https://badge.fury.io/py/epyc.svg
    :target: https://pypi.org/project/epyc/

.. image:: https://readthedocs.org/projects/epyc/badge/?version=latest
    :target: https://epyc.readthedocs.io/en/latest/index.html

.. image:: https://github.com/simoninireland/epyc/actions/workflows/ci.yaml/badge.svg
    :target: https://github.com/simoninireland/epyc/actions

.. image:: https://zenodo.org/badge/63255319.svg
   :target: https://zenodo.org/badge/latestdoi/63255319

.. image:: https://joss.theoj.org/papers/10.21105/joss.03764/status.svg
   :target: https://doi.org/10.21105/joss.03764

.. image:: https://www.gnu.org/graphics/gplv3-88x31.png
    :target: https://www.gnu.org/licenses/gpl-3.0.en.html

Overview
--------

``epyc`` is a Python module for controlling a long-running series of
computational experiments, as is often found when writing simulations
of complex networks and other such domains. There is often a need to
perform a computation across a multi-dimensional parameter space,
varying the parameters, performing and aggregating multiple
repetitions, and wrangling results for analysis and
presentation. Often the experiments being performed are on such a
scale as to require the use of a computing cluster to perform multiple
experiments simultaneously.

Managing all these tasks is complicated, so ``epyc`` tries to automate
it. It provides a way to define a "laboratory" performing a collection
of "experiments" whose parameters and results are collected togethr into "result
sets" and recorded in a "lab
notebook" for later retrieval. Laboratories can be sequential (for a
single machine) or parallel (to use a multicore or cluster of
machines); lab notebooks can be persistent to allow experiments to be
fired-off and their results retrieved later -- handy if you use a
laptop. Notebooks store all the data and metadata in a portable format
to improve the reproducibility of computational experiments.

``epyc`` also includes a small number of "experiment combinators" that
separate the logic of a single experiment from the logic of performing
multiple repetitions and other structuring tasks. This means that
any experiment can be repeated and statistically summarised, for
example.


Installation
------------

``epyc`` works with Python 3.6 and above, and with PyPy3. You can install
it directly from PyPi using ``pip``:

::

   pip install epyc

The master distribution of ``epyc`` is hosted on GitHub. To obtain a
copy, just clone the repo:

::

    git clone git@github.com:simoninireland/epyc.git
    cd epyc
    pip install .


Examples
--------

See `the examples directory `_ for code examples.


Documentation
-------------

API documentation for ``epyc`` can be found on `ReadTheDocs `_.
You can also read a Jupyter notebook describing several ``epyc`` use
cases online `here `_.


Author and license
------------------

Copyright (c) 2016-2022, Simon Dobson 

Licensed under the `GNU General Public Licence v3 `_.

Owner

  • Name: Simon Dobson
  • Login: simoninireland
  • Kind: user
  • Location: St Andrews, UK
  • Company: University of St Andrews

I'm a computer scientist interested in complex systems, where chains of cause and effect can be difficult to establish. #python #emacs #lisp

JOSS Publication

epyc: Computational experiment management in Python
Published
April 18, 2022
Volume 7, Issue 72, Page 3764
Authors
Simon Dobson ORCID
School of Computer Science, University of St Andrews, Scotland UK
Editor
Andrew Stewart ORCID
Tags
computational science cluster computing high-performance computing automation experimental design

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software and want to cite it, please reference the following."
authors:
- family-names: "Dobson"
  given-names: "Simon"
  orcid: "https://orcid.org/0000-0001-9633-2103"
title: "epyc"
doi: 10.5281/zenodo.6460760
date-released: 2022-04-14
url: "https://github.com/simoninireland/epyc"

GitHub Events

Total
  • Watch event: 2
Last Year
  • Watch event: 2

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 534
  • Total Committers: 3
  • Avg Commits per committer: 178.0
  • Development Distribution Score (DDS): 0.007
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Simon Dobson s****n@c****g 530
amritagos a****6@g****m 3
Hristo Georgiev h****v@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 12
  • Total pull requests: 3
  • Average time to close issues: 6 months
  • Average time to close pull requests: 24 days
  • Total issue authors: 6
  • Total pull request authors: 3
  • Average comments per issue: 1.92
  • Average comments per pull request: 0.67
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • lorenzo-rovigatti (4)
  • zbeekman (3)
  • michaeljpitcher (2)
  • zelenkastiot (1)
  • amritagos (1)
  • alexvoss (1)
Pull Request Authors
  • amritagos (1)
  • dependabot[bot] (1)
  • hristog (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 2,331 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 4
  • Total versions: 37
  • Total maintainers: 1
pypi.org: epyc

Python computational experiment management

  • Versions: 37
  • Dependent Packages: 1
  • Dependent Repositories: 4
  • Downloads: 2,331 Last month
Rankings
Dependent packages count: 4.8%
Dependent repos count: 7.5%
Average: 11.7%
Forks count: 14.2%
Downloads: 14.9%
Stargazers count: 17.1%
Maintainers (1)
Last synced: 4 months ago

Dependencies

dev-requirements.txt pypi
  • black * development
  • coverage * development
  • doc8 * development
  • flake8 * development
  • jedi * development
  • jedi-language-server * development
  • jupyter * development
  • matplotlib * development
  • mypy * development
  • pylint * development
  • rope * development
  • seaborn * development
  • sphinx * development
  • sphinx-autodoc-typehints * development
  • sphinx_rtd_theme * development
  • tox * development
  • twine * development
  • wheel * development
requirements.txt pypi
  • click *
  • cloudpickle *
  • h5py *
  • ipyparallel >=6.2.4
  • joblib *
  • numpy >=1.17.5
  • pandas *
  • pyzmq *
  • requests *
  • typing_extensions *
setup.py pypi
  • numpy *