[GE users] threaded jobs (no PE) and consumable memory
txema.heredia at upf.edu
Thu Jan 14 16:05:23 GMT 2010
> Am 14.01.2010 um 15:25 schrieb txema_heredia:
> > Thanks for your answers
> >> Hi,
> >> you might try to set an additional "-l h_stack=20M" (or whatever size
> >> you need), as some threaded applications allocate the whole stack
> >> space
> >> (which is in older versions of the SGE set equally to the h_vmem
> >> size -
> >> in newer versions it is left as "unlimited", therefore avoiding this
> >> problem).
> >> Hope it helps,
> >> Sabine
> > I have tried it alone (-l h_stack=4G), and the program runs OK. The
> > problem is that this attribute is not restrictive at all, so I have
> > used -l h_stack=50M, but the job is still able to use 4G without
> > receiving any termination signal (unlike if I use -l h_vmem=50M,
> > which aborts the job when exceeded).
> > If combined -l h_stack and -l h_vmem, h_vmem takes preference and
> > the job is killed as usual (the malloc error and segment violation
> > thing).
> You also tried it with different settings: -l
> h_stack=50M,h_vmem=4G ... ?
> -- Reuti
Thank you very much Sabine and Reuti, that worked! At first I didn't understood Sabine's answer, but combining both h_stack and h_vmem, it works. In fact, the crashing malloc is now asking for the h_stack memory amount.
I've tried h_stack=50M and it worked fine. On the other hand, h_stack=1G worked but really slow, and in the previous set of tests, without any memory-related option, I saw malloc is allocating ~20M.
So this arises a new question: Is there any way or best practice to determine how big my stack should be?
To unsubscribe from this discussion, e-mail: [users-unsubscribe at gridengine.sunsource.net].
More information about the gridengine-users