[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[HTCondor-users] getting/passing the SlotID



Hi All,

can a process get its own SlotID? Or is there a way to pass this information on to the executable as an argument? Of course, this wouldn't exist when the jobs is submitted (unlike $Process), but we don't actually need the arguments until the job is executed, at which point we know the SlotID.


Here is my use case:
I'd like to use a partitionable slot with CPU affinity. As far as I know HTcondor has no support for this directly. My partitions are very simple, my jobs can take either 4 or 8 cores out of a maximum of 8, so that there are at most two jobs running at the same time. Memory is split up similarly.

The reason I need affinity is that my 8 cores are sitting in 2 quad core CPUs, and I'd like to lock the jobs to the CPUs. This improves timing accuracy.

So I know that the SlotID is either 1.1 or 1.2, because it is a dynamic slot. The executable that I use with condor is just a script, it does some processing then starts the binary. If I could get the slot, then I could use taskset to enforce affinity.

I know of a solution that is not using partitionable slots, but instead doubles the resources and defines a whole machine slot, but I'd like to use the nice drain/defrag feature as well.
Any help is much appreciated.
Imre

--
http://imre.polik.net