A computer performance model is a mathematical formula describing execution time for a specific algorithm usually as a function of problem size and processor count. The formula typically involves several hardware and software parameters, and it is subject to change as computer architectures change. A model that works well for a current machine may not work well for a new version of the machine even from the same vendor. A model that contains the main features that influence execution time, incomplete as it may be, informs a realistic expectation for the performance of a specific algorithm on a specific machine.