-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Readthedocs documentation #160
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is awesome. Thank you for taking the time of doing this. I pointed out some typos but overall this is all good.
**must be resumable**, i.e. be capable of restoring their state after being | ||
killed and rerun. | ||
|
||
You can engage the autoresumption by passing ``-m`` or ``--autoresume`` during |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-m
-> -r
|
||
* Each invokation of ``smart-dispatch`` creates a so-called **batch** of **jobs**. Smart Dispatch will do its best to create as many simultaneous jobs so as to effecitvely utilze the allocated resources. | ||
* Each job is basically a single PBS file that is run by the queue management system on the cluster (either ``msub`` or ``qsub``). | ||
* A job spawns mulitple concurrent **workers** that all cooperate to execute the requested commands. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mulitple -> multiple
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: You will need to adapt this line based on how you change line 14. (See comment)
This directory holds generated PBS files (``job_commands_{pbs_index}.sh``) as well as three command lists: | ||
|
||
``commands.txt``: | ||
A list pending commands (this is where the workers are taking their next commands to execute from). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
list pending -> list of pending
``logs/`` | ||
^^^^^^^^^ | ||
|
||
Output and error logs in are saved in this directory. The root level contains logs for actual commands. There are also two additional subfolder: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in are -> are
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
subfolder -> subfolders
@@ -0,0 +1,8 @@ | |||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe it was not intended but I'd rather not add *.sublime-projet
or any other file related to IDE/text editor. Each developer has probably its own customized version.
|
||
In order to understand the contents of the generated folders/files, it's good to know how ``smart-dispatch`` deals with **commands** that a user requests to launch on the cluster: | ||
|
||
* Each invokation of ``smart-dispatch`` creates a so-called **batch** of **jobs**. Smart Dispatch will do its best to create as many simultaneous jobs so as to effecitvely utilze the allocated resources. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
invokation -> invocation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I stumble each time I try to read the second sentence. 😟
What about something like this?
Smart Dispatch will distribute commands to jobs such that each of the latter uses an entire node. Jobs may run many commands concurrently if necessary to use a maximum number of cores and GPUs. The distribution is based on number of cores per node / per command and number of GPUs per node / per command.
* Each invokation of ``smart-dispatch`` creates a so-called **batch** of **jobs**. Smart Dispatch will do its best to create as many simultaneous jobs so as to effecitvely utilze the allocated resources. | ||
* Each job is basically a single PBS file that is run by the queue management system on the cluster (either ``msub`` or ``qsub``). | ||
* A job spawns mulitple concurrent **workers** that all cooperate to execute the requested commands. | ||
* Each worker (basically, a python script) is executing commands sequentially. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it the worker or the command that is basically a python script? If the prior, I don't understand why it needs to be specified.
@ddtm Did you have any problem installing sphinxcontrib-autoprogram? I installed it (version 0.1.3) and I got an error when compiling the doc because of a p2-p3 incompatibilty of textwrap. Exception occurred:
File "/home/bouthilx/.virtualenvs/smartdispatch/local/lib/python2.7/site-packages/sphinxcontrib/autoprogram.py", line 223, in make_rst
yield textwrap.indent(usage, ' ')
AttributeError: 'module' object has no attribute 'indent'
The full traceback has been saved in /tmp/sphinx-err-lVwo2K.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
Makefile:20: recipe for target 'html' failed
make: *** [html] Error 1 I had to pull a fresh version from bitbucket and reinstall it to be able to compile the doc. |
@ddtm I know you currently are outside for an internship, but would it be possible for you the make the small fix for the PR? |
@mgermain We could use sphinx-argparse instead of sphinxcontrib-autoprogram. See a comparison here. |
If it does everything that sphinxcontrib-autoprogram does and is better
supported I have no objection. @ddtm <https://github.com/ddtm> might.
…On Tue, Aug 29, 2017 at 2:02 PM, Xavier Bouthillier < ***@***.***> wrote:
@mgermain <https://github.com/mgermain> We could use sphinx-argparse
<http://sphinx-argparse.readthedocs.io/en/latest/sample.html> instead of
sphinxcontrib-autoprogram.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#160 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABBvm_hWHZzWwM_5RFvpKc_0gGpsqB4wks5sdFJSgaJpZM4MRbV0>
.
|
Why: sphinxcontrib-autoprogram's pip version does not support python 3. There is a more recent version in bitbucket's repository but the installation is tedious for the few features it gives. (See comment SMART-Lab#160 (comment) for more details on the problem) How: sphinxcrontrib-autoprogram was only used to generate automatic documentation of the script smart-dispatch so the replacement was trivial. The output is slightly different, arguments being included in tables for sphinx-argparse while not for sphinxcrontrib-autoprogram. Overall sphinx-argparse seems good enough.
Why: sphinxcontrib-autoprogram's pip version does not support python 3. There is a more recent version in bitbucket's repository but the installation is tedious for the few features it gives. (See comment SMART-Lab#160 (comment) for more details on the problem) How: sphinxcrontrib-autoprogram was only used to generate automatic documentation of the script smart-dispatch so the replacement was trivial. The output is slightly different, arguments being included in tables for sphinx-argparse while not for sphinxcrontrib-autoprogram. Overall sphinx-argparse seems good enough.
Why: sphinxcontrib-autoprogram's pip version does not support python 3. There is a more recent version in bitbucket's repository but the installation is tedious for the few features it gives. (See comment SMART-Lab#160 (comment) for more details on the problem) How: sphinxcrontrib-autoprogram was only used to generate automatic documentation of the script smart-dispatch so the replacement was trivial. The output is slightly different, arguments being included in tables for sphinx-argparse while not for sphinxcrontrib-autoprogram. Overall sphinx-argparse seems good enough.
Why: sphinxcontrib-autoprogram's pip version does not support python 3. There is a more recent version in bitbucket's repository but the installation is tedious for the few features it gives. (See comment SMART-Lab#160 (comment) for more details on the problem) How: sphinxcrontrib-autoprogram was only used to generate automatic documentation of the script smart-dispatch so the replacement was trivial. The output is slightly different, arguments being included in tables for sphinx-argparse while not for sphinxcrontrib-autoprogram. Overall sphinx-argparse seems good enough.
Addresses #113