- Dual-socket Intel CPU >= Haswell
- Interleaved CPU core ID mapping (even numbered cores on CPU 0, odd numbered cores on CPU 1)
- Turbo Boost disabled for more accurate core scalability measurement
- Hyperthreading enabled (though experiments do not use it directly)
- DRAM >= 128 GiB
- Ensure to use all memory channels (while keeping the maximum frequency) for full bandwidth
- Disk space >= 15 GB
- SSD recommended
- Ubuntu 14.04 LTS amd64 server
# for g++-5
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
# common
sudo apt-get update
sudo apt-get install -y build-essential cmake git g++-5 libjemalloc-dev libnuma-dev libdb6.0++-dev libgoogle-perftools-dev papi-tools psmisc python3 python3-pip
# for analysis
sudo apt-get install -y texlive-generic-recommended texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra dvipng
pip3 install --user 'pandas>=0.20,<0.21' 'pandasql>=0.7,<0.8' 'matplotlib>=1.5,<2.0'
Need to install Cityhash as well!
* Estimated time: 1 hour
# for non-interactive experiment execution
echo "`whoami` ALL=(ALL:ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers
# for third-party engines
echo "`whoami` - memlock unlimited" | sudo tee -a /etc/security/limits.conf
echo "`whoami` - nofile 655360" | sudo tee -a /etc/security/limits.conf
echo "`whoami` - nproc 655360" | sudo tee -a /etc/security/limits.conf
echo "`whoami` - rtprio 99" | sudo tee -a /etc/security/limits.conf
sudo groupadd hugeshm
sudo usermod -a -G hugeshm `whoami`
sudo reboot
- Estimated time: 15 minutes
git clone --recursive https://github.com/sam1016yu/cicada-exp-sigmod2017.git
- Estimated time: 1 minute
cd cicada-exp-sigmod2017
./build_cicada.sh
./build_ermia.sh
./build_foedus.sh
./build_silo.sh
- Estimated time: 15 minutes
EXPNAME=MYEXP
./run_exp.py exp_data_$EXPNAME run
- Estimated time: 3 days
- Experiment output files are created in exp_data_$EXPNAME
- Each run automatically rebuilds DBx1000 (and cicada-engine for some experiments) to apply system/benchmark parameters
cd result_analysis
./analyze.sh ../exp_data_$EXPNAME
- Estimated time: 15 minutes
- Analysis output files are created under result_analysis/output_$EXPNAME
DBx1000/wl.cpp,line26 Need to change cicadaengine/scripts/setup.sh::44-45 as well
Figure 3
(a) output_macrobench_tpcc-full_warehouse_1.pdf
(b) output_macrobench_tpcc-full_warehouse_4.pdf
(c) output_macrobench_tpcc-full_fixed_ratio.pdf
Figure 4
(a) output_macrobench_tpcc-full_warehouse_1_siu.pdf
(b) output_macrobench_tpcc-full_warehouse_4_siu.pdf
(c) output_macrobench_tpcc-full_fixed_ratio_siu.pdf
Figure 5
(a) output_macrobench_tpcc_warehouse_1.pdf
(b) output_macrobench_tpcc_warehouse_4.pdf
(c) output_macrobench_tpcc_fixed_ratio.pdf
Figure 6
(a) output_macrobench_ycsb_record_100_req_16_read_0_50_zipf_0_99.pdf
(b) output_macrobench_ycsb_record_100_req_16_read_0_50_thread_28.pdf
(c) output_macrobench_ycsb_record_100_req_16_read_0_95_thread_28.pdf
Figure 7
output_macrobench_ycsb_record_100_req_1_read_0_95_zipf_0_99.pdf
Figure 8
output_inlining_ycsb_req_16_read_0_95_zipf_0_00_thread_28.pdf
Table 2
output_query.txt: "factor-ycsb-contended-tx"
Figure 9
output_gc_tpcc-full.pdf
Figure 10
output_backoff_tpcc-full_warehouse_4.pdf
output_backoff_tpcc_warehouse_4.pdf
output_backoff_ycsb_req_1_read_0_50_zipf_0_99.pdf
Figure 11
output_macrobench_ycsb_record_100_req_1_read_0_50_zipf_0_99.pdf
output_macrobench_ycsb_record_100_req_1_read_0_50_thread_28.pdf
output_macrobench_ycsb_record_100_req_1_read_0_95_thread_28.pdf
Hyeontaek Lim (hl@cs.cmu.edu)
Copyright 2014, 2015, 2016, 2017 Carnegie Mellon University
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and