SAGA Adaptor CPI v.1.0
|
00001 // Copyright (c) 2005-2009 Hartmut Kaiser 00002 // Copyright (c) 2007 Ole Weidner (oweidner@cct.lsu.edu) 00003 // 00004 // Distributed under the Boost Software License, Version 1.0. (See accompanying 00005 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 00006 00007 #ifndef SAGA_PACKAGES_JOB_JOB_DESCRIPTION_HPP 00008 #define SAGA_PACKAGES_JOB_JOB_DESCRIPTION_HPP 00009 00010 #include <string> 00011 #include <vector> 00012 00013 // include dependent spec sections 00014 #include <saga/saga/util.hpp> 00015 #include <saga/saga/base.hpp> 00016 #include <saga/saga/types.hpp> 00017 #include <saga/saga/session.hpp> 00018 #include <saga/saga/call.hpp> 00019 #include <saga/saga/detail/attribute.hpp> 00020 00021 #include <saga/saga/packages/job/config.hpp> 00022 00023 // suppress warnings about dependent classes not being exported from the dll 00024 #if defined(BOOST_MSVC) 00025 #pragma warning(push) 00026 #pragma warning(disable: 4251 4231 4275 4660) 00027 #endif 00028 00030 namespace saga 00031 { 00032 namespace job { 00033 00034 namespace attributes 00035 { 00039 char const* const description_executable = "Executable"; 00042 char const* const description_arguments = "Arguments"; 00045 char const* const description_environment = "Environment"; 00048 char const* const description_working_directory = "WorkingDirectory"; 00051 char const* const description_interactive = "Interactive"; 00054 char const* const description_input = "Input"; 00057 char const* const description_output = "Output"; 00060 char const* const description_error = "Error"; 00063 char const* const description_file_transfer = "FileTransfer"; 00066 char const* const description_cleanup = "Cleanup"; 00069 char const* const description_job_start_time = "JobStartTime"; 00072 char const* const description_total_cpu_time = "TotalCPUTime"; 00075 char const* const description_wall_time_limit = "WallTimeLimit"; 00078 char const* const description_total_physical_memory = "TotalPhysicalMemory"; 00081 char const* const description_cpu_architecture = "CPUArchitecture"; 00082 00085 char const* const description_operating_system_type = "OperatingSystemType"; 00089 char const* const description_candidate_hosts = "CandidateHosts"; 00092 char const* const description_queue = "Queue"; 00095 char const* const description_job_contact = "JobContact"; 00098 char const* const description_job_project = "JobProject"; 00101 char const* const description_spmd_variation = "SPMDVariation"; 00104 char const* const description_total_cpu_count = "TotalCPUCount"; 00107 char const* const description_number_of_processes = "NumberOfProcesses"; 00110 char const* const description_processes_per_host = "ProcessesPerHost"; 00113 char const* const description_threads_per_process = "ThreadsPerProcess"; 00114 00116 char const* const description_cpuarchitecture_sparc = "sparc"; 00118 char const* const description_cpuarchitecture_powerpc = "powerpc"; 00120 char const* const description_cpuarchitecture_x86 = "x86"; 00122 char const* const description_cpuarchitecture_x86_32 = "x86_32"; 00124 char const* const description_cpuarchitecture_x86_64 = "x86_64"; 00126 char const* const description_cpuarchitecture_parisc = "parisc"; 00128 char const* const description_cpuarchitecture_mips = "mips"; 00130 char const* const description_cpuarchitecture_ia64 = "ia64"; 00132 char const* const description_cpuarchitecture_arm = "arm"; 00134 char const* const description_cpuarchitecture_other = "other"; 00135 00136 00138 char const* const description_spmdvariation_none = "None"; 00139 00141 char const* const description_spmdvariation_mpi = "MPI"; 00142 00144 char const* const description_spmdvariation_gridmpi = "GridMPI"; 00145 00147 char const* const description_spmdvariation_intelmpi = "IntelMPI"; 00148 00150 char const* const description_spmdvariation_lammpi = "LAM-MPI"; 00151 00153 char const* const description_spmdvariation_mpich1 = "MPICH1"; 00154 00156 char const* const description_spmdvariation_mpich2 = "MPICH2"; 00157 00159 char const* const description_spmdvariation_mpichgm = "MPICH-GM"; 00160 00162 char const* const description_spmdvariation_mpichmx = "MPICH-MX"; 00163 00165 char const* const description_spmdvariation_mvapich = "MVAPICH"; 00166 00168 char const* const description_spmdvariation_mvapich2 = "MVAPICH2"; 00169 00171 char const* const description_spmdvariation_openmp = "OpenMP"; 00172 00174 char const* const description_spmdvariation_poe = "POE"; 00175 00177 char const* const description_spmdvariation_pvm = "PVM"; 00178 00179 00180 00182 namespace detail 00183 { 00184 char const* const description_operating_system_unknown = "Unknown"; 00185 char const* const description_operating_system_macos = "MACOS"; 00186 char const* const description_operating_system_attunix = "ATTUNIX"; 00187 char const* const description_operating_system_dgux = "DGUX"; 00188 char const* const description_operating_system_decnt = "DECNT"; 00189 char const* const description_operating_system_true64_unix = "True64_UNIX"; 00190 char const* const description_operating_system_openvms = "openVMS"; 00191 char const* const description_operating_system_hpux = "HPUX"; 00192 char const* const description_operating_system_aix = "AIX"; 00193 char const* const description_operating_system_mvs = "MVS"; 00194 char const* const description_operating_system_os400 = "OS400"; 00195 char const* const description_operating_system_os_2 = "OS_2"; 00196 char const* const description_operating_system_javavm = "JavaVM"; 00197 char const* const description_operating_system_msdos = "MSDOS"; 00198 char const* const description_operating_system_win3x = "WIN3x"; 00199 char const* const description_operating_system_win95 = "WIN95"; 00200 char const* const description_operating_system_win98 = "WIN98"; 00201 char const* const description_operating_system_winnt = "WINNT"; 00202 char const* const description_operating_system_wince = "WINCE"; 00203 char const* const description_operating_system_ncr3000 = "NCR3000"; 00204 char const* const description_operating_system_netware = "netWare"; 00205 char const* const description_operating_system_osf = "OSF"; 00206 char const* const description_operating_system_dc_os = "DC_OS"; 00207 char const* const description_operating_system_reliant_unix = "Reliant_UNIX"; 00208 char const* const description_operating_system_sco_unixware = "SCO_UnixWare"; 00209 char const* const description_operating_system_sco_openserver = "SCO_OpenServer"; 00210 char const* const description_operating_system_sequent = "Sequent"; 00211 char const* const description_operating_system_irix = "IRIX"; 00212 char const* const description_operating_system_solaris = "Solaris"; 00213 char const* const description_operating_system_sunos = "SunOS"; 00214 char const* const description_operating_system_u6000 = "U6000"; 00215 char const* const description_operating_system_aseries = "ASERIES"; 00216 char const* const description_operating_system_tandemnsk = "TandemNSK"; 00217 char const* const description_operating_system_tandemnt = "TandenNT"; 00218 char const* const description_operating_system_bs2000 = "BS2000"; 00219 char const* const description_operating_system_linux = "LINUX"; 00220 char const* const description_operating_system_lynx = "Lynx"; 00221 char const* const description_operating_system_xenix = "XENIX"; 00222 char const* const description_operating_system_vm = "VM"; 00223 char const* const description_operating_system_interactive_unix = "Interactive_UNIX"; 00224 char const* const description_operating_system_bsdunix = "BSDUNIX"; 00225 char const* const description_operating_system_freebsd = "FreeBSD"; 00226 char const* const description_operating_system_netbsd = "NetBSD"; 00227 char const* const description_operating_system_gnu_hurd = "GNU_Hurd"; 00228 char const* const description_operating_system_os9 = "OS9"; 00229 char const* const description_operating_system_mach_kernel = "MACH_Kernel"; 00230 char const* const description_operating_system_inferno = "Inferno"; 00231 char const* const description_operating_system_qnx = "QNX"; 00232 char const* const description_operating_system_epoc = "EPOC"; 00233 char const* const description_operating_system_ixworks = "IxWorks"; 00234 char const* const description_operating_system_vxworks = "VxWorks"; 00235 char const* const description_operating_system_mint = "MiNT"; 00236 char const* const description_operating_system_beos = "BeOS"; 00237 char const* const description_operating_system_hp_mpe = "HP_MPE"; 00238 char const* const description_operating_system_nextstep = "NextStep"; 00239 char const* const description_operating_system_palmpilot = "PalmPilot"; 00240 char const* const description_operating_system_rhapsody = "Rhapsody"; 00241 char const* const description_operating_system_windows_2000 = "Windows_2000"; 00242 char const* const description_operating_system_dedicated = "Dedicated"; 00243 char const* const description_operating_system_os_390 = "OS_390"; 00244 char const* const description_operating_system_vse = "VSE"; 00245 char const* const description_operating_system_tpf = "TPF"; 00246 char const* const description_operating_system_windows_me = "Windows_Me"; 00247 char const* const description_operating_system_caldera_open_unix = "Caldera_open_UNIX"; 00248 char const* const description_operating_system_openbsd = "OpenBSD"; 00249 char const* const description_operating_system_not_applicable = "Not_Applicable"; 00250 char const* const description_operating_system_windows_xp = "Windows_XP"; 00251 char const* const description_operating_system_z_os = "z_OS"; 00252 char const* const description_operating_system_other = "other"; 00253 } 00255 } 00256 00266 class SAGA_JOB_PACKAGE_EXPORT description 00267 : public saga::object, 00268 public saga::detail::attribute<description> 00269 { 00270 protected: 00272 00273 friend struct saga::detail::attribute<description>; // needs to access get_impl() 00274 friend class saga::impl::description; 00275 explicit description(saga::impl::description *impl); 00277 00278 public: 00283 description (void); 00284 00289 explicit description (saga::object const& o); 00290 00295 ~description (void); 00296 00301 description &operator= (saga::object const& o); 00302 00303 }; 00304 00305 } // namespace job 00306 } 00307 00308 // re-enable warnings about dependent classes not being exported from the dll 00309 #if defined(BOOST_MSVC) 00310 #pragma warning(pop) 00311 #endif 00312 00313 #endif // !defined(SAGA_PACKAGES_JOB_JOB_DESCRIPTION_HPP) 00314