blob: ef8bdaeb276e600e9f47802b6f04fb9e5df01e38 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - Initial API and implementation
*******************************************************************************/
package org.eclipse.ptp.rm.pbs.core;
import org.eclipse.ptp.core.attributes.IAttributeDefinition;
import org.eclipse.ptp.core.attributes.IntegerAttributeDefinition;
import org.eclipse.ptp.core.attributes.StringAttributeDefinition;
/**
* Job attributes
*/
public class PBSJobAttributes {
private static final String ACCOUNT_NAME_ATTR_ID = "Account_Name"; //$NON-NLS-1$
private static final String CHECKPOINT_ATTR_ID = "Checkpoint"; //$NON-NLS-1$
private static final String COMMENT_ATTR_ID = "comment"; //$NON-NLS-1$
private static final String DEPEND_ATTR_ID = "depend"; //$NON-NLS-1$
private static final String ERROR_PATH_ATTR_ID = "Error_Path"; //$NON-NLS-1$
private static final String EXECUTION_TIME_ATTR_ID = "Execution_Time"; //$NON-NLS-1$
private static final String GROUP_LIST_ATTR_ID = "group_list"; //$NON-NLS-1$
private static final String HOLD_TYPES_ATTR_ID = "Hold_Types"; //$NON-NLS-1$
private static final String JOB_NAME_ATTR_ID = "Job_Name"; //$NON-NLS-1$
private static final String JOIN_PATH_ATTR_ID = "Join_Path"; //$NON-NLS-1$
private static final String KEEP_FILES_ATTR_ID = "Keep_Files"; //$NON-NLS-1$
private static final String MAIL_POINTS_ATTR_ID = "Mail_Points"; //$NON-NLS-1$
private static final String MAIL_USERS_ATTR_ID = "Mail_Users"; //$NON-NLS-1$
private static final String NO_STDIO_SOCKETS_ATTR_ID = "no_stdio_sockets"; //$NON-NLS-1$
private static final String OUTPUT_PATH_ATTR_ID = "Output_Path"; //$NON-NLS-1$
private static final String PRIORITY_ATTR_ID = "Priority"; //$NON-NLS-1$
private static final String RERUNNABLE_ATTR_ID = "Rerunnable"; //$NON-NLS-1$
private static final String RES_ARCH_ATTR_ID = "Resource_List.arch"; //$NON-NLS-1$
private static final String RES_CPUT_ATTR_ID = "Resource_List.cput"; //$NON-NLS-1$
private static final String RES_FILE_ATTR_ID = "Resource_List.file"; //$NON-NLS-1$
private static final String RES_HOST_ATTR_ID = "Resource_List.host"; //$NON-NLS-1$
private static final String RES_MEM_ATTR_ID = "Resource_List.mem"; //$NON-NLS-1$
private static final String RES_MPIPROCS_ATTR_ID = "Resource_List.mpiprocs"; //$NON-NLS-1$
private static final String RES_NCPUS_ATTR_ID = "Resource_List.ncpus"; //$NON-NLS-1$
private static final String RES_NICE_ATTR_ID = "Resource_List.nice"; //$NON-NLS-1$
private static final String RES_NODES_ATTR_ID = "Resource_List.nodes"; //$NON-NLS-1$
private static final String RES_NODECT_ATTR_ID = "Resource_List.nodect"; //$NON-NLS-1$
private static final String RES_OMPTHREADS_ATTR_ID = "Resource_List.ompthreads"; //$NON-NLS-1$
private static final String RES_PCPUT_ATTR_ID = "Resource_List.pcput"; //$NON-NLS-1$
private static final String RES_PMEM_ATTR_ID = "Resource_List.pmem"; //$NON-NLS-1$
private static final String RES_PVMEM_ATTR_ID = "Resource_List.pvmem"; //$NON-NLS-1$
private static final String RES_RESC_ATTR_ID = "Resource_List.resc"; //$NON-NLS-1$
private static final String RES_VMEM_ATTR_ID = "Resource_List.vmem"; //$NON-NLS-1$
private static final String RES_WALLTIME_ATTR_ID = "Resource_List.walltime"; //$NON-NLS-1$
private static final String RES_MPPE_ATTR_ID = "Resource_List.mppe"; //$NON-NLS-1$
private static final String RES_MPPT_ATTR_ID = "Resource_List.mppt"; //$NON-NLS-1$
private static final String RES_PF_ATTR_ID = "Resource_List.pf"; //$NON-NLS-1$
private static final String RES_PMPPT_ATTR_ID = "Resource_List.pmppt"; //$NON-NLS-1$
private static final String RES_PNCPUS_ATTR_ID = "Resource_List.pncpus"; //$NON-NLS-1$
private static final String RES_PPF_ATTR_ID = "Resource_List.ppf"; //$NON-NLS-1$
private static final String RES_PROCS_ATTR_ID = "Resource_List.procs"; //$NON-NLS-1$
private static final String RES_PSDS_ATTR_ID = "Resource_List.psds"; //$NON-NLS-1$
private static final String RES_SDS_ATTR_ID = "Resource_List.sds"; //$NON-NLS-1$
private static final String SHELL_PATH_LIST_ATTR_ID = "Shell_Path_List"; //$NON-NLS-1$
private static final String STAGEIN_ATTR_ID = "stagein"; //$NON-NLS-1$
private static final String STAGEOUT_ATTR_ID = "stageout"; //$NON-NLS-1$
private static final String UMASK_ATTR_ID = "umask"; //$NON-NLS-1$
private static final String USER_LIST_ATTR_ID = "User_List"; //$NON-NLS-1$
private static final String VARIABLE_LIST_ATTR_ID = "Variable_List"; //$NON-NLS-1$
private static final IAttributeDefinition<?,?,?>[] attrDefs = new IAttributeDefinition[]{
new StringAttributeDefinition(ACCOUNT_NAME_ATTR_ID, ACCOUNT_NAME_ATTR_ID, "", true, ""),
new StringAttributeDefinition(CHECKPOINT_ATTR_ID, CHECKPOINT_ATTR_ID, "", true, ""),
new StringAttributeDefinition(COMMENT_ATTR_ID, COMMENT_ATTR_ID, "", true, ""),
new StringAttributeDefinition(DEPEND_ATTR_ID, DEPEND_ATTR_ID, "", true, ""),
new StringAttributeDefinition(ERROR_PATH_ATTR_ID, ERROR_PATH_ATTR_ID, "", true, ""),
new StringAttributeDefinition(EXECUTION_TIME_ATTR_ID, EXECUTION_TIME_ATTR_ID, "", true, ""),
new StringAttributeDefinition(GROUP_LIST_ATTR_ID, GROUP_LIST_ATTR_ID, "", true, ""),
new StringAttributeDefinition(HOLD_TYPES_ATTR_ID, HOLD_TYPES_ATTR_ID, "", true, ""),
new StringAttributeDefinition(JOB_NAME_ATTR_ID, JOB_NAME_ATTR_ID, "", true, ""),
new StringAttributeDefinition(JOIN_PATH_ATTR_ID, JOIN_PATH_ATTR_ID, "", true, ""),
new StringAttributeDefinition(KEEP_FILES_ATTR_ID, KEEP_FILES_ATTR_ID, "", true, ""),
new StringAttributeDefinition(MAIL_POINTS_ATTR_ID, MAIL_POINTS_ATTR_ID, "", true, ""),
new StringAttributeDefinition(MAIL_USERS_ATTR_ID, MAIL_USERS_ATTR_ID, "", true, ""),
new StringAttributeDefinition(NO_STDIO_SOCKETS_ATTR_ID, NO_STDIO_SOCKETS_ATTR_ID, "", true, ""),
new StringAttributeDefinition(OUTPUT_PATH_ATTR_ID, OUTPUT_PATH_ATTR_ID, "", true, ""),
new IntegerAttributeDefinition(PRIORITY_ATTR_ID, PRIORITY_ATTR_ID, "", true, 0),
new StringAttributeDefinition(RERUNNABLE_ATTR_ID, RERUNNABLE_ATTR_ID, "", true, ""),
new StringAttributeDefinition(RES_ARCH_ATTR_ID, RES_ARCH_ATTR_ID, "System architecture", true, ""),
new StringAttributeDefinition(RES_CPUT_ATTR_ID, RES_CPUT_ATTR_ID, "Maximum, aggregate CPU time required by all processes", true, ""),
new StringAttributeDefinition(RES_FILE_ATTR_ID, RES_FILE_ATTR_ID, "Maximum disk space requirements for any single file to be created", true, ""),
new StringAttributeDefinition(RES_HOST_ATTR_ID, RES_HOST_ATTR_ID, "Name of requested host/node", true, ""),
new StringAttributeDefinition(RES_MEM_ATTR_ID, RES_MEM_ATTR_ID, "Maximum amount of physical memory (RAM)", true, ""),
new IntegerAttributeDefinition(RES_MPIPROCS_ATTR_ID, RES_MPIPROCS_ATTR_ID, "Number of MPI processes for this chunk", true, 0),
new IntegerAttributeDefinition(RES_NCPUS_ATTR_ID, RES_NCPUS_ATTR_ID, "Number of CPUs (processors)", true, 0),
new IntegerAttributeDefinition(RES_NICE_ATTR_ID, RES_NICE_ATTR_ID, "Requested job priority", true, 0),
new StringAttributeDefinition(RES_NODES_ATTR_ID, RES_NODES_ATTR_ID, "Number and/or type of nodes", true, ""),
new IntegerAttributeDefinition(RES_NODECT_ATTR_ID, RES_NODECT_ATTR_ID, "Number of chunks in resource request from selection directive, or number of vnodes requested from node specification", true, 0),
new IntegerAttributeDefinition(RES_OMPTHREADS_ATTR_ID, RES_OMPTHREADS_ATTR_ID, "Number of OpenMP threads for this chunk", true, 0),
new StringAttributeDefinition(RES_PCPUT_ATTR_ID, RES_PCPUT_ATTR_ID, "Per-process maximum CPU time", true, ""),
new StringAttributeDefinition(RES_PMEM_ATTR_ID, RES_PMEM_ATTR_ID, "Per-process maximum amount of physical memory", true, ""),
new StringAttributeDefinition(RES_PVMEM_ATTR_ID, RES_PVMEM_ATTR_ID, "Per-process maximum amount of virtual memory", true, ""),
new StringAttributeDefinition(RES_RESC_ATTR_ID, RES_RESC_ATTR_ID, "Single-node variable resource specification string", true, ""),
new StringAttributeDefinition(RES_VMEM_ATTR_ID, RES_VMEM_ATTR_ID, "Maximum, aggregate amount of virtual memory used by all concurrent processes", true, ""),
new StringAttributeDefinition(RES_WALLTIME_ATTR_ID, RES_WALLTIME_ATTR_ID, "Maximum amount of real time (wall-clock elapsed time)", true, ""),
new IntegerAttributeDefinition(RES_MPPE_ATTR_ID, RES_MPPE_ATTR_ID, "Number of processing elements used by a single process", true, 0),
new StringAttributeDefinition(RES_MPPT_ATTR_ID, RES_MPPT_ATTR_ID, "Maximum wallclock time used on the MPP", true, ""),
new StringAttributeDefinition(RES_PF_ATTR_ID, RES_PF_ATTR_ID, "Maximum number of file system blocks that can be used by all process", true, ""),
new StringAttributeDefinition(RES_PMPPT_ATTR_ID, RES_PMPPT_ATTR_ID, "Maximum amount of wall clock time used on the MPP by a single process", true, ""),
new IntegerAttributeDefinition(RES_PNCPUS_ATTR_ID, RES_PNCPUS_ATTR_ID, "Maximum number of processors used by any single process", true, 0),
new StringAttributeDefinition(RES_PPF_ATTR_ID, RES_PPF_ATTR_ID, "Maximum number of file system blocks that can be used by a single process", true, ""),
new IntegerAttributeDefinition(RES_PROCS_ATTR_ID, RES_PROCS_ATTR_ID, "Maximum number of processes", true, 0),
new StringAttributeDefinition(RES_PSDS_ATTR_ID, RES_PSDS_ATTR_ID, "Maximum number of data blocks on the SDS (secondary data storage) for any process", true, ""),
new StringAttributeDefinition(RES_SDS_ATTR_ID, RES_SDS_ATTR_ID, "Maximum number of data blocks on the SDS (secondary data storage)", true, ""),
new StringAttributeDefinition(SHELL_PATH_LIST_ATTR_ID, SHELL_PATH_LIST_ATTR_ID, "", true, ""),
new StringAttributeDefinition(STAGEIN_ATTR_ID, STAGEIN_ATTR_ID, "", true, ""),
new StringAttributeDefinition(STAGEOUT_ATTR_ID, STAGEOUT_ATTR_ID, "", true, ""),
new StringAttributeDefinition(UMASK_ATTR_ID, UMASK_ATTR_ID, "", true, ""),
new StringAttributeDefinition(USER_LIST_ATTR_ID, USER_LIST_ATTR_ID, "", true, ""),
new StringAttributeDefinition(VARIABLE_LIST_ATTR_ID, VARIABLE_LIST_ATTR_ID, "", true, ""),
};
public static IAttributeDefinition<?,?,?>[] getDefaultAttributeDefinitions() {
return attrDefs;
}
}
/*
Resource_List.arch string System architecture
Resource_List.cput time Maximum, aggregate CPU time required by all processes
Resource_List.file size Maximum disk space requirements for any single file to be created
Resource_List.host string Name of requested host/node
Resource_List.mem size Maximum amount of physical memory (RAM)
Resource_List.mpiprocs int Number of MPI processes for this chunk
Resource_List.ncpus int Number of CPUs (processors)
Resource_List.nice int Requested job priority
Resource_List.nodes string Number and/or type of nodes
Resource_List.nodect int Number of chunks in resource request from selection directive, or number of vnodes requested from node specification
Resource_List.ompthreads int Number of OpenMP threads for this chunk.
Resource_List.pcput time Per-process maximum CPU time
Resource_List.pmem size Per-process maximum amount of physical memory
Resource_List.pvmem size Per-process maximum amount of virtual memory
Resource_List.resc string Single-node variable resource specification string
Resource_List.vmem size Maximum, aggregate amount of virtual memory used by all concurrent processes
Resource_List.walltime time Maximum amount of real time (wall-clock elapsed time)
Resource_List.mppe int The number of processing elements used by a single process
Resource_List.mppt time Maximum wallclock time used on the MPP.
Resource_List.pf size Maximum number of file system blocks that can be used by all process
Resource_List.pmppt time Maximum amount of wall clock time used on the MPP by a single process
Resource_List.pncpus int Maximum number of processors used by any single process
Resource_List.ppf size Maximum number of file system blocks that can be used by a single process
Resource_List.procs int Maximum number of processes
Resource_List.psds size Maximum number of data blocks on the SDS (secondary data storage) for any process
Resource_List.sds size Maximum number of data blocks on the SDS (secondary data storage)
*/