README.md

Portable Test Environment of Gluten (gluten-te)

Build and run gluten and gluten-it in a portable docker container, from scratch.

Prerequisites

Only Linux and MacOS are currently supported. Before running the scripts, make sure you have git and docker installed in your host machine.

Getting Started (Build Gluten code, Velox backend)

git clone -b main https://github.com/apache/incubator-gluten.git gluten # Gluten main code

export HTTP_PROXY_HOST=myproxy.example.com # in case you are behind http proxy
export HTTP_PROXY_PORT=55555 # in case you are behind http proxy

cd gluten/
tools/gluten-te/ubuntu/examples/buildhere-veloxbe/run.sh

Getting Started (TPC, Velox backend)

git clone -b main https://github.com/apache/incubator-gluten.git gluten # Gluten main code

export HTTP_PROXY_HOST=myproxy.example.com # in case you are behind http proxy
export HTTP_PROXY_PORT=55555 # in case you are behind http proxy

cd gluten/gluten-te
./tpc.sh

Configurations

See the config file. You can modify the file to configure gluten-te, or pass env variables during running the scripts.

Example Usages

Example: Build local Gluten code (Velox backend)

cd gluten/
{PATH_TO_GLUTEN_TE}/examples/buildhere-veloxbe/run.sh

Example: Build local Gluten code behind a http proxy (Velox backend)

export HTTP_PROXY_HOST=myproxy.example.com # in case you are behind http proxy
export HTTP_PROXY_PORT=55555 # in case you are behind http proxy

cd gluten/
{PATH_TO_GLUTEN_TE}/examples/buildhere-veloxbe/run.sh

Example: Run specific maven commands

cd gluten/
{PATH_TO_GLUTEN_TE}/cbash-mount.sh mvn clean dependency:tree

Example: Run GUI-based IDEs

export HTTP_PROXY_HOST=myproxy.example.com # in case you are behind http proxy
export HTTP_PROXY_PORT=55555 # in case you are behind http proxy

cd gluten/
{PATH_TO_GLUTEN_TE}/examples/buildhere-veloxbe-dev/run.sh

# In a new host shell, run below command to setup a X11-enabled ssh
# connection (default password: 123). 
#
# {DOCKER_CONTAINER_IP} can be found via "docker ps" and "docker inspect",
# or by checking "ifconfig" results inside the container's shell 
ssh -X root@{DOCKER_CONTAINER_IP}

Example: Build and run TPC benchmark on non-default remote branches of Gluten (Velox backend)

export HTTP_PROXY_HOST=myproxy.example.com # in case you are behind http proxy
export HTTP_PROXY_PORT=55555 # in case you are behind http proxy

TARGET_GLUTEN_REPO=my_repo \
TARGET_GLUTEN_BRANCH=my_branch \
{PATH_TO_GLUTEN_TE}/tpc.sh

Example: Build and run TPC benchmark on official latest code behind a http proxy (Velox backend)

export HTTP_PROXY_HOST=myproxy.example.com # in case you are behind http proxy
export HTTP_PROXY_PORT=55555 # in case you are behind http proxy

{PATH_TO_GLUTEN_TE}/tpc.sh

Example: Create debug build for all codes, and open a GDB debugger interface during running gluten-it (Velox backend)

DEBUG_BUILD=ON \
RUN_GDB=ON \
{PATH_TO_GLUTEN_TE}/tpc.sh