rtsang's picture

It take over an hour on a 2 cores to get to error lower than .01. Then I was using an 8 cores server to run a NN with 5 hidden layers and each with 50 size, it was much faster. However when monitor the task manager, it shows only 55-60% processing power was used. I suspect there could be some rooms for improvements.

jeffheaton's picture

It will depend on quite a few things. The bigger the training set, the more than Encog can push out to the other cores. At the end of each training iteration I have to pull all of the cores back to a single thread to synchronize. (at least until I find a way around that) So the smaller the training set, the more often this "resync" needs to occur. We are working on ways of minimzing that.

Not sure if you are using 2.3 or 2.4. But 2.4 is pretty stable at this point, almost ready for formal beta. 2.4 increases performance several fold.

rtsang's picture

Thanks for the prompt reply. Just trying to give more information on that, I was using around 5 inputs with around 1k row of dataset and 2.3 was used for the experiment.

jeffheaton's picture

Hope to address even more scalability in the next version of Encog. What I am really working towards is a smart way to get the threads to synchronize independently. Stopping them all to do it, works, and runs much better than single threaded. But I can do more.


Copyright 2005 - 2012 by Heaton Research, Inc.. Heaton Research™ and Encog™ are trademarks of Heaton Research. Click here for copyright, license and trademark information.