org.objectweb.proactive.core.process.pbs
Class PBSSubProcess

java.lang.Object
  extended byorg.objectweb.proactive.core.process.AbstractUniversalProcess
      extended byorg.objectweb.proactive.core.process.AbstractExternalProcess
          extended byorg.objectweb.proactive.core.process.AbstractExternalProcessDecorator
              extended byorg.objectweb.proactive.core.process.pbs.PBSSubProcess
All Implemented Interfaces:
ExternalProcess, ExternalProcessDecorator, java.io.Serializable, UniversalProcess

public class PBSSubProcess
extends AbstractExternalProcessDecorator

The PBSSubProcess class is able to start any class, of the ProActive library, on a cluster managed by PBS protocol. An instance of this class can be coupled for instance with RlLoginProcess or SSHProcess classes in order to log into the cluster's front end with rlogin or ssh and then to run a job with PBSBSubProcess.

For instance:

 ..............
 PBSSubProcess PBS = new PBSSubProcess(new SimpleExternalProcess("ls -lsa"));
 SSHProcess p = new SSHProcess(PBS, false);
 p.setHostname("cluster_front_end_name");
 p.startProcess();
 ...............
 
Anyway it is strongly advised to use XML Deployment files to run such processes

Since:
ProActive 2.0.1
Version:
1.0, 2004/09/20
Author:
ProActive Team
See Also:
Serialized Form

Nested Class Summary
 class PBSSubProcess.ParserMessageLogger
          Implementation of a RemoteProcessMessageLogger that look for the jobID of the launched job
 
Nested classes inherited from class org.objectweb.proactive.core.process.AbstractExternalProcessDecorator
AbstractExternalProcessDecorator.CompositeMessageLogger, AbstractExternalProcessDecorator.CompositeMessageSink
 
Nested classes inherited from class org.objectweb.proactive.core.process.AbstractExternalProcess
AbstractExternalProcess.NullMessageLogger, AbstractExternalProcess.ProcessInputHandler, AbstractExternalProcess.ProcessOutputHandler, AbstractExternalProcess.SimpleMessageSink, AbstractExternalProcess.StandardOutputMessageLogger
 
Field Summary
protected  java.lang.String bookingDuration
           
protected static java.lang.String DEFAULT_BOOKING_DURATION
           
protected static java.lang.String DEFAULT_HOSTS_NUMBER
           
protected static java.lang.String DEFAULT_PROCESSOR_NUMBER
           
static java.lang.String DEFAULT_QSUBPATH
           
protected  java.lang.String hostList
           
protected  java.lang.String hostNumber
           
protected  java.lang.String interactive
           
protected  int jobID
           
protected  java.lang.String outputFile
           
protected  java.lang.String processorPerNode
           
protected  java.lang.String queueName
           
protected  java.lang.String scriptLocation
           
 
Fields inherited from class org.objectweb.proactive.core.process.AbstractExternalProcessDecorator
targetProcess
 
Fields inherited from class org.objectweb.proactive.core.process.AbstractExternalProcess
clogger, closeStream, errorMessageLogger, externalProcess, FILE_TRANSFER_DEFAULT_PROTOCOL, fileTransferLogger, inputMessageLogger, IS_WINDOWS_SYSTEM, NO_COMPOSITION, outputMessageSink
 
Fields inherited from class org.objectweb.proactive.core.process.AbstractUniversalProcess
certificateLocation, command, command_path, DEFAULT_HOSTNAME, DEFAULT_USERNAME, environment, hostname, isFinished, isStarted, LOCALHOST, privateKeyLocation, securityFile, username
 
Fields inherited from interface org.objectweb.proactive.core.process.ExternalProcessDecorator
APPEND_TO_COMMAND_COMPOSITION, COPY_FILE_AND_APPEND_COMMAND, GIVE_COMMAND_AS_PARAMETER, SEND_TO_OUTPUT_STREAM_COMPOSITION
 
Fields inherited from interface org.objectweb.proactive.core.process.UniversalProcess
logger, UNKNOWN_NODE_NUMBER
 
Constructor Summary
PBSSubProcess()
           
PBSSubProcess(ExternalProcess targetProcess)
           
 
Method Summary
protected  java.lang.String buildCommand()
           
protected  java.lang.StringBuffer buildResourceString()
           
 UniversalProcess getFinalProcess()
          Returns the last process of the chain
 java.lang.String getHostList()
          Returns the hostList value of this process.
 java.lang.String getHostsNumber()
          Returns the number of hosts requested when running the job
 int getNodeNumber()
          Returns the number of nodes targeted
 java.lang.String getProcessId()
          Returns the id of the process
 java.lang.String getProcessorPerNodeNumber()
          Returns the number of processor per node requested when running the job
protected  java.lang.String internalBuildCommand()
           
protected  void internalStartProcess(java.lang.String commandToExecute)
           
protected  java.lang.String parseHostname(java.lang.String message)
          return the list of the hostnames on which the job is running the message should be in the form : host1/processor ... hostn/processor
 void setBookingDuration(java.lang.String d)
          Set the booking duration of the cluster's nodes.
 void setErrorMessageLogger(RemoteProcessMessageLogger errorMessageLogger)
          sets the RemoteProcessMessageLogger handling the error stream of the process
 void setHostList(java.lang.String hostList)
          Sets the value of the hostList parameter with the given value Not yet included in the oar command
 void setHostsNumber(java.lang.String nodeNumber)
          Sets the number of nodes requested when running the job
 void setInteractive(java.lang.String interactive)
          Allows to launch this PBSubProcess with -I (interactive option)
 void setOutputFile(java.lang.String string)
          Set the output file to be passed to pbs using the -o option
 void setOutputMessageSink(MessageSink outputMessageSink)
          sets the MessageSink handling the output stream of the process
 void setProcessorPerNodeNumber(java.lang.String processorPerNode)
          Sets the number of processor per node requested when running the job
 void setQueueName(java.lang.String queueName)
          Sets the value of the queue where the job will be launched.
 void setScriptLocation(java.lang.String location)
          Sets the location of the script on the remote host
 
Methods inherited from class org.objectweb.proactive.core.process.AbstractExternalProcessDecorator
getCompositionType, getTargetProcess, handleCopyFile, handleOutput, setCompositionType, setTargetProcess, toString
 
Methods inherited from class org.objectweb.proactive.core.process.AbstractExternalProcess
buildEnvironmentCommand, buildUnixEnvironmentCommand, buildWindowsEnvironmentCommand, closeStream, getErrorMessageLogger, getFileTransferDefaultCopyProtocol, getFileTransferWorkShopDeploy, getFileTransferWorkShopRetrieve, getInputMessageLogger, getOutputMessageSink, handleError, handleInput, handleProcess, internalFileTransferDefaultProtocol, internalStartFileTransfer, internalStopProcess, internalWaitFor, setInputMessageLogger
 
Methods inherited from class org.objectweb.proactive.core.process.AbstractUniversalProcess
checkStarted, getCommand, getCommandPath, getEnvironment, getHostname, getUsername, isFinished, isHierarchical, isStarted, pushProcessAttributes, setCommandPath, setEnvironment, setHostname, setUsername, startFileTransfer, startProcess, stopProcess, toString, waitFor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.objectweb.proactive.core.process.ExternalProcess
closeStream, getErrorMessageLogger, getFileTransferWorkShopDeploy, getFileTransferWorkShopRetrieve, getInputMessageLogger, getOutputMessageSink, setInputMessageLogger
 
Methods inherited from interface org.objectweb.proactive.core.process.UniversalProcess
getCommand, getCommandPath, getEnvironment, getHostname, getUsername, isFinished, isHierarchical, isStarted, setCommandPath, setEnvironment, setHostname, setUsername, startFileTransfer, startProcess, stopProcess, waitFor
 

Field Detail

DEFAULT_QSUBPATH

public static final java.lang.String DEFAULT_QSUBPATH
See Also:
Constant Field Values

DEFAULT_HOSTS_NUMBER

protected static final java.lang.String DEFAULT_HOSTS_NUMBER
See Also:
Constant Field Values

DEFAULT_PROCESSOR_NUMBER

protected static final java.lang.String DEFAULT_PROCESSOR_NUMBER
See Also:
Constant Field Values

DEFAULT_BOOKING_DURATION

protected static final java.lang.String DEFAULT_BOOKING_DURATION
See Also:
Constant Field Values

hostNumber

protected java.lang.String hostNumber

processorPerNode

protected java.lang.String processorPerNode

bookingDuration

protected java.lang.String bookingDuration

interactive

protected java.lang.String interactive

outputFile

protected java.lang.String outputFile

jobID

protected int jobID

queueName

protected java.lang.String queueName

scriptLocation

protected java.lang.String scriptLocation

hostList

protected java.lang.String hostList
Constructor Detail

PBSSubProcess

public PBSSubProcess()

PBSSubProcess

public PBSSubProcess(ExternalProcess targetProcess)
Method Detail

setErrorMessageLogger

public void setErrorMessageLogger(RemoteProcessMessageLogger errorMessageLogger)
Description copied from interface: ExternalProcess
sets the RemoteProcessMessageLogger handling the error stream of the process

Specified by:
setErrorMessageLogger in interface ExternalProcess
Overrides:
setErrorMessageLogger in class AbstractExternalProcess

setOutputMessageSink

public void setOutputMessageSink(MessageSink outputMessageSink)
Description copied from interface: ExternalProcess
sets the MessageSink handling the output stream of the process

Specified by:
setOutputMessageSink in interface ExternalProcess
Overrides:
setOutputMessageSink in class AbstractExternalProcess

getHostsNumber

public java.lang.String getHostsNumber()
Returns the number of hosts requested when running the job

Returns:
the number of nodes requested when running the job

setHostsNumber

public void setHostsNumber(java.lang.String nodeNumber)
Sets the number of nodes requested when running the job

Parameters:
nodeNumber -

getProcessId

public java.lang.String getProcessId()
Description copied from interface: UniversalProcess
Returns the id of the process

Returns:
the id of the process. This id is just the first letters of the process class, to be able to identify the sequence of processes used
See Also:
UniversalProcess.getProcessId()

getNodeNumber

public int getNodeNumber()
Description copied from interface: UniversalProcess
Returns the number of nodes targeted

Returns:
the number of nodes targeted. Represents the number of nodes expected to use when starting this process. If this number cannot be known, waiting for all available nodes for example, UNKNOWN_NODE_NUMBER is returned.
See Also:
UniversalProcess.getNodeNumber()

getFinalProcess

public UniversalProcess getFinalProcess()
Description copied from interface: UniversalProcess
Returns the last process of the chain

Returns:
the last process of the chain
See Also:
UniversalProcess.getFinalProcess()

setInteractive

public void setInteractive(java.lang.String interactive)
Allows to launch this PBSubProcess with -I (interactive option)

Parameters:
interactive - true for -I option false otherwise

setScriptLocation

public void setScriptLocation(java.lang.String location)
Sets the location of the script on the remote host

Parameters:
location -

setOutputFile

public void setOutputFile(java.lang.String string)
Set the output file to be passed to pbs using the -o option

Parameters:
string -

setBookingDuration

public void setBookingDuration(java.lang.String d)
Set the booking duration of the cluster's nodes. The default is 00:01:00

Parameters:
d - duration

getProcessorPerNodeNumber

public java.lang.String getProcessorPerNodeNumber()
Returns the number of processor per node requested when running the job


setProcessorPerNodeNumber

public void setProcessorPerNodeNumber(java.lang.String processorPerNode)
Sets the number of processor per node requested when running the job

Parameters:
processorPerNode - processor per node

setQueueName

public void setQueueName(java.lang.String queueName)
Sets the value of the queue where the job will be launched. The default is 'normal'

Parameters:
queueName -

setHostList

public void setHostList(java.lang.String hostList)
Sets the value of the hostList parameter with the given value Not yet included in the oar command

Parameters:
hostList -

getHostList

public java.lang.String getHostList()
Returns the hostList value of this process.

Returns:
String

parseHostname

protected java.lang.String parseHostname(java.lang.String message)
return the list of the hostnames on which the job is running the message should be in the form : host1/processor ... hostn/processor

Parameters:
message -
Returns:
the hostname

internalBuildCommand

protected java.lang.String internalBuildCommand()
Specified by:
internalBuildCommand in class AbstractExternalProcessDecorator

internalStartProcess

protected void internalStartProcess(java.lang.String commandToExecute)
Overrides:
internalStartProcess in class AbstractExternalProcessDecorator

buildCommand

protected java.lang.String buildCommand()
Overrides:
buildCommand in class AbstractExternalProcessDecorator

buildResourceString

protected java.lang.StringBuffer buildResourceString()


Copyright 2001-2005 INRIA All Rights Reserved.