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

Re: [HTCondor-users] How can I influence the match-making using customized factors?



Hmmm... re the below, maybe the below helps.

You could start by making three different types of slot(s) on your machines.

So on each node, for instance, you could have eight static slots to handle cpu intensive jobs, two static slots for gpu intensive jobs, two IO intensive slots, etc. Your condor_config.local file would have the following (this is off the top of my head, I didn't test this, so please just consider it an example):
  STARTD_EXPRS = $(STARTD_EXPRS) \
           WantCpuIntensive WantGpuIntensive WantIoIntensive
  SLOT1_WantCpuIntensive = True
  SLOT2_WantCpuIntensive = True
  SLOT3_WantCpuIntensive = True
  SLOT4_WantCpuIntensive = True
  SLOT5_WantCpuIntensive = True
  SLOT6_WantCpuIntensive = True
  SLOT7_WantCpuIntensive = True
  SLOT8_WantCpuIntensive = True
  SLOT9_WantGpuIntensive = True
  SLOT10_WantGpuIntensive = True
  SLOT11_WantIoIntensive = True
  SLOT12_WantIoIntensive = True

And then you mentioned three float vals in your job to stand for cpu, gpu, and io intensity .... then all you'd do is put a rank expression in your job classads (or a negotiator_[pre|post]_rank expression in your central manager config) so that your job submit file looks something like:

  executable = foo
  +CpuIntensity = 90
  +GpuIntensity = 0
  +IOIntensity = 10
  rank = (WantCpuIntensive =?=True) * CpuIntensity + \
         (WantGpuIntensive =?=True) * GpuIntensity + \
         (WantIOIntensive =?=True) * IOIntensity +
  queue

regards,
Todd

On 11/10/2012 8:16 PM, 钱晓明 wrote:
I have a cluster of 32 nodes connected by gigabit ethernet, each one has
one 8 cores i7 CPU and two Tesla C2050 GPU card. My jobs are in 3 types:
a. IO intensive
b. CPU intensive
c. GPU intensive
Most of them have hundreds of input files and can be done in one day,
except GPU jobs may be take two or three days.
I think if I can combine these jobs according their types to execute in
one machine, it would be more efficient. For example, if a job is CPU
intensive(only one thread), it would be better to dispatch it to a
machine with most IO intensive and GPU intensive jobs.
I can assign 3 float values to each job to stand for IO, CPU and GPU
intensity, and use Condor to keep balance in cluster nodes. Is this idea
meaningful? If so, can Condor do this?
thanks!
Kyle Qian






_______________________________________________
HTCondor-users mailing list
To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
subject: Unsubscribe
You can also unsubscribe by visiting
https://lists.cs.wisc.edu/mailman/listinfo/htcondor-users

The archives can be found at:
https://lists.cs.wisc.edu/archive/htcondor-users/



--
Todd Tannenbaum <tannenba@xxxxxxxxxxx> University of Wisconsin-Madison
Center for High Throughput Computing   Department of Computer Sciences
HTCondor Technical Lead                1210 W. Dayton St. Rm #4257
Phone: (608) 263-7132                  Madison, WI 53706-1685