net多线程服务器报运行错误,Encog DOTNET的3.3多线程错误

我得到什么似乎是一个Encog(3.X)线程/工作量错误...Encog DOTNET的3.3多线程错误

已在两台服务器上使用Encog CS 3.1,3.2和3.3 VS.NET 2015年,每个都带有双X5400系列4核/ 4线Xeon(8核/ 8线程系统),没有问题。一个有32Gb内存和另一个64Gb(虽然我实际上只看到一个繁忙的线程,但这是另一回事......)。

我最近尝试了完全相同的代码,编译(exe),并在双X7500系列8核心/ 16线程至强服务器上的VS IDE(16核心/ 32线程64Gb系统总数),我得到这个错误(与直接从GitHub上的Encog CS预编译DLL):

System.OverflowException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089Arithmetic operation resulted in an overflow. at Encog.Util.Concurrency.DetermineWorkload..ctor(Int32 threads, Int32 workloadSize)

at Encog.Neural.Networks.Training.Propagation.Propagation.Init()

at Encog.Neural.Networks.Training.Propagation.Propagation.CalculateGradients()

at Encog.Neural.Networks.Training.Propagation.Propagation.ProcessPureBatch()

at Encog.Neural.Networks.Training.Propagation.Propagation.Iteration()

at EncogConsole.modEncog.ElmanTypeA(Boolean boolErrorVerbose, Boolean boolTestOutput) in C:\Users\Administrator\Documents\Visual Studio 2015\Projects\NormalizedConsole_v4B\EncogConsole\modEncog.vb:line 126

at EncogConsole.modEncog.Main() in C:\Users\Administrator\Documents\Visual Studio 2015\Projects\NormalizedConsole_v4B\EncogConsole\modEncog.vb:line 35

at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)

at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading.ThreadHelper.ThreadStart()System.OverflowException: Arithmetic operation resulted in an overflow.

at Encog.Util.Concurrency.DetermineWorkload..ctor(Int32 threads, Int32 workloadSize)

at Encog.Neural.Networks.Training.Propagation.Propagation.Init()

at Encog.Neural.Networks.Training.Propagation.Propagation.CalculateGradients()

at Encog.Neural.Networks.Training.Propagation.Propagation.ProcessPureBatch()

at Encog.Neural.Networks.Training.Propagation.Propagation.Iteration()

at EncogConsole.modEncog.ElmanTypeA(Boolean boolErrorVerbose, Boolean boolTestOutput) in C:\Users\Administrator\Documents\Visual Studio 2015\Projects\NormalizedConsole_v4B\EncogConsole\modEncog.vb:line 126

at EncogConsole.modEncog.Main() in C:\Users\Administrator\Documents\Visual Studio 2015\Projects\NormalizedConsole_v4B\EncogConsole\modEncog.vb:line 35

at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)

at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading.ThreadHelper.ThreadStart() 0.31s

这里的事情是,代码是完全相同的,具有完全相同的数据集,等试过了对前两个X5400运行良好,不同的代码服务器(尽管似乎是一个单一的线程),仍然是同样的问题(在X7500服务器上)。所有的机器上运行W2K8R2用最新的补丁等

代码是用VB做,但在此之前,作为所述,工作得很好,但这种更高的线程数的服务器上。

是怎么回事?

2016-01-14

Molasar

+0

我只禁用一半通过BIOS,有效地使一个8芯/ 8线程系统和瞧芯和超线程,Encog来到生活中,这显然和正视使得这个Encog多线程的问题... –

+0

我感兴趣约ENCOG我自己,我还需要偷些时间来尝试它。根据我的经验与软件的多核开发的问题是在不可见或不显露本身由于定时或与少数核心和较小的高速缓存的处理器慢缓存竞争条件经常发现,但由于核心数量增长,竞赛状况显示出来的机会更高。 –

+0

听起来合理,尽管最慢的原始问题中提到的机器是双3GHz的×4芯(8个物理核心)@各为12Mb L2高速缓存,1333兆赫FSB和Encog运行良好。所有机器大部分时间都处于闲置状态。然而,最大的机器只有一半的内核被禁用,HT以及Encog运行良好... –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值