Encog
has multithreading support. But as far as I understand, it's good in paralleling at one processor with for example 8 cores. Will it work faster, if I'll buy motherboard with 4 sockets, and install there four Intel Xeon E5-4600
? Does anybody tried something similar? Please answer only if you really know, or really tried.
I think that this question is highly depends on what version of Encog do you using (Java
or .NET
or C++
), and how your own code is written.
As you can easily see, the .NET
version of Encog actively using the it's own IMultiThreadable
interface, and there are a lot of classes which are using Parallel
classes for the learning.
For Java the name of the interface is MultiThreadable
. There is no interface for C++
version, but the code still using the threadCount
parameter in object.c
file. As I can see, the Javascript version
isn't using any multithreading support in javascript
(can't say even if it has the multithreading support).
So I definetely can say that, YES, it will work faster with more cores at the machine being available (as it use the core classes which can get the advantages of your hardware), if you are using the right classes, for example (in C#
):
More about Multhithreading apply on Encog can be found here:
Applying Multithreading to Resilient Propagation and Backpropagation