Shrinking multicore
- Dominant language
- Haskell
- Stars
- 3.2k
- Forks
- 432
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 5
Description
### Describe the desired feature
Currently, it seems like Echidna uses a single core/process/thread to shrink failed sequences.
In some cases, however, we're interested in using 100% of the machine's resources to extract the results of that particular sequence. For example, this is often the case when I am using `stopOnFail: true` and `workers: N` in a multicore setup. I don't care about _other_ failed properties, I only care about that particular one that I know to have failed. The problem is that this takes forever even if I bump up N or the number of cores.
It seems like trying to shrink a sequence on a `c5.large` instance takes about the same amount of time as on a `c5.4xlarge` (benchmark pending), which is unexpected.
Contributor guide
Research direction
Start by tracing the existing shrinking path for failed sequences and how stopOnFail and workers are handled; the issue names no files or tests. Benchmark shrinking on c5.large versus c5.4xlarge, then define done as using available machine resources and reducing the observed shrinking time.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- performance, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100