CoRDAGe is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
--------------
Installation Instructions
*************************
http://cordage.gforge.inria.fr
--------------
1/ Environment
CoRDAGe is currently designed to work on the Grid'5000 plateform,
using the OAR2 reservation tool and the ADAGE deployment tool.
Currently, only JuxMem-based (JXTA and middleware-independant versions)
and Gfarm-based applications are handled by CoRDAGe.
CoRDAGe relies on standard C++ libraries (STL), Posix Threads, LIBXML2 as well as XMLRPC-C.
LIBXML2 is needed by ADAGE, it should be installed on your system at this step.
XMLRPC-C requires a data transport library like CUrl.
We use to build and install user libraries in a "root" folder located on the NFS server.
Set the following environment variables in your user configuration file (eg ~/.cshrc).
setenv ROOT $HOME/root-$MACHTYPE
setenv PATH $ROOT/bin:$PATH
Building CoRDAGe requires the CMake Cross-Platform Make build system.
http://www.cmake.org
------------------------
2/ Installation of ADAGE
Please visit this website: http://adage.gforge.inria.fr
To get the latest version of ADAGE please checkout from the svn.
Then follow the instructions.
svn checkout svn://scm.gforge.inria.fr/svn/adage/adage/trunk adage-trunk
cd adage-trunk && autoreconf --install
./configure --prefix=$ROOT --enable-debug && make install
---------------------------
3/ Installation of XmlRPC-C
You will probably need to install a transport protocol first.
CoRDAGe has been tested with Libwww and Curl.
http://www.w3.org/Library
http://curl.haxx.se
Please visit this website: http://xmlrpc-c.sourceforge.net
Download the library either as a tarball or from the svn.
Then follow the instructions.
svn checkout https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
./configure --prefix=$ROOT && make && make install
we have experienced compilation problems with CUrl and some versions of xml-rpc
use --disable-curl-client to disable the CUrl support and switch to Libwww.
--------------------------
4/ Installation of CoRDAGe
To get the latest version of CoRDAGe please checkout from the svn.
svn checkout svn+ssh://username@scm.gforge.inria.fr/svn/cordage/cordage/trunk/ cordage-trunk
CoRDAGe uses CMake to build shared libraries and binaries (www.cmake.org).
cmake . -DCMAKE_INSTALL_PREFIX=$ROOT -DADAGE_INSTALL_PREFIX=$ROOT
make && make install
To enable logging, please add the following option:
-DCORDAGE_DEBUG_MODE=log
To enable benchmarking (also disables logging), please add the following option:
-DCORDAGE_DEBUG_MODE=bench
To specify the default frontend, please add the following option:
-DCORDAGE_DEFAULT_FRONTEND=frontend.rennes.grid5000.fr
You may also have to force the path to Libxml2, you can do that by adding the following options:
-DLIBXML2_INCLUDE_DIR=$ROOT/include/libxml2 -DLIBXML2_LIBRARIES=$ROOT/lib
If you can not use CMake, an old makefile is provided in the src/ folder,
rename 'Makefile.old' to 'Makefile' and type 'make'.
This makefile does not build shared libraries, nor install files.
You will also have to copy cdgconfig.h.cmake to cdgconfig.h and hack the file.
It is strongly recommended to use CMake.
-------------------------
5/ Installation of applications
5.1 JuxMem (middleware-independant)
Please visit this website: http://juxmem.gforge.inria.fr/wiki
To get the latest version of JuxMem please checkout from the svn.
Then follow the instructions.
svn checkout svn://scm.gforge.inria.fr/svn/juxmem/trunk/juxmem juxmem-c-trunk
Set the following attribute to enable the CoRDAGe feature.
cmake -DCMAKE_INSTALL_PREFIX=$ROOT -DWITH_LIBCORDAGE=$ROOT .
You may also have to force the path to Libxml2, you can do that by adding the following options:
-DLIBXML2_INCLUDE_DIR=$ROOT/include/libxml2 -DLIBXML2_LIBRARIES=$ROOT/lib
For now the installation process does not copy the main binary, you will have to do it by hand:
make install && cp examples/omnipeer $ROOT/bin
5.2 Gfarm v2
Please visit this website: http://datafarm.apgrid.org/
For now, only Gfarm v2 is supported
--------------
6/ Quick start
CoRDAGe binaries are:
- cordage-server : the CoRDAGe server
- cordage-c-client : a simple C ANSI client that performs basic CoRDAGe operations (please have a look to examples/client.c).
- cordage-client : a simple C++ client that does the same thing than the C client (please have a look to examples/client.cc).
configuration is read from the cordage-client.conf file, please make sure this file is in working directory.
- cordage-client2 : the same program as previous client but with a loop performing additional deployments until the walltime has expired.
- cordage-client3 : a client that shows how to co-deploy applications
- cordage-monitor : a monitoring client that displays real-time information about the server.
- cordage-server-test: a test program to check that basic operations are working on the server side.
- cordage-standalone : a simple standalone program that takes a few command line parameters and makes a one-shot deployment
without launching the CoRDAGe daemon, nor using TCP/HTTP remote procedure calls.
6.1 The easy way: use the CoRDAGe standalone program
This program takes a description of your application, a control parameter file and the walltime of your deployment.
Starting from these parameters, appropriate reservations and deployments are automatically achieved.
No need to launch the CoRDAGe daemon, nor the ADAGE daemon.
./standalone --help
6.2 The advanced way: use CoRDAGe clients
a. Launch the ADAGE daemon on a cluster frontend (e.g. frontale.rennes.grid5000.fr)
$ADAGE/src/adage -d []
Default port is 35000, you may have to change it if you are not the only one using ADAGE on this node.
If you do so, please modify the corresponding line in the configuration file (cordage-client.conf)
or in the examples/client.c(c) example files and rebuild CoRDAGe.
b. Launch the CoRDAGe daemon on a node that shares the same NFS than ADAGE,
the same frontend than ADAGE can be a good guess
$CORDAGE/src/cordage []
Default port is 9080, you may have to change it if you are not the only one using this node.
If you do so, please use the proper parameter for the CoRDAGe client. (See cordage-client.conf)
c. Launch the CoRDAGe client on a node that can reach the server thru a TCP/IP connection.
cordage-client [ []]
Default CoRDAGe server hostname is 'localhost',
default port is the server's default port. Use this parameter if you changed it on the server side.
You may prefer modify the cordage-client.conf configuration file.
You can also use a second client program that makes a loop on deployment until a given walltime has expired.
cordage-client2 [] [ []]
The walltime has to be set in minutes.