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.