I want to be able to set up memory requirements per job.
For instance: to run 5 jobs, for which I know each will need 4 GB memory. I have 16 GB RAM on the Ubuntu server and 16 GB swap. I want to avoid using the swap. Can I do something like:
qsub -l mem_required_for_my_job=4G job1
qsub -l mem_required_for_my_job=4G job2
qsub -l mem_required_for_my_job=4G job3
qsub -l mem_required_for_my_job=4G job4
qsub -l mem_required_for_my_job=4G job5
? The jobs will require 4 GB at some moment, but not in the beginning.
How to tell SGE what my requirements are? How to avoid scheduling 5 x 4 GB when only 16 GB available?
I read the user guide and tried s_vmem, h_vmem, mem_free, mem_used
. None of them is what I want. I do not want my jobs to get killed in the middle of the processing. I want them not to be scheduled, unless the maximum resources needed are available.
Can I do this?
Thank you all!