Skip to content
sdressler edited this page Jul 20, 2012 · 2 revisions

You are here: Home -> FAQ


I compiled and installed Berkeley DB from source but EPerF does not find it.

BDB is usually located under /usr/local/BerkeleyDB.Major.Minor but the configure script only searches /lib, /usr/lib and /usr/local/lib. To provide a custom prefix path, use the --with-bdb-dir option, also see ./configure --help.

I've set the correct path, configure also finds the library but not db_cxx.h.

You need to provide the --enable-cxx option when building BDB from source or install the BDB C++ library, if it's provided by your system.

I'm using Mac OS X. What do I have to consider?

First: EPerF should compile fine. Second: Currently EPerF on OS X makes no distinction between process clock and wall-time clock. Thus these parameters will always measure the same, albeit they could be different. This is not the case on Linux, where e. g. CLOCK_MONOTONIC is used for the wall-clock time and CLOCK_CPU_PROCESS_ID is used for the process clock.

Why do I only have to provide a EPerfKernelConf object to startTimer and not to stopTimer or addKernelDataVolumes?

This is due to the fact that EPerF assumes that your combination of kernel ID and device ID is always unique. Thus, the kernel configuration object only has to be activated once. This is done when startTimer is called, since it is internally the best place (although it might be somewhat awkward to the user).

So, whenever you execute e. g. an algorithm with four threads on your CPU you also have to add four CPU devices (assuming it has four cores) to keep the uniqueness of the kernel / device ID combination.