Booz
 
Booz
 
 
Items
Install booz on your PC
Install bijama on your PC
Compiling and linking
Booz software suite
Global/Booz
Bijama/Booz
 
  
> MALIS Home > Software > Our softs > Fine-grained parallel computing > Booz > Install booz on your PC

MAchine Learning and Interactive Systems

Install booz on your PC
 
  by Frezza-Buet Herve
 
 

Introduction

Booz is oriented toward the running of massive networks on a cluster. Nevertheless, it can be installed on a standard PC, for running smaller simulations. This is the purpose of that tutorial.

Install ParXXL

ParXXL is provided by INRIA. This is the middleware that makes booz available on a cluster. You have to install it on your workstation.

First log as root. Then

svn checkout svn://scm.gforge.inria.fr/svn/parxxl

This downloads the sources of ParXXL into a parxxl directory. We have now to compile and install it. Installation will be made in /opt/ParXXL in this tutorial, but you can adapt what follows to any installation directory.

cd parxxl/par
./configure --prefix=/opt/ParXXL
make -k configure
make install

This takes quite a long time....

You now have to set some environment variables. Do this for root, and for the users that intend to use booz. The settings are the following (in bash), that can be added in ~/.bashrc file.

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/ParXXL/lib/pkgconfig
export PATH=$PATH:/opt/ParXXL/bin

Install ParXXL-independant stuff (fedora distribution)

As root, you can use yum for that purpose if you are a fedora user. In that case, have the supelec repository available on your system, and type in a root terminal what follows :

yum install -y booz-gui-devel global-boozin-image-devel


... and that’s it.

Install ParXXL-independant stuff (other distribution)

We are sorry that we only maintain for the moment binary packages for fedora distribution. So for others, install our stuff from sources as follows.

Installation is made from some of our .tar.gz source packages. They are available here. Let us see how to proceed for each package.

Let suppose that wee need to install a package names foo-1.00.tar.gz. Log root, download it and type, where the file has been downloaded, the following commands :

tar zxvf foo-1.00.tar.gz
cd foo-1.00
./configure --prefix=/usr
make install
cd ..

Warning for 64bit machines : The configure line is slightly different in that case :

./configure --prefix=/usr --libdir=/usr/lib64

To know your configuration, type

uname -a


and look for "x86_64" suffix in the message (64bits) rather than "i686" or similar suffixes (32 bits).

Ok, now that you know how to install a package, you have to install the following ones, in that order. Remeber that they can be found here

  1. jpeg-c++ (needs libjpeg6 development package)
  2. mirage (needs gsl development package)
  3. glop (needs MESA-devel or other OpenGL development package)
  4. glop-gtk (needs gtkglarea development package)
  5. boozin
  6. booz-network (needs commpncpp2 devel packages)
  7. global-boozin
  8. global-boozin-image
  9. booz-gui

Install ParXXL-dependant stuff

As ParXXL is only available from source package, we cannot provide binary packages for what follows. So the remaining packages have to be installed from sources. See previous section to know how to install some source packages. The ones you have to install are, in that order :

  1. booz
  2. global-booz
  3. global-booz-image

Give it a try !

You have to read the documentation to understand how booz can be used (start with examples), but let us just play with is to check that everything is installed. We will run the water example provided by booz. You need severalterminals, as a normal user for which suitable environment variables are set (see the beginning of the article).

There are two options.
#- You have installed parXXL on a standard PC,
#- You are useing a cluster managed by OAR (as intercell currently is).

Option 1 : parXXL runs on a standard PC

In the first terminal :

booz-wait-alive 127.0.0.1 10000 verbose ; booz-gui-controller 127.0.0.1 10000 & booz-gui-3D-hypercube-viewer 127.0.0.1 10000 /usr/share/booz-gui-1.0/Water.config &

In the second terminal :

parXXLrun --np 4 --logfile - /usr/bin/booz-example-tutorial-003-water 

Back in the first terminal :

booz-wait-alive 127.0.0.1 10000 verbose ; booz-example-tutorial-003-splash 127.0.0.1 10000 1

Option 2 : parXXL runs on a cluster managed by OAR.

In a first terminal, you have to log (with your non-root account) on a Intercell front-end. It could be fred.ic.metz.supelec.f, or sammy, scooby, vera and daphne (.ic.metz.supelec.fr). When you are outside from supelec, you have to use phome.metz.supelec.fr as a frontend. Let us take this latter option in the tutorial

When logged in the frontend (here phome), go into some working directory. Then type

oarsub -I -l nodes=4,walltime=12:00:00

You reserve 4 nodes, and you are logged in at one of them (e.g ic93.ic). On the node, you are still at your working directory. Save the reserved node names into some machine.txt file as follows.

cat $OAR_NODEFILE > machines.txt
more machines.txt


The first line returned by the more command gives you the main node name. Remember it for further manupulations. Let us supose that is is ic93.

Now, you can start your parallel execution. My executable here well be the installed example
/opt/intercell/bin/booz-example-tutorial-003-water.

/opt/intercell/parxxl/bin/parXXLrun -np 4 --runtime mpi -machinefile machines.txt --logfile - --scheduler oar  /opt/intercell/bin/booz-example-tutorial-003-water -o- 10000

-np4 means "use 4 nodes", and after the -o- flags are the main arguments (here the port we listen to).

Now, open a second terminal on your workstation, and open a ssh tunnel to ic93, via phome.

ssh -L 10000:ic93.ic:10000 frezza@phome.metz.supelec.fr


Of course, use your login instead of frezza.

Open now a third terminal, wher you can run clients. For these clients, consider localhost as the booz server, since the ssh tunnel does the redirection job.

booz-wait-alive 127.0.0.1 10000 verbose ; booz-gui-controller 127.0.0.1 10000 & booz-gui-3D-hypercube-viewer 127.0.0.1 10000 /usr/share/booz-gui-1.0/Water.config &

and

booz-wait-alive 127.0.0.1 10000 verbose ; booz-example-tutorial-003-splash 127.0.0.1 10000 1