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_name
andconsumer_name
These two value will be used to reach the other side. It can be the same if you want to run the benchmark locally.device_name
run commandibv_devinfo
and fill it with thehca_id
you want to use.
-
Run
mkdir build && cd build
andcmake ..
andmake
(ormake -j
if you want to speed it up) -
Copy the whole working directory to the producer side and consumer side.
-
Run
./producer
and./consumer
in 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.csv
in 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.