给开发者的问题--在优化过程中使用所有的计算核心

 

为什么在优化过程中,metatrader 5(最新版本)没有使用所有可用的计算核心? 我把执行计算的核心标为绿色,其余的都是闲置的。

 
Boris Egorov:

为什么在优化过程中,Metatrader 5(最新版本)没有使用所有可用的计算核心? 我用绿色标记了执行计算的核心,而其他的是闲置的。

他们并没有闲着,他们已经完成了计算,正在等待其他通道的完成。

 
Ihor Herasko:

他们并没有闲着,而是已经完成了计算,正在等待其他通道的完成。

正是如此,他们还在等什么呢,其他的通过可以在其他核心上完成,而且似乎与此有关,我的网络上有代理,当它说授权但计算没有完成时,它就是不进一步计算的。

 
Boris Egorov:

正是如此,他们还在等什么,当其他核心上可以进行其他传递时,似乎与此有关,我的网络上有代理,当它说授权但计算没有完成时,它就是不计入

 
我在网上看到了QuickCPU。我所下载的网站是这样说的。"许多程序甚至不知道核心的存在。QuickCPU利用它们来工作"。试试吧,看看是否有帮助。我从https://howdyho.net/ 下载的-- 查一查--那里的程序不多--有很多有用的东西。
 
Boris Egorov:

确切地说,当其他核心可以进行其他传递时,他们还在等待什么,而且似乎与这种挂起有关,我的网络中有代理,因此当它写下授权但计算未完成时,它根本没有进一步计算。

不幸的是,这就是MT5中的工作方式:数据包被生成和分发,但当它们在某些代理中完成时,它们没有被重新分发。关于这一点,我已经写了很多。遗憾的是,核心部分被闲置了。

开发人员不认为这是一个优先事项。他们的工作电脑上似乎有很多核心,而且速度很快,这就把问题扯平了。此外,他们主要从事编程工作,而不是像我们一样从事优化工作。

 

>这就是MT5分配工作包的工作方式。工作包产生、分配,但当一些代理完成时,它们不会被重新分配

而这是一个错误...我今天停电了,分配给网络代理的数据包仍然下落不明 ....

 
Boris Egorov:

>这就是MT5分配工作包的工作方式。工作包产生、分配,但当一些代理完成时,它们不会被重新分配

而这是一个错误...我今天停电了,分发给代理的工作包没有计算出来 ....

找到两个关于代理的帖子 -#375#379

Новая версия платформы MetaTrader 5 build 2190
Новая версия платформы MetaTrader 5 build 2190
  • 2019.11.22
  • www.mql5.com
В пятницу 18 октября 2019 года будет выпущена обновленная версия платформы MetaTrader 5...
 

关于只使用物理核心 -

关于交易、自动交易系统和策略测试的论坛

Metatester 5代理管理器策略测试器没有看到处理器线程。

Renat Fatkhullin, 2019.11.27 06:12

由于坦率地说,太多的代理缺乏内存,而且超交易核心的计算速度下降,我们决定在cludes中工作时,只限制自己使用物理核心。

目前,有非常昂贵的任务在污泥中运行,当有太多的代理时,绝大多数的污泥参与者根本没有足够的内存。例如,每个代理2gb和16个代理已经需要至少32gb的内存,尽管通常有8-16gb可用。

结果,很多通行证被搞砸了,浪费了网络和代理的负载。最重要的是,由于等待结果和重新启动任务,它减慢了计算速度。

长期以来,我们一直在评估代理在发布任务之前的近似资源充足性,其中最有效的是只在云中的物理核心上工作。

在本地,你可以使用所有的核心,因为你可以很容易地管理禁用它们。

关于交易、自动交易系统和交易策略测试的论坛

Metatester 5代理管理器策略测试器没有看到CPU线程。

Renat Fatkhullin, 2019.11.27 07:18

发布后,我们正在对测试器及其代理的资源管理进行彻底的改革。

这将主要影响当地代理人的效率。


 

我没有这样的问题,它可以看到线程,而且不限于物理核心......图中显示了处理器的参数和内存大小...

关于内存,我完全不明白--交换是为了什么?风从来没有被限制在 RAM的数量 上 ....所以我不清楚问题出在哪里。

>你知道除了SMT2,还有SMT4,SMT8--当一个物理核心可以同时做4或8个线程,而不是像英特尔那样的2个线程?而这是全球高性能计算的一个趋势,这些处理器正在运行地球上最强大的超级计算机。我不建议用Metatrader做更有经验的人做的事。


问题是不同的,它是在图片中呈现的

例如,有20个核心,19个已经完成了计算,处于空闲状态,一个需要另外10个计算,为什么不在空闲的核心/线程上做这些计算呢--所以解决方案是不给每个核心同时做一堆工作,而只给一个工作,原理很简单:一个线程--一个工作,完成后得到下一个工作......

 
Boris Egorov:

我没有这样的问题,它可以看到线程,而且不限于物理核心......图中显示了处理器的参数和内存大小...

关于内存,我完全不明白--交换是为了什么?风从来没有被限制在 RAM的数量 上 ....所以我不清楚问题出在哪里。

>你知道除了SMT2,还有SMT4,SMT8--当一个物理核心可以同时做4或8个线程,而不是像英特尔那样做2个线程?而这是全球高性能计算的一个趋势,这些处理器正在运行地球上最强大的超级计算机。我不建议用Metatrader做更有经验的人做的事。


问题是不同的,它是在图片中呈现的

问题是不同的,它呈现在图片中:例如,你有20个核心,19个已经完成计算,处于空闲状态,其中一个还需要10个计算,为什么他们不应该使用空闲的核心/线程,而不是给每个核心一个巨大的作业堆,只是一个作业,原理很简单:一个线程 - 一个作业,完成后你得到下一个作业...

我同意你的观点,这是一个明智的想法。虽然我现在不使用优化,但当我使用时,我总是想知道为什么所有的线程都完成了优化,而有一个线程又得到了好几遍。是不是可以重新分配剩余的任务...