Predicting the performance of even sequential functional programs is still something of a black art. Detailed performance results are the best way of seeing how a program has behaved in practice, but do not always allow future performance to be predicted.
Runciman and Wakeling's quasi-parallel performance ``profiler'' [104] simulates an idealised parallel execution on the basis of a sequential run. The information produced can be informative, but needs to be regarded with some circumspection. In its present form, the profiler fails to consider communication and task creation overheads or any sophisticated form of scheduling, and is incapable of dealing with speculative evaluation. It is also somewhat unrealistic in assuming that each supercombinator reduction is equally expensive, but this is a common problem with simulation.