This repository offers tools to simulate low level load on x86/x64 CPUs. The CPULoader consumes a specified number of CPU cycles, the CacheLoader performs CPU cache accesses in a hard-to-prefetch scenario. Also, low level benchmarking methods are provided, which are explained by Intel [1]. The cache testing tool is based on ideas by Ulrich Drepper.
The tools were used for performance evaluation of packet processing frameworks published in our paper [2].
To build CPULoader/CacheLoader simply change to the according directory and execute make.
The *_test.c files demonstrate the usage the tools.
[1] Gabriele Paoloni. How to Benchmark Code Execution Times on Intel IA-32 and IA-64 Instruction Set Architectures, September 2010.
[2] Sebastian Gallenmüller, Paul Emmerich, Florian Wohlfart, Daniel Raumer, and Georg Carle. Comparison of Frameworks for High-Performance Packet IO. In ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS 2015), May 2015.