----------------------------------------- ClusterShell 1.3 Python Library and Tools ----------------------------------------- ClusterShell is an event-based python library to execute commands on local or distant cluster nodes in parallel depending on the selected engine and worker mechanisms. Also, clush, clubak and nodeset, three convenient command-line tools using the library are included. ------------------- Requirements (v1.3) ------------------- * OpenSSH (ssh/scp) * Python 2.x (x >= 4) with select.poll available (eg. Linux) ------------------------ Supported Engine workers ------------------------ Two workers are supported as of version 1.1: * Ssh (default, requires ssh): support writes, fanout and reliable timeouts * Pdsh (optional, requires pdsh): read only, fanout, no reliable timeouts Get pdsh @ https://computing.llnl.gov/linux/pdsh.html Why the pdsh worker doesn't have "reliable timeout" support: when a timeout value is used, pdsh shows no difference between a process returning rc=0 and a process that timed out. It works for processes returning rc!=0 because pdsh displays the return code. That's why it is now recommended to use the Ssh worker when you want reliable timeout support. ------------------------ Installation from source ------------------------ When possible, please use the RPM/deb distribution. Otherwise in the source directory, use: # python setup.py install ---------- Test Suite ---------- Regression testing scripts are available in the 'tests' directory: $ cd tests $ ./run_testsuite.py -vv -------------- Documentation ------------- Local API documentation is available, just type: $ pydoc ClusterShell Online API documentation (epydoc) is available here: http://clustershell.sourceforge.net/csdoc -------------------------- ClusterShell interactively -------------------------- Python 2.4.3 (#1, May 24 2008, 13:57:05) [GCC 4.1.2 20070626 (Red Hat 4.1.2-14)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from ClusterShell.Task import task_self >>> from ClusterShell.NodeSet import NodeSet >>> task = task_self() >>> task.shell("/bin/uname -r", nodes="linux[4-6,32-39]") >>> task.resume() >>> for buf, key in task.iter_buffers(): ... print NodeSet.fromlist(key), buf ... linux[32-39] 2.6.18-92.1.13.el5 linux[4-6] 2.6.18-53.1.13.el5.l47 ----- Links ----- Main web site: http://clustershell.sourceforge.net Sourceforge.net project page: http://sourceforge.net/projects/clustershell Trac wiki and issue tracking system: https://sourceforge.net/apps/trac/clustershell Python Package Index (PyPI) link: http://pypi.python.org/pypi/ClusterShell ClusterShell was first created for Shine, the Lustre Administration Utility: http://lustre-shine.sourceforge.net ------- Authors ------- Stephane Thiell <stephane.thiell@cea.fr> Aurelien Degremont <aurelien.degremont@cea.fr> CEA/DAM 2010 - http://www-hpc.cea.fr