ATLAS Offline Software
Loading...
Searching...
No Matches
SoGEDriver.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
7
8
9//
10// includes
11//
12
14
16#include <EventLoop/Job.h>
20#include <TSystem.h>
21#include <sstream>
22
23//
24// method implementations
25//
26
28
29namespace EL
30{
31 void SoGEDriver ::
32 testInvariant () const
33 {
34 RCU_INVARIANT (this != 0);
35 }
36
37
38
39 SoGEDriver ::
40 SoGEDriver ()
41 {
42 RCU_NEW_INVARIANT (this);
43 }
44
45
46
47 ::StatusCode SoGEDriver ::
48 doManagerStep (Detail::ManagerData& data) const
49 {
50 RCU_READ_INVARIANT (this);
51 using namespace msgEventLoop;
53 switch (data.step)
54 {
56 {
57 data.batchJobId = "EL_JOBID=$(($SGE_TASK_ID-1))\n";
58 }
59 break;
60
63 {
64 if (data.resubmit)
65 RCU_THROW_MSG ("resubmission not supported for this driver");
66
67 assert (!data.batchJobIndices.empty());
68 assert (data.batchJobIndices.back() + 1 == data.batchJobIndices.size());
69 const std::size_t njob = data.batchJobIndices.size();
70
71 std::ostringstream cmd;
72 cmd << "cd " << data.submitDir << "/submit && qsub "
73 << data.options.castString (Job::optSubmitFlags)
74 << " -t 1-" << (njob) << " run";
75 if (gSystem->Exec (cmd.str().c_str()) != 0)
76 RCU_THROW_MSG (("failed to execute: " + cmd.str()).c_str());
77 data.submitted = true;
78 }
79 break;
80
81 default:
82 break;
83 }
84 return ::StatusCode::SUCCESS;
85 }
86}
#define RCU_INVARIANT(x)
Definition Assert.h:201
#define RCU_NEW_INVARIANT(x)
Definition Assert.h:233
#define RCU_READ_INVARIANT(x)
Definition Assert.h:229
#define ANA_CHECK(EXP)
check whether the given expression was successful
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
#define RCU_THROW_MSG(message)
Definition PrintMsg.h:58
ClassImp(EL::SoGEDriver) namespace EL
virtual::StatusCode doManagerStep(Detail::ManagerData &data) const override
static const std::string optSubmitFlags
description: the name of the option for supplying extra submit parameters to batch systems rationale:...
Definition Job.h:296
a Driver for running on SoGE(?) batch systems
Definition SoGEDriver.h:21
@ doResubmit
call the actual doResubmit method
@ submitJob
do the actual job submission
Definition ManagerStep.h:92
@ batchScriptVar
create the variables needed for the batch-run script
Definition ManagerStep.h:83
This module defines the arguments passed from the BATCH driver to the BATCH worker.