TailBench Build

TailBench는 latency-critical 어플리케이션을 모아둔 벤치마크이다. TailBench에서는 xapian, masstree, moses, sphinx, img-dnn, specjbb, silo, shore 워크로드를 제공한다.

필요한 패키지 목록은 다음과 같다. 이 중에는 불필요한 것도 있을 수 있다.

apt -y install uuid-dev libsphinxbase-dev libssl-dev libaio-dev google-perftools libboost-all-dev libboost-dev libboost-test-dev openjdk-8-source libjemalloc-dev libnuma-dev libpthread-stubs0-dev libxapian-dev libreadline-dev libdb5.3-dev libdb5.3++-dev libgtop2-dev libopencv-dev

Makefile.config을 수정한다.

JDK_PATH=/usr/lib/jvm/java-8-openjdk-amd64/

masstree에서는 개별 디렉토리 내에서 ./configure 실행 후 make 하니 잘 되었다.

shore의 경우에는 ./shore/shore-mt 디렉토리에서 빌드하고 ./shore/shore-kit에서 빌드하는 순서로 빌드하면 되었다.

silo에서는 Makefile에서 -Wall 옵션을 제거해주어야 했다.

sphinx에서는 Makefile의 43번째 줄에서 LDFLAGS 앞에 공백을 주어야 한다(버그).

xapian에서는 Makefile에서 XAPIAN_INSTALL_PATH를 삭제해야 한다. xapian-config를 설치하고, 이를 그대로 사용하는 것이 낫다.

수정 이전

XAPIAN_INSTALL_PATH = ./xapian-core-1.2.13/install/bin
CXXFLAGS = -Wall -W -O3 -g -std=c++0x `$(XAPIAN_INSTALL_PATH)/xapian-config --cxxflags` -I$(TBENCH_PATH)
LIBS = `$(XAPIAN_INSTALL_PATH)/xapian-config --libs` -lpthread -lrt

수정 이후

CXXFLAGS = -Wall -W -O3 -g -std=c++0x `xapian-config --cxxflags` -I$(TBENCH_PATH)
LIBS = `xapian-config --libs` -lpthread -lrt

TailBench의 실행에는 입력 데이터 셋이 필요하고, 입력 데이터 셋은 어딘가에 저장된 이후에 그 경로를 configs.sh에 반영해야 한다 (DATA_ROOT). TailBench 실행에는 각 디렉토리 아래의 run.sh을 사용하면 되고, 실행이 끝나면 lats.bin이 생성된다. 이 바이너리는 튜플을 가진 파일이며, ./utilities/parselats.py를 사용해 그 결과를 확인할 수 있다.

Advertisements
Posted in 2) Computer Engineering

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 93,201 hits
%d bloggers like this: