Skip to content

heelim/dpu_olap

 
 

Repository files navigation

UPMEM-PIM Evaluation for SQL Query Acceleration

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.

Contributors

Dependencies

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).

Build

cmake -B./build -G "Ninja Multi-Config"
cmake --build ./build --config Release --target all --

or

make build

Run

cd ./build/bin/Release/
./upmem-query-host

Add --help for additional usage instructions.

or

make run

Note: Don't try to run all the benckmarks at once. Select one, for example:

./upmem-query-host --benchmark_filter=BM_JoinDpu

Add --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).

UPMEM Cloud environment

Install numactl

sudo apt install numactl

Run baseline benchmarks

Only if you're on a baseline machine setup run the following:

nohup ./scripts/run-python-baselines.sh &

Run UPMEM benchmarks with 2048 DPUs

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 &

Run UPMEM benchmarks with scaling number of DPUs up to 2048

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 &

Gather results

To gather the results locally run from your own local machine:

scp -r upmemcloud3:~/workspace/upmem-query/results ./results/

Current status

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 69.0%
  • C 18.4%
  • CMake 6.0%
  • Python 4.8%
  • Shell 1.7%
  • Makefile 0.1%