Skip to content

Commit a3fb699

Browse files
adding some extra documentation (#3018)
* adding some extra documentation * Apply suggestions from code review Co-authored-by: Yoshiki Vázquez Baeza <[email protected]> Co-authored-by: Yoshiki Vázquez Baeza <[email protected]>
1 parent 71dc2cd commit a3fb699

File tree

3 files changed

+87
-0
lines changed

3 files changed

+87
-0
lines changed

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
11
# Qiita changelog
22

3+
Version 072020
4+
--------------
5+
6+
* Added per preparation LIBRARY_STRATEGY and removed the study wide STUDY_TYPE values for EBI-ENA submissions to comply with newer metadata standards
7+
* Changed `Ion Torrent` to `Ion_Torrent` as described by EBI-ENA
8+
* Added a VALIDATOR job_type to be able to specify job validator resources
9+
* Added a job.shape method that returns the number of columns, samples and input size of each job based its input artifacts
10+
* Added the possibility of requesting memory resources for a job based on the input size, number of samples and/or columns
11+
* Warnings from commands will only use the message part of the warning/errors (#2898)
12+
* Fixed error when deleting multiple artifacts with summaries and support_files
13+
* Button now will be disabled when submitting a workflow via GUI to avoid double clicking from users
14+
* Jobs will now display their "external job id" to users, in practice their barnacle job id
15+
* Fixed bug that prevented delete of full analyses when the processing tree had multiple paths
16+
* Added initial script for nightly auto-processing of workflows
17+
* Removed legacy future dependencies from Python2.7
18+
* Users can see the available system plugins, their commands and resource allocations: https://qiita.ucsd.edu/software/
19+
* Added qiime2.2020.06 to the system; which updated these plugins: qp-qiime2, qtp-biom, qtp-diversity, qtp-visualization
20+
321
Version 052020
422
--------------
523

qiita_pet/support_files/doc/source/dev/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ The following is a full list of the available developer tutorials
77

88
plugins
99
rest
10+
resource_allocation
1011

1112
To request documentation on any developer use-cases not addressed here,
1213
please add an issue `here <https://github.com/biocore/qiita/issues>`__.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
.. _resource_allocation:
2+
3+
.. index :: _resource_allocation
4+
5+
Qiita's per job resources allocation
6+
====================================
7+
8+
Qiita will request specific resource allocations based on the name of the command,
9+
the job type and it's definition in the database. These definitions are in the
10+
qiita.processing_job_resource_allocation table in the database. This table has a name
11+
(the name of the job), a description, job_type (more below), and the allocation for
12+
that job.
13+
14+
Job types
15+
---------
16+
17+
The Qiita job types allows us to better group the jobs based on what they do and
18+
separate possible name conflicts while at the same time keeping this separation
19+
simple.
20+
21+
#. RESOURCE_PARAMS_COMMAND: This is the most common entry as it defines the allocation
22+
for an specific command name, like "Shogun v1.0.7" or "Beta diversity (phylogenetic)",
23+
for the complete list of commands visit: `Qiita Software <https://qiita.ucsd.edu/software/>`__
24+
#. COMPLETE_JOBS_RESOURCE_PARAM: When a RESOURCE_PARAMS_COMMAND completes, it will define if the job
25+
finished successfully and a set of artifact(s) that need to be validated and then added to Qiita -
26+
move to the final locations and register them in the database. For these jobs the name is the actual
27+
artifact type that is being generated, for example: "per_sample_FASTQ" or "q2_visualization"
28+
#. RELEASE_VALIDATORS_RESOURCE_PARAM: The completed job will create a new job to release and coordinate
29+
all the artifact validators for a given command
30+
#. VALIDATOR: Each new artifact needs a validator and depends on the Qiita plugin that defined
31+
that artifact type. Similar to COMPLETE_JOBS_RESOURCE_PARAM here the name of the job is the
32+
artifact type being validated
33+
#. REGISTER: Used to install or register a new plugin and their commands in the Qiita system
34+
35+
Note that all these job types have a default value (name of the entry is default) so if there is no definition
36+
for that command or artifact it will use those resources
37+
38+
Resources allocation
39+
--------------------
40+
41+
The allocation of each job is what a user will normally use to define resources when
42+
submitting a job into a queueing system, for example: `-q qiita -l nodes=1:ppn=1 -l mem=8gb -l walltime=300:00:00`
43+
44+
We have defined some "internal" rules:
45+
46+
#. Always submitted to the qiita queue
47+
#. Memory allocation should be done using: mem (memory for the full job); suggest using 1G as the
48+
minimum request (no benefit selecting 1G vs 700M)
49+
#. The nodes and cores allocations should be in the form of: nodes=<num>:ppn=<num>
50+
#. Always request walltime!
51+
#. The queueing system uses mem for vacating jobs, not vmem, so focus on mem utilization (ignore
52+
vmem - at least for now)
53+
54+
Resources allocation by formula
55+
-------------------------------
56+
57+
It is possible to define a memory allocation by a formula using the values: "{samples}" - the
58+
number of samples in the information file, "{columns}" - the number of columns in the information file,
59+
and "{input_size}" - the total size of the artifact type (in bytes).
60+
61+
Some examples:
62+
63+
#. Request 1K per sample: `samples*1000` -> `-q qiita -l nodes=1:ppn=5 -l mem={samples}*1000 -l walltime=130:00:00`
64+
#. Request at least 4M and then add `samples+columns` and request 1M for each:
65+
`((samples+columns)*1000000)+4000000` -> `-q qiita -l nodes=1:ppn=5 -l mem=(({samples}+{columns})*1000000)+4000000
66+
-l walltime=130:00:00`
67+
#. Request at least 2G and grow based on input size: `{input_size}+(2*1e+9)` -> `-q qiita -l nodes=1:ppn=5 -l
68+
mem={input_size}+(2*1e+9) -l walltime=130:00:00`

0 commit comments

Comments
 (0)