AIT Alpha Farm: fcmd details

      fcmd issues a single command to the farm. E.g. fcmd a.out 

You can run multiple fcmds from separate windows, or put fcmd in the background
and run several commands from one window.

1)  If fcmd is issued from an AFS directory (e.g. your home directory, or
   an AFS locker or any subdirectory thereof), it runs in that directory.
2)  If fcmd is issued from a non-AFS directory, fcmd will print a warning 
   and run from your home directory. 
3)  fcmd acts like an interactive command except that it waits until your 
   commands are complete before printing the output. 
4)  fcmd runs the commands on a machine which has only 40 Mbytes of usable
   memory free, so use DQSwriter for commands which require more memory.
   (You can also use fmcd_M and fcmd_T to access FARM-M and FARM_T queues)
5)  fmcd runs between 40-50% the speed of the isua machines, but you can run for
   up to 24 hours rather than 5 minutes, as long as your tickets don't expire. 
   (See Note #2 below.)

1) add farm   
     To get access to DQS commands. This is only needed once per login.

2) Place fcmd in front of any command which is valid on a Project Vincent
   Alpha machine.

1) Your PATH variable is searched and any lockers found are added
  on the farm machine before your commands run.

2) fcmd will fail if your tickets expire before fcmd completes.
  You can get new tickets with the relogin command, and longer
  tickets when using the -l option on relogin.

3) fcmd consumes processes.   I suggest submitting
   no more than 5 fcmds at once (see below on how to do this.)
   If you need to use more, the easiest way is to use DQSwriter
   To run > 5 fcmds at once, you will
   need to raise the user process limit from the default 64.
   I run with a limit of 256.  Root can change this limit on any
   Alpha workstation by using dxkerneltuner, or by the command
   /sbin/sysconfigdb -m -f more_procs
   where the file more_procs consists of the two lines:

cd $HOME/farm_runs
add farm nag my_locker
fcmd a.out < input1 > output1 &
fcmd a.out < input2 > output2 &
fcmd a.out < input3 > output3 &

Killing a job:

To delete a job started by fcmd,  delete the fcmd command
by using kill pid where pid is the Process ID given by

and you must issue qdel jobid

where jobid is the number given by qstat under the Request 
column for your job.