# The Downey 1997 Model

This model is based on an analysis of the SDSC logs, and was re-affirmed by the CTC log as well.

The goal was to produce a model that allows the remaining runtime of a job to be estimated, given its current age. In addition, this model is for moldable and malleable jobs, where the number of processors allocated can be chosen by the scheduler when the job is started. As a result, the speedup function must be included in the model.

### Degrees of Parallelism

This model explicitly disregards the dominance of powers of two sizes in the logs, under the assumption that this is a result of the interface to commonly used queueing systems such as NQS. It is therefore proposed to "smooth" the distribution. The suggested model is log-uniform: the probability that a job use less than n processors is proportional to log n. This is interpreted as the average parallelism in the job, and is used in the definition of the speedup function.

### Cumulative Runtime

Rather than model runtime independently from the degree of parallelism, the cummulative runtime (that is the sum over all processors) is modeled. This is taken to represent the total work done by the job, independent of how many processors are used. The actual runtime is then obtained by applying the speedup function, given the number of processors chosen by the scheduler.

The proposed model is again log-uniform: the probability that a job use less than t node-seconds is proportional to log t.

### Speedup Function

The speedup function is modeled using 3 parameters: the average parallelism of the job, the variance in parallelism, and the number of processors. Given these parameters, a hypothetical parallelism profile is constructed, and the speedup calculated. The equations are given in the paper.

Distributions from which the parameters can be selected were later proposed by Cirne and Berman.

### Arrival Process

The arrival process used is Poisson, with a twist: Each day of simulated time is divided into two parts of 12 hours each. During the first part (the day) jobs arrive according to the Poisson process, but may be queued if they cannot run immediately. During the second part (the night) no more jobs arrive, and the system serves jobs that were queued during the day.