Lancelot
README.md

Lancelot

Lancelot is a research prototype of a hybrid CPU and Multi-GPU DBMS.

Usage

*Dependencies:

Ubuntu > 20.04
GCC > 9.4
CUDA > 11.0
IntelTBB

To use Lancelot:

  • Generate the original SSB dataset
cd test/

# Generate the test generator / transformer binaries
cd ssb/dbgen
make
cd ../loader
make 
cd ../../

# Generate the test data and transform into columnar layout
# Substitute <SF> with appropriate scale factor (eg: 1)
python util.py ssb <SF> gen
python util.py ssb <SF> transform

# Edit SF and BASE_PATH in src/ssb/ssb_utils.h
make bin/gpudb/minmax
./minmax.sh
  • Generate the modified SSB dataset
# Edit SF and BASE_PATH in src/ssb/ssb_utils.h
# From the home directory of Lancelot
make bin/gpudb/gen_synthetic_bench
./bin/gpudb/gen_synthetic_bench
./minmax.sh
  • Configure the hardware and benchmark settings
# Edit SF and BASE_PATH in src/ssb/ssb_utils.h
# Edit NUM_GPU in common.h based on the desired number of GPUs
  • To compile and run Lancelot
make bin/gpudb/main_multi_gpu
./bin/gpudb/main_multi_gpu