washu.gif (2574 bytes)

CommBench - Overview


What workload does CommBench model?

The main philosophy behind CommBench was to identify applications that can be used to model a workload for network processors. At this point in time, there is a wide variety of network processors ranging from data link level processors to application layer processing engines. Thus, it was important to capture a broad variety of applications, from simple header processing to more complex applications, like payload encryption. Particular significance was put on the computational kernel of an application, which corresponds to the part of the program contributes to the majority of instructions executed (i.e., the 'inner loop'). While it is clear that different network processor systems exhibit notable differences in how programs are started and initialized, it can also be expected that there is much overlap in how the computational kernel is processed. Thus, results that are obtained from benchmark runs on a given system can be extrapolated to architecturally similar systems even though there might be differences in components that do not affect the computational kernel.

As with all benchmarks, care has to be taken in interpreting the obtained result. If you use CommBench, it is important that you understand for what it is useful and where its limits are:

What can be done with it?

  • CommBench applications represent various layers of 'network processing'. The workload can be adapted to certain systems by weighing applications differently (i.e. only consider header processing applications for traditional routers).
  • CommBench can be used to measure basic program execution performance on a given processor (i.e., cache hit rates, instruction mix)
  • CommBench can be used to estimate the required processing capacity of a network processor system. By measuring the number of instructions/cycles spent per byte of packet data, one can figure out how fast the processor has to be to keep up with the link rate.

What are its limitations?

  • CommBench does not model a network processor. There is no network processor architecture, nor a concept of packets streaming through the system. 'Packets' are solely reflected by correlating input data to the benchmark measurements
  • CommBench cannot be 'just compiled' to any arbitrary system. CommBench relies on library functions, like read from standard in, that are provided by a full-blown operating system. So far it has only been compiled and run successfully on Solaris SunOS 5.7.
  • CommBench does not include any tools for measuring the performance of a system. You have to provide profilers and such by yourself.

How to obtain CommBench?

Contact the developers and we will provide you with details on the licensing process.

 

© 2000, Washington University, see software copyright notice.
For problems or questions contact Tilman Wolf.
Last updated: November 09, 2000.