00001 #ifndef EVENT_LOOP_BATCH_DRIVER_HH
00002 #define EVENT_LOOP_BATCH_DRIVER_HH
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00017
00018
00019
00020 #include <EventLoop/Global.h>
00021
00022 #include <EventLoop/Driver.h>
00023 #include <SampleHandler/Global.h>
00024
00025 namespace EL
00026 {
00027 class BatchDriver : public Driver
00028 {
00029
00030
00031
00032
00035 public:
00036 void testInvariant () const;
00037
00038
00042 public:
00043 BatchDriver ();
00044
00045
00048 public:
00049 std::string shellInit;
00050
00051
00052
00053
00054
00055
00056
00061 private:
00062 virtual void
00063 doUpdateJob (Job& job, const std::string& location) const override;
00064
00065
00071 private:
00072 virtual void
00073 doSubmit (const Job& job, const std::string& location) const override;
00074
00075
00088 private:
00089 virtual bool
00090 doRetrieve (const std::string& location) const override;
00091
00092
00093
00094
00095
00096
00097
00104 private:
00105 virtual std::string batchName () const;
00106
00107
00116 private:
00117 virtual std::string batchInit () const;
00118
00119
00128 private:
00129 virtual std::string batchJobId () const;
00130
00131
00136 private:
00137 virtual void
00138 batchSubmit (const std::string& location, const SH::MetaObject& options,
00139 std::size_t njob) const = 0;
00140
00141
00142
00143
00144
00145
00146
00151 private:
00152 void makeScript (const std::string& location, std::size_t njobs, bool sharedFileSystem) const;
00153
00154
00160 private:
00161 static bool mergeHists (const std::string& location, const BatchJob& config);
00162
00166 private:
00167 const std::string getWriteLocation(const std::string& location) const;
00168
00172 private:
00173 const std::string getSubmitLocation(const std::string& location) const;
00174
00178 private:
00179 const std::string getRootCoreBin() const;
00180
00181 #pragma GCC diagnostic push
00182 #pragma GCC diagnostic ignored "-Wpragmas"
00183 #pragma GCC diagnostic ignored "-Wunknown-pragmas"
00184 #pragma GCC diagnostic ignored "-Winconsistent-missing-override"
00185 ClassDef(BatchDriver, 1);
00186 #pragma GCC diagnostic pop
00187 };
00188 }
00189
00190 #endif