Skip to content

About

Expand Parallel File System Docker

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

157 Commits

Folders and files

Repository files navigation

Expand Docker

Workflow License Codacy Badge

Contents

  1. Prerequisites
  2. Summary of using xpn-docker
  3. Build the container image
  4. Some xpn-docker use cases:
    1. Examples using XPN Ad-Hoc
    2. Examples of benchmarks with XPN Ad-Hoc
    3. Example of Apache Spark and Ad-Hoc XPN
  5. Multiple containers on multiple nodes
  6. Authors

1. Prerequisites

2. Summary xpn-docker options

Action Command
Container image build image
IF((First time OR dockerfile updated))
./xpn_docker.sh build
Save image ./xpn_docker.sh image-save
Load image ./xpn_docker.sh image-load
Multiple nodes Starting docker swarm ./xpn-docker.sh swarm-create machinefile
Stopping docker swarm ./xpn-docker.sh swarm-destroy
Work session To spin up 3 containers ./xpn_docker.sh start 3
To get into container 1 ./xpn_docker.sh bash 1
To exit from container exit
To spin down all containers ./xpn_docker.sh stop
Get information To check running containers ./xpn_docker.sh status
To get the containers internal IP addresses ./xpn_docker.sh network
  • Please beware of:
    • Any modification outside the "/work" directory will be discarded on container stopping.
    • Please make a backup of your work "frequently" (just in case).
    • You might need to use "sudo" before ./xpn_docker.sh if your user doesn't belong to the docker group
      • It could be solved by using "sudo usermod -aG docker ${USER}"

3. Build the container image

The first time xpn-docker is deployed or when the docker/dockerfile is updated we need to build the container image.

  • To build the container image for a single node:

    ./xpn-docker.sh clean-build
  • To build and distribute the container image to multiple nodes:

    1. Build and save the image to the xpn_docker.tgz file by using:
      ./xpn-docker.sh clean-build
      ./xpn-docker.sh image-save
    2. Copy xpn_docker.tgz to other nodes, and load this file:
      scp xpn_docker.tgz  node-x
      ssh node-x ./xpn-docker.sh image-load

4. Some xpn-docker use cases

4.1 Example of using Expand with native API, with LD_PRELOAD (bypass), and with FUSE


Expand (FUSE) Expand (LD_PRELOAD) Expand (native)
: Step 1. 
./xpn_docker.sh start 3
./xpn_docker.sh status

: Step 2. 
./xpn_docker.sh bash 1
cd ./test
./xpn-mpi-fuse.sh
exit

: Step 3. 
./xpn_docker.sh stop
: Step 1. 
./xpn_docker.sh start 3
./xpn_docker.sh status

: Step 2. 
./xpn_docker.sh bash 1
cd ./test
./xpn-mpi-bypass.sh
exit

: Step 3. 
./xpn_docker.sh stop
: Step 1. 
./xpn_docker.sh start 3
./xpn_docker.sh status

: Step 2. 
./xpn_docker.sh bash 1
cd ./test
./xpn-mpi-native.sh
exit

: Step 3. 
./xpn_docker.sh stop

The general steps are:

  1. Starting 3 containers
  2. Then, do some work from container 1
    • Bash on container 1
    • Execute example with Expand native access or access by using FUSE or by using LD_PRELOAD
    • Exit from container 1
  3. Stopping all containers

4.2 Examples of benchmarks with XPN Ad-Hoc

MDtest IOR
: 1. To start 3 containers,
: 2. sleep 5 seconds,
: 3. work from container 1,
: 4. and stop all containers

./xpn_docker.sh \
   start 3 \
   sleep 5 \
   exec 1 "./benchmark/xpn-mpi-mdtest.sh" \
   stop
: 1. To start 3 containers,
: 2. sleep 5 seconds,
: 3. work from container 1,
: 4. and stop all containers

./xpn_docker.sh \
   start 3 \
   sleep 5 \
   exec 1 "./benchmark/xpn-mpi-ior.sh" \
   stop

4.3 Example of Ad-Hoc XPN with Apache Spark

Word count
: 1. To start 3 containers
./xpn_docker.sh start 3
./xpn_docker.sh sleep 5

: 2. Work from container 1
./xpn_docker.sh exec 1 ./spark/quixote-local.sh
./xpn_docker.sh exec 1 ./spark/quixote-xpn.sh

: 3. Stop all containers
./xpn_docker.sh stop

5. Multiple containers on multiple nodes

An example using multiples nodes is:

: Step 1: Starting docker swarm
./xpn-docker.sh swarm-create machinefile

     : Step 2: Starting containers
     NC=$(wc machines | awk '{print $1}')
     ./xpn-docker.sh start $NC

          : Step 3: Doing execution
          ./xpn_docker.sh bash 1
          ./benchmark/xpn-mpi-native.sh
          exit
 
     : Step 4: Stopping containers (undoing 2)
     ./xpn-docker.sh stop

: Step 5: Stopping docker swarm (undoing 1)
./xpn-docker.sh swarm-destroy

The general steps are:

  1. Starting docker swarm
  2. Starting containers
  3. Doing execution
  4. Stopping containers (undoing 2)
  5. Stopping docker swarm (undoing 1)

Authors

  • 🧑‍💻 Félix García-Carballeira
  • 🧑‍💻 Alejandro Calderón Mateos
  • 🧑‍💻 Diego Camarmas Alonso
  • 🧑‍💻 Dario Muñoz Muñoz
  • 🧑‍💻 Elias del Pozo Puñal

About

Expand Parallel File System Docker

Resources

Stars

2 stars

Watchers

1 watching

Forks

Packages

Contributors

Languages