Tony
Tony

Reputation: 2929

Submitting R jobs using PBS

I am submitting a job using qsub that runs parallelized R. My intention is to have R programme running on 4 different cores rather than 8 cores. Here are some of my settings in PBS file:

    #PBS -l nodes=1:ppn=4

....
time  R --no-save < program1.R > program1.log

I am issuing the command ta job_id and I'm seeing that 4 cores are listed. However, the job occupies a large amount of memory(31944900k used vs 32949628k total). If I were to use 8 cores, the jobs got hang due to memory limitation.

top - 21:03:53 up 77 days, 11:54,  0 users,  load average: 3.99, 3.75, 3.37
Tasks: 207 total,   5 running, 202 sleeping,   0 stopped,   0 zombie
Cpu(s): 30.4%us,  1.6%sy,  0.0%ni, 66.8%id,  0.0%wa,  0.0%hi,  1.2%si,  0.0%st
Mem:  32949628k total, 31944900k used,  1004728k free,   269812k buffers
Swap:  2097136k total,     8360k used,  2088776k free,  6030856k cached

Here is a snapshot when issuing command ta job_id

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1794 x     25   0 6247m 6.0g 1780 R 99.2 19.1   8:14.37 R
 1795 x     25   0 6332m 6.1g 1780 R 99.2 19.4   8:14.37 R
 1796 x     25   0 6242m 6.0g 1784 R 99.2 19.1   8:14.37 R
 1797 x     25   0 6322m 6.1g 1780 R 99.2 19.4   8:14.33 R
 1714 x     18   0 65932 1504 1248 S  0.0  0.0   0:00.00 bash
 1761 x     18   0 63840 1244 1052 S  0.0  0.0   0:00.00 20016.hpc
 1783 x     18   0  133m 7096 1128 S  0.0  0.0   0:00.00 python
 1786 x     18   0  137m  46m 2688 S  0.0  0.1   0:02.06 R

How can I prevent other users from using the other 4 cores? I like to mask somehow that my job is using 8 cores with 4 cores idling.

Could anyone kindly help me out on this? Can this be solved using pbs?

Many Thanks

Upvotes: 1

Views: 713

Answers (2)

Dr_bitz
Dr_bitz

Reputation: 116

Why not do the following -

ask PBS for ppn=4, additionally, ask for all the memory on the node, i e

#PBS -l nodes=1:ppn=4 -l mem=31944900k 

This might not be possible on your setup.

I am not sure how R is parallelized, but if it is OPENMP you could definitely ask for 8 cores but set OMP_NUM_THREADS to 4

Upvotes: 0

Gregg Lind
Gregg Lind

Reputation: 21302

"How can I prevent other users from using the other 4 cores? I like to mask somehow that my job is using 8 cores with 4 cores idling."

Maybe a simple way around it is to send a 'sleep' job on the other 4? Seems hackish though! (ans warning, my PBS is rusty!)

Upvotes: 1

Related Questions