A implementation of the ringbuffer part of FaRM.
A benchmark is used to test throughput performance under different message size. The benchmark program contains a producer and a consumer.
- producer produces message in a fixed size.
- and consumer consumes it.
How to use the benchmark:
-
Modify
include/demo.h:producer_nameandconsumer_nameThese two value will be used to reach the other side. It can be the same if you want to run the benchmark locally.device_namerun commandibv_devinfoand fill it with thehca_idyou want to use.
-
Run
mkdir build && cd buildandcmake ..andmake(ormake -jif you want to speed it up) -
Copy the whole working directory to the producer side and consumer side.
-
Run
./producerand./consumerin the corresponding server. -
Wait for the test result. The whole process typically takes about 20~40 minutes for 100GB testing. The result will be printed to the terminal, and you can also get it from
build/prod.csvin the procuder side.
There are some other adjustable configurations, see demo.h.
p.s.: Sorry for the inconvenience out of the poor organization of the project and the old-fashioned code.