Skip to content

dcamarmas/xpn-docker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

158 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 98.2%
  • Python 1.8%