Skip to content

Commit 968df0d

Browse files
committed
sweep: #5928 docs: added better docs for JobShare and priorities
1 parent 776cd36 commit 968df0d

File tree

3 files changed

+46
-15
lines changed

3 files changed

+46
-15
lines changed

docs/source/AdministratorGuide/Systems/WorkloadManagement/JobPriorities/index.rst renamed to docs/source/AdministratorGuide/Systems/WorkloadManagement/JobsPriorities.rst

Lines changed: 43 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,17 @@ Scenario
1313

1414
There are two user profiles:
1515

16-
* Users that submit jobs on behalf of themselves. For instance normal analysis
17-
users.
18-
* Users that submit jobs on behalf of the group. For instance production users.
16+
1. Users that submit jobs on behalf of themselves. For instance normal analysis users.
17+
2. Users that submit jobs on behalf of a group. For instance production users.
1918

20-
In the first case, users are competing for resources, and on the second case users
21-
share them. But this two profiles also compete against each other. DIRAC has to
19+
In the first case, users are competing for resources, and in the second case users
20+
share them. But these two profiles also compete against each other. DIRAC has to
2221
provide a way to share the resources available. On top of that users want to specify
2322
a "UserPriority" to their jobs. They want to tell DIRAC which of their own jobs
24-
should run first and which should ran last.
23+
should run first and which should run last.
2524

26-
DIRAC implements a priority schema to decide which user gets to run in each moment
27-
so a fair share of CPU is kept between the users.
25+
DIRAC implements a priority schema to decide which user gets to run in each moment
26+
so a fair share is maintained between the users.
2827

2928
-------------------------
3029
Priority implementation
@@ -37,7 +36,8 @@ DIRAC only has to prioritize *TaskQueues*.
3736
To handle the users competing for resources, DIRAC implements a group priority.
3837
Each DIRAC group has a priority defined. This priority can be shared or divided
3938
amongst the users in the group depending on the group properties. If the group has
40-
the *JOB_SHARING* property the priority will be shared, if it doesn't have it the
39+
the *JOB_SHARING* property (see :py:mod:`~DIRAC.Core.Security.Properties` module)
40+
the priority will be shared, and if it doesn't the
4141
group priority will be divided amongst them. Each *TaskQueue* will get a priority
4242
based on the group and user it belongs to:
4343

@@ -46,8 +46,40 @@ based on the group and user it belongs to:
4646
* If it does *NOT*, it will get 1/(N*U) being U the number of users in the group
4747
with waiting jobs and N the number of *TaskQueues* of that user/group combination.
4848

49-
On top of that users can specify a "UserPriority" to their jobs. To reflect that,
50-
DIRAC modifies the *TaskQueues* priorities depending on the "UserPriority" of the
49+
Administrators can set different job shares depending on the user's group that runs the jobs,
50+
by setting the *JobShare* option in the Configuration, in the groups definitions. For example::
51+
52+
lhcb_user # All LHCb users
53+
{
54+
Users = aaa
55+
...
56+
Users += zzz
57+
Properties = NormalUser
58+
Properties += PrivateLimitedDelegation
59+
JobShare = 10000
60+
61+
}
62+
....
63+
lhcb_mc # this is for MonteCarlo simulations
64+
{
65+
Users = ...
66+
Properties = NormalUser
67+
Properties += JobSharing
68+
Properties += ProductionManagement
69+
JobShare = 300
70+
}
71+
....
72+
lhcb_data # this is for real data productions
73+
{
74+
Users = ...
75+
Properties = NormalUser
76+
Properties += JobSharing
77+
Properties += ...
78+
JobShare = 40000
79+
}
80+
81+
On top of that production administrators can specify a different "priority" to different productions.
82+
To reflect that, DIRAC modifies the *TaskQueues* priorities depending on the "priority" of the
5183
jobs in each *TaskQueue*. Each *TaskQueue* priority will be P*J being P the
5284
*TaskQueue* priority. J is the sum of all the "UserPriorities" of the jobs inside
5385
the *TaskQueue* divided by the sum of sums of all the "UserPiorities" in the jobs

docs/source/AdministratorGuide/Systems/WorkloadManagement/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ The following sections add some detail for the WMS systems.
8585
Pilots/Pilots3
8686
PilotsLogging/index
8787
Jobs/index
88-
JobPriorities/index
88+
JobsPriorities
8989
JobsMatching
9090
tagsAndJobs
9191
multiProcessorJobs
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
==================================
1+
==========================
22
How DIRAC works underneath
3-
==================================
3+
==========================
44

55
.. toctree::
66
:maxdepth: 1
77

8-
../../AdministratorGuide/Systems/WorkloadManagement/JobPriorities/index
98
Core/index
109
Core/componentsAuthNandAuthZ

0 commit comments

Comments
 (0)