*********************************************************** This is some brief info on how to use the qsub command to submit jobs to the NQS. NQS is the network queueing system. For more detailed help, refer to the qsub man page. This help file is UNL written. *********************************************************** OVERVIEW qsub is the command used to submit scripts to the Network Queueing System. It works on scripts, not executable files. You can however use qsub to create a script. The most important thing to remember is that jobs assume they start in your home directory, just as a newly logged in session does. If your files are in a subdirectory, you must explicitly cd there in the commands given to qsub. There are various switches you may need if your job is going to take a large amount of CPU time or memory. Among them: -lM # where # is the total amount of memory your job may need. -lT # where # is the total amount of CPU time your job will need. These can be put either following the qsub command, or in comments embedded in a script. To put it in a script just put '#QSUB -t 1000' for instance. For memory limits, you can use Kb, Kw, Mb, Mw, etc, for Kilo byte/word and Mega byte/word. It helps over typing all those zeros. So a limit could be -lM 100Mb to get 100 megabytes of memory. Try to get close to the right number for both memory and CPU time. The CPU time will affect what queue it goes into. The memory will affect both what queue it goes into, and what other jobs may be allowed to run, given the amount of memory you've requested. Submitting A Job from stdin To put a job in the NQS without creating a separate script file, just type qsub then your commands (on separate lines), terminated by a ctrl-d. For Example: qsub -eo pwd ls date ^d in this case, the -eo option sends all the output to one file. The job number of the submission will be printed. Output for the commands will be in a file called STDIN.oNNNN where NNNN is the request number that qsub reports. -----Submitting a Job from a script.----- To put a job in the NQS that is an existing script file, just use qsub with the name of the script. For example: Example submitted from a script Assume the file myscript contains (between the dashes): --- #This job doesn't take much memory, but a bunch of CPU time... #QSUB -lT 10000 -lM 50 #QSUB -eo cd testdir ja date ./go-my-big-job date ja -cst --- Then the command: qsub myscript this would submit the shell script myscript to the NQS. Output from this job will be in a file called myscript.oNNNN where NNNN is the request number that qsub reports. To check on the status of your jobs, use 'qstat', or 'qstat -b', or 'qstat -a'. >1. what is the limit of time and memory for small-regular and small-short. The _short queues are 3600 seconds (1 hour) CPU time the _regular queues are 14400 seconds (4 hours) CPU time the _long queues are unlimited CPU time. The small_ queues are 8MW (megawords, or 64MB) The medium_ queues are 32MW (256MB) The large_ queues are 100MW (800MB) There is also a dedicated queue for 120MW (960MB) jobs. Realize though that we have 1GB (1024MB) RAM, so things will slow down... Also, in the dedicated queue only, you'd have to tell me to run it. By default, jobs can be queued, but not run in that queue. >2. If I submmited a job into the queue, what I can do to kill this job. if it has NOT started running, you can do a 'qdel requestid' where requestid shows up in a qstat -a listing. If it IS running, then you need to do a 'qdel -k requestid' >3. Why isn't my job running. If you don't see your job running in the queues, use the 'qstat -a' command to see what is happening. The last 3 characters will be either Rnn (where nn is an integer) Qxy (where x and y are characters). If it is Rnn, then it IS running, with 'nn' processes (typically 4, but may be greater). If it is 'Qxy' then it is queued, and xy explain why. They are explained in the qstat man page. Basically: cg The complex group run limit was reached. cm The complex memory limit was reached. cr The complex run limit was reached. cu The complex user run limit was reached. gg The global group run limit was reached. gm The global memory limit was reached. gr The global run limit was reached. gu The global user run limit was reached. qg The queue group run limit was reached. qm The queue memory limit was reached. qq The queue quickfile limit was reached. qr The queue run limit was reached. qs The queue in which the request resides was stopped. qu The queue user run limit was reached. ?? The current status of the request is unknown.