[Clusterusers] request for CPU time
Wm. Josiah Erikson
wjerikson at hampshire.edu
Fri Jun 28 09:10:00 EDT 2013
Yes, you are probably correct. I will look forward to thinking about
this with others at the meeting today. I could get up and describe the
mechanisms we have available to us, and list them on the whiteboard, and
we could brainstorm about the best way to do it right to be most fair to
all, given the mechanisms that we have, which are many, actually. I will
list them here. Why not? Thinking out loud here, in preparation for the
meeting. Consider this a brain-dump and don't look for answers here,
just thoughts:
1. We can limit the number of concurrent jobs of a particular executable
that can be launched at once on the same node
2. We can limit the number of concurrent jobs of a particular executable
that can be launched at once cluster-wide
3. We can craft tags that people can dispatch with that are only
provided by certain nodes (tom's got one. It's called "tom". We can do
whatever we want with it. We also have "slow" and "fast" tags that were
kindof for this purpose. "Slow" was for long, slow jobs and "fast" was
for quick-turnaround jobs. Perhaps tom could be dispatching with
"slow,linux", Jaime could be dispatching with "fast,linux", and bassam
could be dispatching with "blender" and it would do what we want).
Certain nodes are really good for some things and not so good for
others. For instance, the high-core-count nodes rock really hard on many
blender jobs (though not all, unfortunately), and do really poorly for
Jaime's stuff, and are mediocre for Tom's stuff, even though it looks
like it's using up all the CPU available (but look at the jobs that
finished first - none of them are on rack 4). The problem is that Tom's
stuff does badly on rack 4, but uses all the available CPU to no
advantage, while Jaime's stuff does badly on rack 4, but leaves slots
and CPU open for other jobs while doing so... so the way to use the
cluster to full advantage is clear to me while everybody wants CPU time,
but we don't want to leave ourselves in a situation where the cluster is
empty and somebody comes along and wants to render and doesn't get to
use the whole cluster. I think we can get this right, possibly just with
the right combination of tags and limits.
4. We can play with priorities. Jobs can be dispatched with different
priorities that will determine whether they will get a slot
preferentially over another job when they both want it. This still won't
fix the fact that once a job gets a slot, it holds on to it until it
finishes... I don't think we can or want to fix that, exactly. There
used to be some pre-empt functionality, but I think we don't want to do
that (certain jobs would have the ability to actually bump others off),
since when that happens to Lee's and Tom's long-running jobs, they lose
work and then we're wasting CPU time.
5. There are crews and also time-scheduling, but I'm not sure that they
will do anything useful for us. I think NIMBYing machines that we don't
want jobs dispatched to is easy enough, now that it works from the
tractor monitor.
-Josiah
On 6/28/13 8:00 AM, Jaime Davila wrote:
> HMMM. Interesting. One consequence of that is that the system ends up
> penalizing tasks that have been parallelized, since those are going to
> be seen by tractor as a bunch of small tasks, as opposed to a single
> big one. I've spent several months turning the breve evaluation of a
> genetic population into something that spreads the evaluation of
> separate individuals across the cluster, and I'm planning on writing
> up how I did it. I would be glad to share whatever I learned from that
> process with others, which will probably apply even outside of breve,
> if they want to parallelize.
>
> On 06/27/2013 02:23 PM, Wm. Josiah Erikson wrote:
>> The issue right now is that many of Tom's Digital Multiplier
>> processes seem to be taking around 9 days to finish, so once they've
>> grabbed a slot, they hold on to it for a very long time, which
>> effectively means that nobody else can use the cluster while they are
>> running, since we don't have any kicking-people-out algorithm, and
>> everybody else's jobs finish in more like 20 minutes.
>> The solution, of course, is to change the "tom" tag to only use every
>> other slot or something like that, or only run two processes per
>> machine or something... but then they'll take even longer to finish.
>> Discussing tomorrow at the meeting seems like a good plan.
>> -Josiah
>>
>>
>> On 6/27/13 2:19 PM, Lee Spector wrote:
>>> Hi Jaime,
>>>
>>> Fine with me personally but I'll check with my lab group to see what
>>> everyone's expected needs are. I'm also not sure exactly how to
>>> implement the idea if people do want to run some other things...
>>> maybe by having you use a subset of machines that everyone else
>>> excludes?
>>>
>>> -Lee
>>>
>>> On Jun 27, 2013, at 2:14 PM, Jaime Davila wrote:
>>>
>>>> Greetings everyone,
>>>>
>>>> I wanted to check to see if it was possible for me to grab some
>>>> more CPU cycles out of the cluster for a week or so. I just placed
>>>> a new algorithm on my account, and have it run it, but it's fairly
>>>> different from what I was doing before, and I would rather detect
>>>> quickly if I need to tweak or change things, as opposed to having
>>>> to wait a week to realize I need to make a 10 minute change.
>>>>
>>>> Last time that the system load diminished some, I noticed that my
>>>> processes run at their top speed if the number of CPUs loaded to
>>>> their maximum drops to about 75%, as opposed to the 97% where they
>>>> are now. Maybe things will be that way this time around, maybe not?
>>>> In either case, my grabbing more cpu cycles right now would be
>>>> extremely useful.
>>>>
>>>> Thoughts?
>>>>
>>>> Thanks a lot,
>>>>
>>>> Jaime
>>>>
>>>> --
>>>> ******************************************************
>>>> Jaime J. Dávila
>>>> Associate Professor of Computer Science
>>>> Hampshire College
>>>> jdavila at hampshire dot edu
>>>> http://helios.hampshire.edu/jdavila
>>>> *******************************************************
>>>>
>>>> _______________________________________________
>>>> Clusterusers mailing list
>>>> Clusterusers at lists.hampshire.edu
>>>> https://lists.hampshire.edu/mailman/listinfo/clusterusers
>>> --
>>> Lee Spector, Professor of Computer Science
>>> Cognitive Science, Hampshire College
>>> 893 West Street, Amherst, MA 01002-3359
>>> lspector at hampshire.edu, http://hampshire.edu/lspector/
>>> Phone: 413-559-5352, Fax: 413-559-5438
>>>
>>> _______________________________________________
>>> Clusterusers mailing list
>>> Clusterusers at lists.hampshire.edu
>>> https://lists.hampshire.edu/mailman/listinfo/clusterusers
>>
>
--
Wm. Josiah Erikson
Assistant Director of IT, Infrastructure Group
System Administrator, School of CS
Hampshire College
Amherst, MA 01002
(413) 559-6091
More information about the Clusterusers
mailing list