Skip to content

docs: LHCb Workflows and Commands#125

Open
AcquaDiGiorgio wants to merge 4 commits intoDIRACGrid:mainfrom
AcquaDiGiorgio:issue-112-doc-lhcb-workflows
Open

docs: LHCb Workflows and Commands#125
AcquaDiGiorgio wants to merge 4 commits intoDIRACGrid:mainfrom
AcquaDiGiorgio:issue-112-doc-lhcb-workflows

Conversation

@AcquaDiGiorgio
Copy link
Contributor

See #112

Apparantly, Git does not support ELK as a mermaid renderer...

@AcquaDiGiorgio AcquaDiGiorgio self-assigned this Mar 9, 2026
@AcquaDiGiorgio AcquaDiGiorgio requested a review from aldbr March 9, 2026 13:49
@aldbr aldbr linked an issue Mar 9, 2026 that may be closed by this pull request
1 task
Copy link
Contributor

@aldbr aldbr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! The approach sounds good. A few comments though:

  • I think it would be interesting to have, for each type of jobs:

    • left: current XML workflow
    • right: the CWL + pre/post process equivalent
  • Could you add a very brief description of each module please?

  • AnalyseXMLSummary cannot work in Processing I think because it needs to set some file status. So in the new workflow, we would need to have it in a post process step. We could potentially have a check within LbRunApp as we said, to fail the workflow before it starts executing further steps.

  • BookkeepingReport and WorkflowAccounting would need modifications (there will process multiple app outputs at once, this needs to appear)

@AcquaDiGiorgio AcquaDiGiorgio force-pushed the issue-112-doc-lhcb-workflows branch from c2ac24f to 83bf433 Compare March 12, 2026 10:10
@AcquaDiGiorgio AcquaDiGiorgio requested a review from aldbr March 12, 2026 11:42
UploadOutputData0[UploadOutputData]
UploadLogFile0[UploadLogFile]
UploadMC0[UploadMC]
FailoverTransfer0[FailoverTransfer]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No?

Suggested change
FailoverTransfer0[FailoverTransfer]
FailoverRequest0[FailoverRequest]

AnalyseXmlSummary1[AnalyseXmlSummary]
UploadLogFile1[UploadLogFile]
UploadOutputData1[UploadOutputData]
FailoverTransfer1[FailoverTransfer]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here no?

Suggested change
FailoverTransfer1[FailoverTransfer]
FailoverRequest1[FailoverRequest]

RemoveInputData0[RemoveInputData]
UploadLogFile0[UploadLogFile]
UploadMC0[UploadMC]
FailoverTransfer0[FailoverTransfer]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And here again?

Suggested change
FailoverTransfer0[FailoverTransfer]
FailoverRequest0[FailoverRequest]

AnalyseXmlSummary1[AnalyseXmlSummary]
UploadLogFile1[UploadLogFile]
UploadOutputData1[UploadOutputData]
FailoverTransfer1[FailoverTransfer]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And here?

Suggested change
FailoverTransfer1[FailoverTransfer]
FailoverRequest1[FailoverRequest]


Registers every output generated to the corresponding SE and to the Master Catalog or to the FailoverSE in case of failure.

### FailoverTransfer
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And here too?

Suggested change
### FailoverTransfer
### FailoverRequest

UploadLogFile UploadLogFile_l5@===> transferAndRegisterFile
UploadLogFile UploadLogFile_l6@===> setJobParameter
UploadLogFile UploadLogFile_l7@===> setApplicationStatus
UploadLogFile UploadLogFile_l8@===> getFileTypes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see that in the code

Suggested change
UploadLogFile UploadLogFile_l8@===> getFileTypes

| BookkeepingReport | Outputs | bookkeeping.xml | StepID ApplicationName ApplicationVersion StartTime ProductionId StepNumber SiteName JobType |
| WorkflowAccounting | N/A | N/A | RunNumber ProdID EventType SiteName ProcessingStep CpuTime NormCpuTime InputsStats OutputStats InputEvents OutputEvents EventTime NProcs JobGroup FinalState |
| AnalyseFileAccess | XMLSummary.xml pool_xml_catalog.xml | N/A | N/A |
| UserJobFinalization | UserOutputData | bookkeeping.xml | JobId UserOutputSE SiteName UserOutputPath ReplicateUserOutData UserOutputLFNPrep |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it create the bookkeeping.xml file?


FileUsage("FileUsage")

FileUsage FileUsage_l1@===> getValueGconf
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about dataUsageClient.sendDataUsageReport?

subgraph Processing0[''Processing'']
direction TB

GaudiApplication0[GaudiApplication]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't you think we will need a preprocess command for GaudiApplication?


Currently, the Workflow Modules execute in a predefined order.

For the new approach with CWL, the modules are called "commands" and can be executed in any order, because they don't depend on any other's outputs. However, an order has to be defined while defining the `JobType`, which can be the same as the current order.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that true?
BookkeepingReport creates the bookkeeping.xml file, then it is consumed by UploadOutputData for instance

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Documentation about the new LHCb workflows

2 participants