rudolphpienaar / pfcon

Data / Compute manager

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pfcon v2.2.6.4

https://travis-ci.org/FNNDSC/pfcon.svg?branch=master

This repository provides pfcon -- a controlling service that speaks to remote pman and pfioh services.

Most simply, pfcon pushes local data to a remote location (by talking to a remote pfioh service), runs some process on this data in the remote space using pman, and then copies the resultant data back to a local target space.

It can be used to query and control the following (for example):

  • state: Is job <XYZ> still running?
  • result: What is the stdout (or stderr) from job <XYZ>?
  • control: Kill job <XYZ>

Installation is relatively straightforward, and we recommend using either python virtual environments or docker.

On Ubuntu, install the Python virtual environment creator

sudo apt install virtualenv

Then, create a directory for your virtual environments e.g.:

mkdir ~/python-envs

You might want to add to your .bashrc file these two lines:

export WORKON_HOME=~/python-envs
source /usr/local/bin/virtualenvwrapper.sh

Then you can source your .bashrc and create a new Python3 virtual environment:

source .bashrc
mkvirtualenv --python=python3 python_env

To activate or "enter" the virtual env:

workon python_env

To deactivate virtual env:

deactivate

The easiest option however, is to just use the fnndsc/pfcon dock.

docker pull fnndsc/pfcon

and then run

docker run --name pfcon -v /home:/Users --rm -ti fnndsc/pfcon --forever --httpResponse

For usage of pfcon, consult the relevant wiki pages.

For pfcon detailed information, see the pfcon wiki page.

[--ip <IP>]

The IP interface on which to listen. Default %s.

[--port <port>]
The port on which to listen. Defaults to '5055'.

[--man <manpage>]
Internal man page with more detail on specific calls.

[--forever]
Start service and do not terminate.

[--httpResponse]
Send return strings as HTTP formatted replies with content-type html.

[--cordBlockSeconds <blockSeconds>]
The number of seconds to block/wait internally in the coordination loop.
This is the time between ``pfioh`` has indicated successful unpack of file
data and the call to ``pman`` to start processing.

[--configFileLoad <file>]
Load configuration information from the JSON formatted <file>.

[--configFileSave <file>]
Save configuration information to the JSON formatted <file>.

[-x|--desc]
Provide an overview help page.

[-y|--synopsis]
Provide a synopsis help summary.

[--version]
Print internal version number and exit.

[--debugToDir <dir>]
A directory to contain various debugging output -- these are typically
JSON object strings capturing internal state. If empty string (default)
then no debugging outputs are captured/generated. If specified, then
``pfcon`` will check for dir existence and attempt to create if
needed.

[-v|--verbosity <level>]
Set the verbosity level. "0" typically means no/minimal output. Allows for
more fine tuned output control as opposed to '--quiet' that effectively
silences everything.

Start pfcon in forever mode:

pfcon                                                   \\
    --forever                                           \\
    --port 5005                                         \\
    --httpResponse                                      \\
    --verbosity 1                                       \\
    --debugToDir /tmp                                   \\
    --ip 127.0.0.1

About

Data / Compute manager

License:MIT License


Languages

Language:Python 75.7%Language:Shell 22.9%Language:Dockerfile 1.4%