Hi Ashton,

On Sat, Sep 22, 2018 at 5:34 AM A <andrealp...@gmail.com> wrote:
> So I'm wondering if 20% is enough, or whether it should scale by the number 
> of single jobs I might be running at any one time. E.g. if I'm running 10 
> jobs that all use 20 gb of ram, and I suspend, should I need 200 gb of swap?


Perhaps I'm a bit clueless here, but maybe someone can correct me if I'm wrong.

I don't think swap space or a swap file is used like that.  If you
have 256 GB of memory and a 256 GB swap file (I don't suggest this
size...it just makes my math easier :-) ), then from the point of view
of the OS, it will appear there is 512 GB of memory.  So, this is
memory that is used while it is running...for reading in data, etc.

SLURM's ability to suspend jobs must be storing the state in a
location outside of this 512 GB.  So, you're not helping this by
allocating more swap.

What you are doing is perhaps allowing more jobs to run concurrently,
but I would caution against allocating more swap space.  After all,
disk read/write is much slower than memory.  If you can run 10 jobs
within 256 GB of memory but 20 jobs within 512 GB of (memory + swap
space), I think you should do some kind of test to see if it would be
faster to just let 10 jobs run.  Since disk I/O is slower, I doubt
you're going to get double the running time.

Personally, I still create swap space, but I agree with John that a
server with 256 GB of memory shouldn't need any swap at all.  With
what I run, if it uses more than the amount of memory that I have, I
tend to stop it and find another computer to run it.  If there isn't
one, I need to admit I can't do it.  Because once it exceeds the
amount of main memory, it will start thrashing and, thus, take a lot
of time to run.  i.e., a day versus a week or more...

On the other hand, we do have servers that double as desktops during
the day.  An alternative for you to consider is to only allocate 200
GB of memory to slurm, for example, leaving 56 GB for your own use.
Yes, this means that, at night, 56 GB of RAM is wasted, but during the
day, they can also continue running.  Of course, you should set aside
an amount that is enough for you...56 GB was chosen to make my math
easier as well.  :-)

If something I said here isn't quite correct, I'm happy to have
someone correct me...

Ray

Reply via email to