oar-team / batsim

Batsim: Infrastructure simulator for job and I/O scheduling
GNU Lesser General Public License v3.0
30 stars 15 forks source link

Unusual definition of makespan #69

Open Mema5 opened 9 months ago

Mema5 commented 9 months ago

I realized that the definition of makespan chosen for batsim outputs is max(finish_time) (https://batsim.readthedocs.io/en/latest/output-schedule.html?highlight=makespan#schedule ). I think the most common definition is max(finish_time) - min(submission_time).

These definitions are the same if our time origin is 0 (first job submitted at t=0), but there is an offset otherwise.

Solutions proposed:

Personally, I don't see when the current definition can be better than the common one.

Mema5 commented 9 months ago

This paper (Feitelson 1997) seems to be defining makespan as max(finish_time) ...

adfaure commented 9 months ago

It depends on the use case I believe, in some cases you may want to include to your makespan the platform initialization. In this case, max(finish_time) looks good. Otherwise, from scheduling perspective your update makes sens to me.

Mema5 commented 9 months ago

We discussed about that this morning with @mpoquet .. max(finish_time) is technically a DATE, not a duration. The makespan is a DURATION, the time needed to complete all the workload. So at least it should be conceptually max(finish_time) - TIME_ORIGIN.

In most cases, the origin is t=0 and my change doesn't make a difference. But I think in most use case the new definition is the most correct.. But indeed, people should recalculate the metrics they want, depending on their use case, we are just here trying to assume the most common use of makespan...