给开发者的问题--在优化过程中使用所有的计算核心 - 页 8 1234567891011 新评论 Aliaksandr Hryshyn 2020.03.27 07:43 #71 有趣的方法。我也将不得不制作我自己的 "自行车"。任务大致如下。参数的数量是可变的。根据数值的不同,新的参数可能会出现,或者现有的参数可能会消失。他们的数量可能很大(30、100、200、无穷大),我认为平均是20-50。一个策略只有在可用参数值的某些组合下才是完整的,只有在完整的策略中我们才能计算出利润、缩水等。我们可以很容易地(从计算的角度)添加和删除参数,确定哪些参数在数值变化时出现和消失。我们必须弄清楚如何使用测试器来 获得好的参数。参数是战略的功能要素。可以通过程序管理测试器(启动、停止、改变仪器、日期、杠杆、获得估计的计算时间、改变EA/指标参数等),获得优化结果(读取缓存)。有什么想法吗 :)?我还没有走到这个发展阶段。 Andrey Dik 2020.03.27 11:15 #72 Aliaksandr Hryshyn: 有趣的方法。 我也要做我的'自行车'。 任务大致如下。 参数的数量是可变的。 根据数值的不同,新的参数可能会出现,或者现有的参数可能会消失。 他们的数量可能很大(30、100、200、无穷大),我认为平均是20-50。 一个策略只有在可用参数值的某些组合下才是完整的,只有在完整的策略中我们才能计算出利润、缩水等。 我们可以很容易地(从计算的角度)添加和删除参数,确定哪些参数在数值变化时出现和消失。 我们必须弄清楚如何使用测试器来 获得好的参数。参数是战略的功能要素。可以通过程序管理测试器(启动、停止、改变仪器、日期、杠杆、获得计算时间的估计、改变EA/指标参数等),获得优化结果(缓存读取)。 有什么想法吗 :)?我还没有走到这个发展阶段。 根据具体情况,这个问题可能有几种解决办法。 如果所有的参数,包括已经存在的参数和可能出现的参数,在参数集(染色体或其他等价物)中都有严格规定的位置,那么就根本不存在问题。 如果不能事先定义每个参数的某个位置,那么就有必要将参数划分为严格意义上只能相互组合的类型(那么参数在哪个位置就不重要了)--需要修改AO。 还有其他方法来解决这个问题,但无论如何,你将需要一个定制的AO,一个在标准结构上的上层建筑。 Edgar Akhmadeev 2020.03.27 16:05 #73 Boris Egorov: 确认内存过载 ....虽然很奇怪,但没有人取消调换,我认为开发者需要再次考虑到这一点。 你应该让我们知道问题是如何解决的。我们很担心你,不是吗? 每个代理需要多少最低限度的内存(你是否减少了激活的代理数量,直到所有的代理都是均匀 的负载?) 增加了pagefile?物理内存将被不断交换,它可能会减慢很多,你需要找到一个总优化时间最小的核心数量。 Aliaksandr Hryshyn 2020.03.27 17:46 #74 Edgar Akhmadeev: 你应该让我们知道问题是如何解决的。我们很担心你,不是吗? 每个代理需要多少最低限度的内存(你是否减少了激活的代理数量,直到所有的代理都是均匀的负载?) 增加了pagefile?物理内存将被不断交换,可能会出现严重的减速,我们需要找到一个总优化时间最小的核心数量。 这一切都取决于蜱的使用,历史深度,工具的数量。只要看看任务管理器,你会看到那里的一切,所有内存的数量减去1-2GB的操作系统除以一个代理使用的数量。这对每个人来说都是不同的。 如果将RAM的一个区域用于报价,并可能用于指标,那么开发者就可以做出真正的改进。 Edgar Akhmadeev 2020.03.27 19:00 #75 Aliaksandr Hryshyn: 这完全取决于蜱虫的使用,历史的深度,工具的数量。只要看看任务管理器,你就可以看到总的内存大小减去1-2GB的操作系统除以一个代理使用的大小。每个人的情况都不同。 如果将RAM的一个区域用于报价,或许还用于指标,那么开发者确实可以改善这种情况。 你在向我解释吗?我在向一个人解释这个问题,现在我对结果感兴趣。没有反馈。 而且我们已经多次讨论过终端对内存的低效使用,MQ几次承诺要改变每个代理重复的tick历史和临时文件的情况,以及在每次tick 优化前长时间创建这些文件。就我个人而言,多年来我不得不禁用几乎一半的代理和勾选优化功能。我有8GB和8个代理。但现在我们使用我们所拥有的,我们可以增加内存大小或禁用代理。 Boris Egorov 2020.03.28 14:07 #76 Edgar Akhmadeev: 你在向我解释吗?我向那人解释了这个问题,现在我想知道结果。没有反馈。 终端对内存的低效使用我们已经讨论过很多次了,而MQ几次承诺要改变这种情况,为每个代理复制tick历史和临时文件,并在每次tick 优化前长时间创建这些文件。就我个人而言,多年来我不得不禁用几乎一半的代理和勾选优化功能。我有8GB和8个代理。但现在我们使用我们所拥有的,我们可以增加内存大小或禁用代理。 >你只需要让我们知道问题是如何解决的。我们很担心你。 >我向他解释了这个问题,现在我对这个结果很感兴趣。没有反馈。 我很抱歉,我在工作,我没有时间。 我已经优化了该EA。为了让优化器工作,我删除了一些 "不重要 "的部分(特别是与OpenCL和SQLite有关的一切)。我现在没有内存溢出。但是...当然,这不是一个解决方案。 在另一台电脑上,我不得不禁用一些核心,以避免冻结......。因此,例如,在3950X(16核心/32线程)和32GB上的系统,使用所有线程只是挂起。此外,它在代理上挂起,并挂起,直到你通过任务管理器手动杀死该进程....。我禁用了一些核心,计算继续进行。我认为开发者应该做一些事情来明确这个问题。如果优化器真的需要超过10G的内存进行计算,应该在类似警报的地方明确写出来。但我要再次提醒你关于交换的问题。我已经安装了Xmeters...所以我可以在任务栏上直观地看到内存负载。 我认为还有一些专门与amdc CPU有关的故障,而且以前并不存在--尽管顾问是一样的。症状如下 - 只有5个核心....和错误的计算挂在...而且也不完全是内存的问题,即同样的专家顾问强制16个线程没有问题,而问题是浮动的,现在又不是。如果我不在优化器中运行测试,它运行得很好。我不止一次注意到这一点。所以我得去看看。 关于网络代理的刹车问题,我还是没能找到。"一个核心--一个工作 "是开发商无法理解的。和以前一样,10个核心将各得到30个工作,另外30个网络代理将得到闲置。需要很长的时间来分配任务,思考一些问题。因此,总的来说,有很多滞后性。 对了,我忘了:非常感谢大家的参与、帮助和建议。 Boris Egorov 2020.05.10 12:58 #77 致Renat Fatkhullin 不过,我还是想再次提出这个问题,并专门向雷纳特-法特库林 提出一个问题 1.我正在优化一个由几台性能迥异的服务器组成的本地农场,在优化过程中我看到了一些由不同性能的CPU造成的非常可怕的延迟。假设有CPU Xeon E5-2620 v2(2.1 GHz)、Xeon E5-2620 0(2.00 GHz)、i7-3820(3.6 GHz)、Xeon E3-1245(3.7 GHz)、Ryzen 7 2700、Ryzen 9 3900X、Ryzen 9 3950X的服务器。目前的算法是这样工作的:它形成一个作业栈,将该作业栈平均分配给每个可用的核心。由于低速至强E5-2620 0(2.00GHz)和至强E5-2620 v2(2.1GHz)CPU,农场空闲时计算其任务,但这两个CPU甚至没有计算一半的任务。因此,整个农场就这样闲置着。这种情况发生了,并将继续发生,因为CPU有不同的速度,只要工作是以数据包形式分布的。经验表明,网络延迟一点都不重要,可以忽略不计。是否已经有可能重新设计作业分配算法:不把几个作业分配给每个可用的核心,而是"给每个被释放的核心从当前一代堆栈中提供一个作业"? 2.是否可以增加每10分钟将测试结果保存到xml文件....,并从上次保存开始运行? Renat Fatkhullin - MetaQuotes www.mql5.com Профиль трейдера Renat Fatkhullin 2020.05.10 13:02 #78 我们已经对测试器和优化器进行了全面重写。 我们将大刀阔斧地进行检修,解决积累的问题。 Aleksey Vyazmikin 2020.05.10 13:37 #79 Renat Fatkhullin: 我们已经对测试器和优化器进行了全面重写。 我们将大刀阔斧地进行检修,解决积累的问题。 会不会有。 1.对代理退出的反应更快,比如说,如果没有代理退出,数据包的传送会中断几分钟,数据包会重新分配。 2.是否可以在一个实例中上传远程机器 上所有代理的数据? 3.当与代理的连接中断时,在没有下载优化所需的所有数据(文件)的情况下,是否会出现传输大量数据的问题? Boris Egorov 2020.05.10 14:18 #80 还有一件事困扰着我 .... 比方说,优化正在进行,在那一刻,代理的metatrader被更新 ....代理人有一个工作(或者说是一批工作),会不会丢失或重新计算? 1234567891011 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
有趣的方法。
根据具体情况,这个问题可能有几种解决办法。
如果所有的参数,包括已经存在的参数和可能出现的参数,在参数集(染色体或其他等价物)中都有严格规定的位置,那么就根本不存在问题。
如果不能事先定义每个参数的某个位置,那么就有必要将参数划分为严格意义上只能相互组合的类型(那么参数在哪个位置就不重要了)--需要修改AO。
还有其他方法来解决这个问题,但无论如何,你将需要一个定制的AO,一个在标准结构上的上层建筑。
确认内存过载 ....虽然很奇怪,但没有人取消调换,我认为开发者需要再次考虑到这一点。
你应该让我们知道问题是如何解决的。我们很担心你,不是吗?
每个代理需要多少最低限度的内存(你是否减少了激活的代理数量,直到所有的代理都是均匀 的负载?)
增加了pagefile?物理内存将被不断交换,它可能会减慢很多,你需要找到一个总优化时间最小的核心数量。
你应该让我们知道问题是如何解决的。我们很担心你,不是吗?
每个代理需要多少最低限度的内存(你是否减少了激活的代理数量,直到所有的代理都是均匀的负载?)
增加了pagefile?物理内存将被不断交换,可能会出现严重的减速,我们需要找到一个总优化时间最小的核心数量。
这一切都取决于蜱的使用,历史深度,工具的数量。只要看看任务管理器,你会看到那里的一切,所有内存的数量减去1-2GB的操作系统除以一个代理使用的数量。这对每个人来说都是不同的。
如果将RAM的一个区域用于报价,并可能用于指标,那么开发者就可以做出真正的改进。这完全取决于蜱虫的使用,历史的深度,工具的数量。只要看看任务管理器,你就可以看到总的内存大小减去1-2GB的操作系统除以一个代理使用的大小。每个人的情况都不同。
如果将RAM的一个区域用于报价,或许还用于指标,那么开发者确实可以改善这种情况。你在向我解释吗?我在向一个人解释这个问题,现在我对结果感兴趣。没有反馈。
而且我们已经多次讨论过终端对内存的低效使用,MQ几次承诺要改变每个代理重复的tick历史和临时文件的情况,以及在每次tick 优化前长时间创建这些文件。就我个人而言,多年来我不得不禁用几乎一半的代理和勾选优化功能。我有8GB和8个代理。但现在我们使用我们所拥有的,我们可以增加内存大小或禁用代理。
你在向我解释吗?我向那人解释了这个问题,现在我想知道结果。没有反馈。
终端对内存的低效使用我们已经讨论过很多次了,而MQ几次承诺要改变这种情况,为每个代理复制tick历史和临时文件,并在每次tick 优化前长时间创建这些文件。就我个人而言,多年来我不得不禁用几乎一半的代理和勾选优化功能。我有8GB和8个代理。但现在我们使用我们所拥有的,我们可以增加内存大小或禁用代理。
>你只需要让我们知道问题是如何解决的。我们很担心你。
>我向他解释了这个问题,现在我对这个结果很感兴趣。没有反馈。
我很抱歉,我在工作,我没有时间。
我已经优化了该EA。为了让优化器工作,我删除了一些 "不重要 "的部分(特别是与OpenCL和SQLite有关的一切)。我现在没有内存溢出。但是...当然,这不是一个解决方案。
在另一台电脑上,我不得不禁用一些核心,以避免冻结......。因此,例如,在3950X(16核心/32线程)和32GB上的系统,使用所有线程只是挂起。此外,它在代理上挂起,并挂起,直到你通过任务管理器手动杀死该进程....。我禁用了一些核心,计算继续进行。我认为开发者应该做一些事情来明确这个问题。如果优化器真的需要超过10G的内存进行计算,应该在类似警报的地方明确写出来。但我要再次提醒你关于交换的问题。我已经安装了Xmeters...所以我可以在任务栏上直观地看到内存负载。
我认为还有一些专门与amdc CPU有关的故障,而且以前并不存在--尽管顾问是一样的。症状如下 - 只有5个核心....和错误的计算挂在...而且也不完全是内存的问题,即同样的专家顾问强制16个线程没有问题,而问题是浮动的,现在又不是。如果我不在优化器中运行测试,它运行得很好。我不止一次注意到这一点。所以我得去看看。
关于网络代理的刹车问题,我还是没能找到。"一个核心--一个工作 "是开发商无法理解的。和以前一样,10个核心将各得到30个工作,另外30个网络代理将得到闲置。需要很长的时间来分配任务,思考一些问题。因此,总的来说,有很多滞后性。
对了,我忘了:非常感谢大家的参与、帮助和建议。致Renat Fatkhullin
不过,我还是想再次提出这个问题,并专门向雷纳特-法特库林 提出一个问题
1.我正在优化一个由几台性能迥异的服务器组成的本地农场,在优化过程中我看到了一些由不同性能的CPU造成的非常可怕的延迟。假设有CPU Xeon E5-2620 v2(2.1 GHz)、Xeon E5-2620 0(2.00 GHz)、i7-3820(3.6 GHz)、Xeon E3-1245(3.7 GHz)、Ryzen 7 2700、Ryzen 9 3900X、Ryzen 9 3950X的服务器。目前的算法是这样工作的:它形成一个作业栈,将该作业栈平均分配给每个可用的核心。由于低速至强E5-2620 0(2.00GHz)和至强E5-2620 v2(2.1GHz)CPU,农场空闲时计算其任务,但这两个CPU甚至没有计算一半的任务。因此,整个农场就这样闲置着。这种情况发生了,并将继续发生,因为CPU有不同的速度,只要工作是以数据包形式分布的。经验表明,网络延迟一点都不重要,可以忽略不计。是否已经有可能重新设计作业分配算法:不把几个作业分配给每个可用的核心,而是"给每个被释放的核心从当前一代堆栈中提供一个作业"?
2.是否可以增加每10分钟将测试结果保存到xml文件....,并从上次保存开始运行?
我们已经对测试器和优化器进行了全面重写。
我们将大刀阔斧地进行检修,解决积累的问题。
我们已经对测试器和优化器进行了全面重写。
我们将大刀阔斧地进行检修,解决积累的问题。
会不会有。
1.对代理退出的反应更快,比如说,如果没有代理退出,数据包的传送会中断几分钟,数据包会重新分配。
2.是否可以在一个实例中上传远程机器 上所有代理的数据?
3.当与代理的连接中断时,在没有下载优化所需的所有数据(文件)的情况下,是否会出现传输大量数据的问题?
还有一件事困扰着我 ....
比方说,优化正在进行,在那一刻,代理的metatrader被更新 ....代理人有一个工作(或者说是一批工作),会不会丢失或重新计算?