- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Search for |

# cpr_job_description.hpp

Go to the documentation of this file.

    00001 //  Copyright (c) 2005-2009 Hartmut Kaiser
    00002 //  Copyright (c) 2007 Ole Weidner (oweidner@cct.lsu.edu)
    00003 //  Copyright (c) 2008 Andre Merzky (andre@merzky.net)
    00004 //
    00005 //  Distributed under the Boost Software License, Version 1.0. (See accompanying
    00006 //  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
    00007
    00008
    00009 #ifndef SAGA_PACKAGES_CPR_JOB_DESCRIPTION_HPP
    00010 #define SAGA_PACKAGES_CPR_JOB_DESCRIPTION_HPP
    00011
    00012 #include <string>
    00013 #include <vector>
    00014
    00015 // include dependent spec sections
    00016 #include <saga/saga/util.hpp>
    00017 #include <saga/saga/base.hpp>
    00018 #include <saga/saga/types.hpp>
    00019 #include <saga/saga/session.hpp>
    00020 #include <saga/saga/call.hpp>
    00021 #include <saga/saga/job.hpp>
    00022 #include <saga/saga/detail/attribute.hpp>
    00023
    00024 #include <saga/saga/packages/cpr/config.hpp>
    00025
    00026 // suppress warnings about dependent classes not being exported from the dll
    00027 #if defined(BOOST_MSVC)
    00028 #pragma warning(push)
    00029 #pragma warning(disable: 4251 4231 4275 4660)
    00030 #endif
    00031
    00033 namespace saga
    00034 {
    00035   namespace cpr
    00036   {
    00037     namespace attributes
    00038     {
    00039     //  /*! \brief <b>[rw]</b> Command to execute (this is the only required %attribute for
    00040     //   *         a %job description %object)
    00041     //   */
    00042     //  char const* const description_executable          = "Executable";
    00043     //  /*! \brief <b>[rw]</b> Positional parameters for the command
    00044     //   */
    00045     //  char const* const description_arguments           = "Arguments";
    00046     //  /*! \brief <b>[rw]</b> Set of environment variables for the %job (format: 'key=value').
    00047     //   */
    00048     //  char const* const description_environment         = "Environment";
    00049     //  /*! \brief <b>[rw]</b> Working directory for the %job
    00050     //   */
    00051     //  char const* const description_working_directory    = "WorkingDirectory";
    00052     //  /*! \brief <b>[rw]</b> Run the %job in interactive mode
    00053     //   */
    00054     //  char const* const description_interactive         = "Interactive";
    00055     //  /*! \brief <b>[rw]</b> Pathname of the standard input %file
    00056     //   */
    00057     //  char const* const description_input               = "Input";
    00058     //  /*! \brief <b>[rw]</b> Pathname of the standard output %file
    00059     //   */
    00060     //  char const* const description_output              = "Output";
    00061     //  /*! \brief <b>[rw]</b> Pathname of the standard error %file
    00062     //   */
    00063     //  char const* const description_error               = "Error";
    00064     //  /*! \brief <b>[rw]</b> A list of %file transfer directives
    00065     //   */
    00066     //  char const* const description_file_transfer        = "FileTransfer";
    00067     //  /*! \brief <b>[rw]</b> Defines if output files get removed after the %job finishes
    00068     //   */
    00069     //  char const* const description_cleanup             = "Cleanup";
    00070     //  /*! \brief <b>[rw]</b> Time at which a %job should be scheduled
    00071     //   */
    00072     //  char const* const description_job_start_time        = "JobStartTime";
    00073     //  /*! \brief <b>[rw]</b> ?!?
    00074     //   */
    00075     //  char const* const description_total_cpu_time        = "TotalCPUTime";
    00076     //  /*! \brief <b>[rw]</b> Estimated amount of memory the %job requires
    00077     //   */
    00078     //  char const* const description_total_physical_memory = "TotalPhysicalMemory";
    00079     //  /*! \brief <b>[rw]</b> Compatible processor for %job submission
    00080     //   */
    00081     //  char const* const description_cpu_architecture     = "CPUArchitecture";
    00082     //
    00083     //      /*! \brief <b>[rw]</b> Compatible processor for %job submission values
    00084     //       */
    00085     //      char const* const cpuarchitecture_sparc = "sparc";
    00086     //      char const* const cpuarchitecture_powerpc = "powerpc";
    00087     //      char const* const cpuarchitecture_x86 = "x86";
    00088     //      char const* const cpuarchitecture_x86_32 = "x86_32";
    00089     //      char const* const cpuarchitecture_x86_64 = "x86_64";
    00090     //      char const* const cpuarchitecture_parisc = "parisc";
    00091     //      char const* const cpuarchitecture_mips = "mips";
    00092     //      char const* const cpuarchitecture_ia64 = "ia64";
    00093     //      char const* const cpuarchitecture_arm = "arm";
    00094     //      char const* const cpuarchitecture_other = "other";
    00095     //
    00096     //  /*! \brief <b>[rw]</b> Compatible operating system for %job submission
    00097     //   */
    00098     //  char const* const description_operating_system_type = "OperatingSystemType";
    00099     //  /*! \brief <b>[rw]</b> List of host names which are to be considered by the
    00100     //   *         resource manager as candidate targets
    00101     //   */
    00102     //  char const* const description_candidate_hosts      = "CandidateHosts";
    00103     //  /*! \brief <b>[rw]</b> Name of a queue to place the %job into
    00104     //   */
    00105     //  char const* const description_queue               = "Queue";
    00106     //  /*! \brief <b>[rw]</b> Set of endpoints describing where to report %job state transitions
    00107     //   */
    00108     //  char const* const description_job_contact          = "JobContact";
    00109     //  /*! \brief <b>[rw]</b> SPMD %job type and startup mechanism
    00110     //   */
    00111     //  char const* const description_spmd_variation       = "SPMDVariation";
    00112     //  /*! \brief <b>[rw]</b> Total number of cpus requested for this %job
    00113     //   */
    00114     //  char const* const description_total_cpu_count       = "TotalCPUCount";
    00115     //  /*! \brief <b>[rw]</b> Number of process instances to start
    00116     //   */
    00117     //  char const* const description_number_of_processes   = "NumberOfProcesses";
    00118     //  /*! \brief <b>[rw]</b> Number of processes to start per host
    00119     //   */
    00120     //  char const* const description_processes_per_host    = "ProcessesPerHost";
    00121     //  /*! \brief <b>[rw]</b> Expected number of threads per process
    00122     //   */
    00123     //  char const* const description_threads_per_process   = "ThreadsPerProcess";
    00124     }
    00125
    00135     class SAGA_CPR_PACKAGE_EXPORT description
    00136         : public saga::job::description
    00137     {
    00138
    00139     protected:
    00141
    00142         friend struct saga::detail::attribute<description>;  // needs to access get_impl()
    00143         friend class saga::impl::cpr_job_description;
    00144         explicit description(saga::impl::cpr_job_description *impl);
    00146
    00147     public:
    00152         description (void);
    00153
    00158         explicit description (saga::object const& o);
    00159
    00164         ~description (void);
    00165
    00170         description &operator= (saga::object const& o);
    00171
    00172     };
    00173
    00174   }   // namespace cpr
    00175 }
    00176
    00177 // re-enable warnings about dependent classes not being exported from the dll
    00178 #if defined(BOOST_MSVC)
    00179 #pragma warning(pop)
    00180 #endif
    00181
    00182 #endif // !defined(SAGA_PACKAGES_CPR_JOB_DESCRIPTION_HPP)
    00183