Skip to content

Commit

Permalink
feat: further details about interactions with HPCs
Browse files Browse the repository at this point in the history
  • Loading branch information
aldbr committed Apr 12, 2023
1 parent b42aa1f commit 06592b5
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 6 deletions.
12 changes: 11 additions & 1 deletion docs/source/AdministratorGuide/Resources/supercomputers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -133,14 +133,24 @@ One has also to authorize the machine hosting the :mod:`~DIRAC.WorkloadManagemen
Properties += GenericPilot
Properties += FileCatalogManagement

One has to specify the concerned VO in the targeted CEs, such as::
One has to specify the concerned VO, the platform and the CPU Power in the targeted CEs as well as , such as::

<CE>
{
# To match a <VO> job
VO = <VO>
# Required because we are on a host (not on a worker node)
VirtualOrganization = <VO>
# To match compatible jobs
Platform = <platform>
Queues
{
<Queue>
{
CPUNormalizationFactor = <CPU Power value>
}
}

}

Finally, one has to make sure that job scheduling parameters are correctly fine-tuned. Further details in the :ref:`JobScheduling section <jobscheduling>`.
Expand Down
6 changes: 4 additions & 2 deletions src/DIRAC/WorkloadManagementSystem/Agent/PushJobAgent.py
Original file line number Diff line number Diff line change
Expand Up @@ -373,18 +373,20 @@ def _allowedToSubmit(self, queue):

def _setCEDict(self, ceDict):
"""Set CEDict"""
# Matcher will check that ReleaseVersion match the pilot version
# Matcher will check that ReleaseVersion matches the pilot version
# It is not needed in this configuration so we set ReleaseVersion as the pilot version
# Also, DIRACVersion should be equals to ReleaseVersion, so we modify it
versions = self.opsHelper.getValue("Pilot/Version", [])
if versions:
if not isinstance(versions, list):
versions = [versions]
ceDict["ReleaseVersion"] = versions[0]
ceDict["DIRACVersion"] = versions[0]
project = self.opsHelper.getValue("Pilot/Project", "")
if project:
ceDict["ReleaseProject"] = project

# Add a remoteExecution tag, which can be used in the next stages
# Add a RemoteExecution entry, which can be used in the next stages
ceDict["RemoteExecution"] = True

def _checkMatchingIssues(self, jobRequest):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,15 @@ def test__allowedToSubmit(mocker, queue, failedQueues, failedQueueCycleFactor, e
"ceDict, pilotVersion, pilotProject, expected",
[
({}, None, None, {"RemoteExecution": True}),
({}, "8.0.0", None, {"ReleaseVersion": "8.0.0", "RemoteExecution": True}),
({}, ["8.0.0", "7.3.7"], None, {"ReleaseVersion": "8.0.0", "RemoteExecution": True}),
({}, "8.0.0", None, {"DIRACVersion": "8.0.0", "ReleaseVersion": "8.0.0", "RemoteExecution": True}),
({}, ["8.0.0", "7.3.7"], None, {"DIRACVersion": "8.0.0", "ReleaseVersion": "8.0.0", "RemoteExecution": True}),
({}, None, "Project", {"ReleaseProject": "Project", "RemoteExecution": True}),
({}, "8.0.0", "Project", {"ReleaseVersion": "8.0.0", "ReleaseProject": "Project", "RemoteExecution": True}),
(
{},
"8.0.0",
"Project",
{"DIRACVersion": "8.0.0", "ReleaseVersion": "8.0.0", "ReleaseProject": "Project", "RemoteExecution": True},
),
],
)
def test__setCEDict(mocker, ceDict, pilotVersion, pilotProject, expected):
Expand Down

0 comments on commit 06592b5

Please sign in to comment.