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

Re: [Condor-users] Is VM_MAX_NUMBER a redundant macro?



Jaime Frey wrote:
>
> VM_MAX_NUMBER is working properly, though its behavior is a little odd.
> If its value isn't a positive integer, then there's no limit on the number of VMs
> (other than the number of slots). No error is written to the log in the event of
> an invalid value. The number of additional VMs that can be started is advertised
> as 'VM_AvailNum' in the machine ad. In the unlimited case, the value is set to 10000. 

Jaime,

I disagree with your explanation in as far as this is documented.

In the condor_config file it explained like this:

//snippet ================
## In default, the number of possible virtual machines is same as
## NUM_CPUS.
## Since too many virtual machines can cause the system to be too slow
## and lead to unexpected problems, limit the number of running
## virtual machines on this machine with
//end snippet ================


Also in other condor documentation I can find:
//===========
   VM_MAX_NUMBER
      An integer limit on the number of executing virtual machines.
      When not defined, the default value is the same NUM_CPUS. 
//===========



However, in practice I get following situations:

1) If I don't set   VM_MAX_NUMBER  at all in the config file (relying on the default),
    then:
   => condor_config_val.exe  reports that VM_MAX_NUMBER macro is not defined
   => In the machine's adds: VM_AvailNum = 10000

2) If I EXPLICITY set in the condor_config file:  VM_MAX_NUMBER = $(NUM_CPUS)

   => condor_config_val.exe  reports that VM_MAX_NUMBER macro is not defined
   => In the machine's adds: VM_AvailNum = 10000

3) If I set in the condor_config file:  VM_MAX_NUMBER = 2

    => condor_config_val.exe  reports that VM_MAX_NUMBER macro equals 2
    => In the machine's adds: VM_AvailNum = 2


If this is not a bug, then at the least the documentation is wrong!

The value of VM_MAX_NUMBER never defaults to the number of CPUs in the machine,
unless this macro is explicitly set so with a hardcoded integer (like my third example).

I assume this inconsistency with the documentation easily leads to buggy situations,
as I relied on a default behaviour (= number of CPUs), but instead that defaults to 10000 !!!!


I think the original idea to let it default to the number of CPUs is very neat, but somehow
the code does not do this.


Regards,
Rob.