{ "info": { "author": "Michael Goerz", "author_email": "mail@michaelgoerz.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Environment :: No Input/Output (Daemon)", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License (GPL)", "Natural Language :: English", "Topic :: Scientific/Engineering", "Topic :: System :: Clustering" ], "description": "LPBS\n====\n\n`http://github.com/goerz/LPBS `_\n\nAuthor: `Michael Goerz `_\n\nLocal Portable Batch System: Emulating PBS on a local workstation\n\nThis code is licensed under the\n`GPL `_\n\n`PBS `_/`TORQUE `_\nis a job scheduling system that is used on many high performance\ncomputing clusters. The LPBS package provides tools to run PBS job\nscripts on a local workstation. Specifically, LPBS provides the\n``lqsub`` command that takes the same options as the PBS ``qsub``\ncommand and runs a job script locally, in an environment virtually\nidentical to one that PBS/TORQUE would provide. The job will run in\nthe background and be assigned a job ID. Unlike the PBS system,\nLPBS will not perform any scheduling, but will simply run the job\nsubmitted to it. LPBS provides further tools to manage running\njobs.\n\nInstallation\n------------\n\nLPBS can be installed from PyPi, using\n\n::\n\n pip install LPBS\n\nAlternatively, the package can be installed from source with\n\n::\n\n python setup.py install\n\nConfiguration\n-------------\n\nLPBS stores all its configuration and runtime data in the folder\ngiven in the environment variable ``$LPBS_HOME``. This environment\nvariable *must* be defined. The configuration is in the file\n``lpbs.cfg`` inside ``$LPBS_HOME``. If this file does not exist\nwhen any of the LPBS scripts are run, a configuration file with the\nfollowing default values will be created:\n\n::\n\n [Server]\n \n # Full hostname of submission server (hostname.domain). Will be made available\n # to running job through the environment variable PBS_SERVER. Job IDs will end\n # in the server hostname\n \n hostname: localhost\n domain: local\n \n \n [Node]\n \n # Full hostname of the execution node (hostname.domain). Will be made available\n # to running job through the environment variable PBS_O_HOST. Since LPBS is\n # designed to execute jobs locally, the settings here should in general be\n # identical to those in the [Server] section\n \n hostname: localhost\n domain: local\n \n \n [LPBS]\n \n # Setting for job execution.\n # If 'username_in_jobid' is enabled, the job IDs will have the form\n # 'seqnr.user.hostname.domain' where 'user' is the username of the user\n # submitting the job.\n # The file given in 'sequence_file' is used for keeping track of the 'seqnr'\n # appearing in the job ID.\n # The file given in 'logfile' is used for logging all LPBS events. Both\n # 'sequence_file' and 'logfile' are relative to $LPBS_HOME.\n \n username_in_jobid: 0\n sequence_file: sequence\n logfile: lpbs.log\n \n \n [Scratch]\n \n # Settings for the scratch space provided to jobs. 'scratch_root' defines a\n # location where jobs should write temporary data. If given as a relative path,\n # it is relative to $LPBS_HOME. Environment variables will be expanded at the\n # time of the job submission.\n # If the value of # 'create_jobid_folder' is set to 1, a folder with the name of\n # the full job ID is created inside scratch_root. This folder is automatically\n # deleted when the job ends, unless 'keep_scratch' is set to 1. If the job\n # failed, the scratch will not be deleted, unless 'delete_failed_scratch' is set\n # to 1.\n \n scratch_root: $SCRATCH_ROOT\n create_jobid_folder: 0\n keep_scratch: 0\n delete_failed_scratch: 0\n \n \n [Notification]\n \n # Settings on how the user should be be notified about events such as the start\n # and end of a job. If sent_mail is set to 1, emails will be sent for\n # notifications depending on the value of the '-m' option to lqsub. If\n # 'send_growl' is set to 1, Growl (http://growl.info) is used for notification\n # on MacOS X. Notifications via Growl do not take into account the '-m' options\n # during job submission.\n \n send_mail: 0\n send_growl: 0\n \n \n [Mail]\n \n # SMTP settings for email notifications. Notification emails will be sent from\n # the address given by the 'from' option. The SMTP server given in 'smtp' is\n # used for sending the emails, if 'authenticate' is set to 1, authentication is\n # done with the given 'username' and 'password'. If 'tls' is 1, TLS encryption\n # will be used.\n \n from: nobody@example.org\n smtp: smtp.example.com:587\n username: user\n password: secret\n authenticate: 0\n tls: 1\n \n \n [Growl]\n \n # Settings for Growl notifications. Notifications are sent to either\n # localhost or a remote host via the GNTP protocol. The 'hostname' setting\n # gives the address and port of the Growl server, the given 'password' is\n # used for authentication (note that if sending to localhost, no\n # authentication is necessary, and the password should be empty). If\n # 'sticky' is set to 1, the Growl notifications will be sticky. It is\n # possible to send notifications to more than one host. In this case, both\n # 'hostname' and 'password' should be a comma-separated list of values, with\n # each item corresponding to one host. E.g.\n # hostname: localhost, remotehost\n # password: , secret\n \n hostname: localhost:23053\n password:\n sticky: 0\n \n \n [Log]\n \n # 'logfile' gives the name of the central log file, relative to $LPBS_HOME.\n \n logfile: lpbs.log\n\nNote that if the default config file is used, the environment\nvariable ``$SCRATCH_ROOT`` must be defined and the directory it\npoints to should exist and be writable to all users who might\nsubmit jobs.\n\nFor a system-wide installation, ``/var/lpbs`` is a suitable\nlocation for ``$LPBS_HOME``. The environment variable can be set in\n``/etc/bash.bashrc`` for all users. For an installation in user\nspace, `virtualenv `_ is\nrecommended.\n\nAfter the main config file, the file ``$HOME/.lpbs.cfg`` will also\nbe read. A user can use this to override settings in the system\nconfiguration. Lastly, the ``qsub`` command also has a ``--config``\noption that allows to specify yet an additional config file to be\nread.\n\nUsage\n-----\n\nLPBS contains the scripts ``lqsub``, ``lqstat``, and ``lqdel``,\nwhich emulate the PBS/TORQUE commands ``qsub``, ``qstat``, and\n``lqdel``, respectively. The ``lqsub`` command is used to submit\njobs, ``lqstat`` is used to show information about running jobs,\nand ``lqdel`` is used to abort running jobs. For example:\n\n::\n\n goerz@localhost:~> lqsub job.pbs\n 3.localhost.local\n \n goerz@localhost:~> lqstat\n Job id Name User Walltime\n -------------------- --------------- --------------- ---------------\n 3.localhost.local pbstest goerz 0:00:22\n \n goerz@localhost:~> lqstat -f 3.localhost.local\n Job Id: 3.localhost.local\n Job_Name = pbstest\n Job_Owner = goerz\n server = localhost.local\n exec_host = localhost.local\n PID = 14649\n Error_Path = STDERR\n Join_Path = True\n Mail_Points = n\n Output_Path = pbstest.out\n resources_used.walltime = 0:00:43\n \n goerz@localhost:~> lqdel 3.localhost.local\n\nThe ``qsub`` command is designed to understand all command line\noptions of the ``qsub`` command in TORQUE version 2.18, except that\nall options related to scheduling are silently ignored. Hence, all\nPBS job script should be submittable without change. For details,\nrun ``lqsub``, ``lqstat``, and ``lqdel`` with the ``--help``\noption, and/or look at the\n`TORQUE manual `_.\n\nAn Example Job Script\n---------------------\n\nThe following is an example of a simple PBS job script that will\nprint out the full environment that the job sees. You may want to\nsubmit this job both with LPBS and PBS/TORQUE to verify that with\nappropriate settings in ``lpbs.cfg``, LPBS provides an identical\nenvironment as LPBS.\n\n::\n\n #!/bin/bash\n #PBS -N pbstest\n #PBS -j oe\n #PBS -l nodes=1:ppn=1\n #PBS -l walltime=00:00:10\n #PBS -l mem=10mb\n #PBS -o pbstest.out\n \n echo \"####################################################\"\n echo \"User: $PBS_O_LOGNAME\"\n echo \"Batch job started on $PBS_O_HOST\"\n echo \"PBS job id: $PBS_JOBID\"\n echo \"PBS job name: $PBS_JOBNAME\"\n echo \"PBS working directory: $PBS_O_WORKDIR\"\n echo \"Job started on\" `hostname` `date`\n echo \"Current directory:\" `pwd`\n echo \"PBS environment: $PBS_ENVIRONMENT\"\n echo \"####################################################\"\n \n echo \"####################################################\"\n echo \"Full Environment:\"\n printenv\n echo \"####################################################\"\n \n echo \"The Job is being executed on the following node:\"\n cat ${PBS_NODEFILE}\n echo \"##########################################################\"\n \n echo \"Job Finished: \" `date`\n exit 0", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/goerz/LPBS", "keywords": null, "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "LPBS", "package_url": "https://pypi.org/project/LPBS/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/LPBS/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/goerz/LPBS" }, "release_url": "https://pypi.org/project/LPBS/0.9.1/", "requires_dist": null, "requires_python": null, "summary": "Local Portable Batch System", "version": "0.9.1" }, "last_serial": 1476988, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "b46f72c6dd5b20f385064d9ad5ee5191", "sha256": "0e2e4797a7bf6f36cd8f01485aea0b772a39bc243dd816449628613175baf77f" }, "downloads": -1, "filename": "LPBS-0.9.0.tar.gz", "has_sig": false, "md5_digest": "b46f72c6dd5b20f385064d9ad5ee5191", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30691, "upload_time": "2011-12-31T14:14:38", "url": "https://files.pythonhosted.org/packages/d1/a1/0f57a87f1cca70fd1e1dd1a227b55f734ef9e799b2419624d0a0adf9a32d/LPBS-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "8ff8d24179688980670ef00e7f924cbe", "sha256": "751d7eb133408a58d05dc49c856397734cb2b787a2c83785204a17ae0d4eac76" }, "downloads": -1, "filename": "LPBS-0.9.1.tar.gz", "has_sig": false, "md5_digest": "8ff8d24179688980670ef00e7f924cbe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31120, "upload_time": "2015-03-25T14:34:16", "url": "https://files.pythonhosted.org/packages/88/48/890e501742cf111370456acc0c9f53a75df2084bc8149fe9f7c7c017c174/LPBS-0.9.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8ff8d24179688980670ef00e7f924cbe", "sha256": "751d7eb133408a58d05dc49c856397734cb2b787a2c83785204a17ae0d4eac76" }, "downloads": -1, "filename": "LPBS-0.9.1.tar.gz", "has_sig": false, "md5_digest": "8ff8d24179688980670ef00e7f924cbe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31120, "upload_time": "2015-03-25T14:34:16", "url": "https://files.pythonhosted.org/packages/88/48/890e501742cf111370456acc0c9f53a75df2084bc8149fe9f7c7c017c174/LPBS-0.9.1.tar.gz" } ] }