[torqueusers] Release of TORQUE 2.3.3

Josh Butikofer josh at clusterresources.com
Fri Aug 15 13:31:22 MDT 2008

Good question.

There is a subtle difference. The command pbsdsh uses tm_spawn() to launch the new process. The new 
pbs_track command uses a new TM function called tm_adopt(). This function allows a MOM to start 
watching a process started by something other than the MOM. Any process in the system can be added 
to the MOM's session table and it will then send signals to that session, track resource usage, etc. 
as if the job was "born" from the pbs_mom in the normal tm_spawn() way.

This is useful for some MPI libraries. For example, SGI MPT (one of the main motivators for 
pbs_track's introduction) needs to start the process that ultimately becomes the MPI task. It can't 
allow pbs_mom to fork()/exec() the process--tm_spawn() won't work in this case. (I'm not sure as to 
why this is the case...I'm not an expert on SGI MPT.) Using pbs_track, however, works because 
pbs_track registers its pid and session ID with the MOM (using tm_adopt()) and then directly exec's 
the executable which becomes the MPI task.

Hope that makes sense,

--Josh B.

Joshua Bernstein wrote:
>>   f - added new pbs_track command which may be used to launch an 
>> external process and a pbs_mom will
>>       then track the resource usage of that process and attach it to a 
>> specified job (experimental)
> How is this command different from pbsdsh? I know that pbsdsh needs to 
> be run from inside a TORQUE session, does this command just mimic pbsdsh 
> but allow one to launch a process from outside a job?
> Are there plans to support X forwarding with pbs_track, much like SGE's 
> qrsh command?
> -Joshua Bernstein
> Software Engineer
> Penguin Computing

More information about the torqueusers mailing list