haskell / haskell/cabal

work balancing for parallel builds?

Open
#1,781 4 comments 0 reactions 0 assignees View on GitHub
type: enhancement type: performance
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

(copied from http://www.haskell.org/pipermail/haskell-cafe/2014-April/113687.html)

I am curious about the method used by cabal-install to distribute the
compilation on several jobs (cores).

By looking at the OS process list, I often see that initally, and at several
times later, all cores are busy, but then there are states where only one
job is running. That's presumably because all future compilations depend on
this single job.

Does cabal's scheduler take into account anything else besides the actual
depencency relation - e.g., something about expected duration of
compilations? (And would it help?)

http://www.haskell.org/pipermail/haskell-cafe/2014-April/113691.html

> Does cabal's scheduler take into account anything else besides the actual
> depencency relation - e.g., something about expected duration of
> compilations?

No, it doesn't.

Contributor guide

Open the contributing guide

Research direction

The issue does not identify files, tests, or a scheduler entry point. Begin by locating cabal-install's parallel build scheduler and its dependency-graph handling, then determine whether compilation-duration estimates are available and define how improved work balancing would be evaluated.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.