This repo includes a benchmark of compute operators Filter and Join. The benchmark uses Apache Arrow Streaming Execution Engine as baseline and UPMEM-PIM implementations as target.
CPM will automatically download the following dependencies:
If you already have these dependencies installed, CPM will use them instead of downloading them (this can be disabled by setting CPM_USE_LOCAL_PACKAGES to OFF).
cmake -B./build -G "Ninja Multi-Config"
cmake --build ./build --config Release --target all --or
make buildcd ./build/bin/Release/
./upmem-query-hostAdd --help for additional usage instructions.
or
make runNote: Don't try to run all the benckmarks at once. Select one, for example:
./upmem-query-host --benchmark_filter=BM_JoinDpuAdd --benchmark_list_tests to list all the benchmarks.
The default number of DPUs and scale factor are 2048. To change them, prefix the command with NR_DPUS=1024 SF=1024 (for example).
sudo apt install numactlOnly if you're on a baseline machine setup run the following:
nohup ./scripts/run-python-baselines.sh &First edit ./scripts/run-upmem-2048.sh and change OUT_DIR to reflect the current machine setup. For example, if the setup is 12-12 then replace OUT_DIR=../../../results/16-8/2048 with OUT_DIR=../../../results/12-12/2048
Then run the script:
nohup ./scripts/run-upmem-2048.sh &First edit ./scripts/run-upmem-scale.sh and change OUT_DIR to reflect the current machine setup. For example, if the setup is 12-12 then replace OUT_DIR=../../../results/16-8/scale with OUT_DIR=../../../results/12-12/scale
Then run the script:
nohup ./scripts/run-upmem-scale.sh &To gather the results locally run from your own local machine:
scp -r upmemcloud3:~/workspace/upmem-query/results ./results/Standalone partition is non-functional at the moment due to changes to support partition in the join operation. The corresponding benchmark and tests are disabled.