Hide menu

Measuring performance

Measuring and representing the performance of an algorithm represents quite a tedious task. Such activity requires a constant monitoring and intervention to collect data from an experiment, start the next one and check if everything works as expected. Such constant attention is error-prone. Once the data has been fully collected, it is often cumbersome and also error-prone to reshape it to a meaningful format such as a graph, or a format allowing the computation of such graph. There are many benefits in automatizing this process: making it autonomous, more reliable or faster. The document introduces here a very simplified case study, where it is proposed to demonstrate the scalability of a multi-threaded program whose ``computation'' consists in achieving a given number of jumps through a loop. The sequential version takes the complete loop sequentially whereas the parallel implementation splits this loops in smaller chunks and distributes it equally among all threads. The performance of this program is monitored and plotted following a workflow and using tools introduced along the solving of this case study. The language used in this work is C, but any other programming language should work equally well. Also, the data is processed using Octave, but the scripts require little adaptation for Matlab. Section A lists and briefly describe each files provided in the script set. Section 4 introduces the problem that illustrates this case study. Section 5 details all the necessary steps to instrument a program, collect the results and use it to generate comprehensive representations. Finally, section 6 concludes the document.

Resources

[source files] [full document] [git repository]

Graph automatically generated by the toolset

Page responsible: Nicolas Melot
Last updated: 2012-08-16