Project

General

Profile

Submit jobs

There are two submission categories:
  • Regular submission
    This will submit jobs as they are configured to process all events or files in the dataset.

More details are in the following sections.

Regular submission

To submit jobs users can choose among a list of options:
  • campaign name and stage name:
    Project.py --submit --campaign <campaign_name> --stage <stage_name>
    
  • stage ID:
    Project.py --submit --stage_id <stage_Id>
    
  • campaign name:
    Project.py --submit --campaign <campaign_name>
    
  • campaign ID:
    Project.py --submit --campaign_id <campaign_Id>
    

In case of campaign with multi stages that depend each other,
the user can submit jobs by stage (name/ID) using the first stage of the chain.
POMS will take care to automatically submit jobs for the other stages.

If the user choose to submit jobs by campaign (name/ID), POMS will submit jobs for the first stage of a stage dependency chain.
When those jobs are completed, POMS will automatically submit jobs for dependent stages.

When submitting jobs, project-py automatically prestages files in the input SAM dataset.
For this purpose the input SAM dataset is automatically split in 1TiB slices.
The workflow is modified accordingly to submit an appropriate number of jobs for each slice,
until all data slices have been processed.

An output example of the job submission is the following:

$ Project.py --submit --campaign vito_UserAnalysis --stage myanalysis
'Output of submit command: https://pomsgpvm01.fnal.gov/poms/list_launch_file?campaign_stage_id=4994&fname=20200114_172351_vito_468909'
'Submit status: 303'
'Submission ID: 468909'

To make sure to have a valid proxy, at submission time the user proxy is renewed and uploaded to POMS.

The URL provided in the output of the --submit command gives access to the POMS output of the submission command.
This helps to verify the status of the submission command.

Test submission

To to submit few jobs to test the workflow, alongside the option described for the regular submission, the user can use the option --njobs <n>
this will modify the configuration to submit only <n> jobs.
project-py creates a SAM dataset with an appropriated number of files to process <n> jobs.

The user can also use the option --test_launch, this is equivalent to --njobs 3

For example, using campaign name and stage name as submission option:

Project.py --submit --test_launch --campaign <campaign_name> --stage <stage_name>

or to submit 10 test jobs:
Project.py --submit --njobs 10 --campaign <campaign_name> --stage <stage_name>

If there are dependent stages, POMS will take care to process them automatically using output of the previous stage.