Implementing parallel search

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Implementing parallel search

Post by bob »

matthewlai wrote:
jdart wrote:Amazon gives you instances sized in terms of virtual cores, not physical cores. I think too hyperthreading is on by default so you are not necessarily getting the core count they specify.

AWS might be somewhat useful for testing. but generally even the cluster instances are not really high-performance, or designed for near-100% utilitization.

--Jon
For the bigger instance types, the definition of "core" is 1 hyper-thread on a Xeon E5-2670 v2.
http://aws.amazon.com/ec2/instance-types/
"Each vCPU is a hyperthread of an Intel Xeon core for M3, C3, R3, HS1, G2, and I2."

And if you look up that CPU, it's a 2.5GHz IvyBridge 10-core (20 hyper-threads), supporting a maximum 2S (2 sockets) configuration.

If you look at the biggest compute instance (c3.8xlarge), you get 32 vCPUs, which corresponds to 16 physical cores.

So if you get that, you'll only be sharing with at most 1 small neighbour with 4 cores. However, I suspect they give you the whole machine, and the reason they only give you 32 vCPUs is to maintain consistency with the previous generation instance, which is based on the first gen E5-2670, with only 8 cores and 16 threads.

With the previous generation instance (cc2.8xlarge), you get the entire machine.

The fact that they have hyper-threading enabled is inconsequential if you only spawn N/2 compute threads. The Linux scheduler is smart enough to spread them out to physical cores in that case.

I would say 2.5 GHz Ivy Bridge Xeons are fairly high-performance. Many people run them with near-100% utilization. What's wrong with that?
The danger is, however, that they DO schedule a user on the other 4 physical cores and he uses 8 threads. Now he will interfere with YOU since you now have 16 running processes and only 12 physical cores to run them.
matthewlai
Posts: 793
Joined: Sun Aug 03, 2014 4:48 am
Location: London, UK

Re: Implementing parallel search

Post by matthewlai »

bob wrote:
matthewlai wrote:
jdart wrote:Amazon gives you instances sized in terms of virtual cores, not physical cores. I think too hyperthreading is on by default so you are not necessarily getting the core count they specify.

AWS might be somewhat useful for testing. but generally even the cluster instances are not really high-performance, or designed for near-100% utilitization.

--Jon
For the bigger instance types, the definition of "core" is 1 hyper-thread on a Xeon E5-2670 v2.
http://aws.amazon.com/ec2/instance-types/
"Each vCPU is a hyperthread of an Intel Xeon core for M3, C3, R3, HS1, G2, and I2."

And if you look up that CPU, it's a 2.5GHz IvyBridge 10-core (20 hyper-threads), supporting a maximum 2S (2 sockets) configuration.

If you look at the biggest compute instance (c3.8xlarge), you get 32 vCPUs, which corresponds to 16 physical cores.

So if you get that, you'll only be sharing with at most 1 small neighbour with 4 cores. However, I suspect they give you the whole machine, and the reason they only give you 32 vCPUs is to maintain consistency with the previous generation instance, which is based on the first gen E5-2670, with only 8 cores and 16 threads.

With the previous generation instance (cc2.8xlarge), you get the entire machine.

The fact that they have hyper-threading enabled is inconsequential if you only spawn N/2 compute threads. The Linux scheduler is smart enough to spread them out to physical cores in that case.

I would say 2.5 GHz Ivy Bridge Xeons are fairly high-performance. Many people run them with near-100% utilization. What's wrong with that?
The danger is, however, that they DO schedule a user on the other 4 physical cores and he uses 8 threads. Now he will interfere with YOU since you now have 16 running processes and only 12 physical cores to run them.
That is true. I guess that makes the previous generation instance (which is still available) better, until they start offering 40 vCPU instances.
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Implementing parallel search

Post by jdart »

I tried a cluster compute instance a couple years back and got decent performance. Probably that was the previous generation.

But the last time I tried it, it was disappointing. If you really need high performance and continuous utilization, you need a dedicated instance, and you can lease those through Amazon and other vendors such as Rackspace, but they are very expensive, enough that leasing soon starts to be unattractive vs buying a box.

--Jon