Macaulay2 / Macaulay2/M2

benchmarks

Open
#309 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Infrastructure
Dominant language
Macaulay2
Stars
435
Forks
297
Avg merge
4d 20h
Merged PRs (30d)
11

Description

It can happen that changes to code can result in examples running much slower, especially if answers that used to be cached no longer are, resulting in multiple slow computations of the same thing. Hence it would be good if all examples and tests in packages were timed, and times were logged regularly, to detect things slowing down. The detection should be done automatically by installPackage, and there should be a simple way to log the current running times with a new option to installPackage. The results could be stored in the package's auxiliary directory; we could eliminate the AuxiliaryFiles option to newPackage to make things easier.

It would be important to record running times in a way that takes the speed of the processor into account, perhaps by dividing the time to execute the example by the time to execute some standard benchmark of the underlying hardware. Experiments might be done to find the standard benchmark that correlates best with gb computation times.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the installPackage and newPackage entry points and inspect how package examples, tests, auxiliary files, and the AuxiliaryFiles option are handled. Determine how all examples and tests could be timed, how processor speed should be normalized, and where results would be stored. Done means automatic timing during installation plus an option to log current timings.

Written by the indexing model from the issue text.

Assessment

Domain
performance, testing, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.