
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Мои результаты на следующей конфигурации:
Режим генетики в MQL5 Cloud Network: реально просчитано 2 624 прохода из 8 704 ожидаемых за 15 минут и 52 секунды. Генетика остановила просчет раньше, так как уперлась в потолок результатов из-за сильно разреженного поля поиска.
Очистив все кеши на диске и перезапустив терминал, я запустил генетику на локальных ядрах i7-2600, 3.4 Ghz, Windows 7 x64, RAM 16Gb, 8 ядер:
Среднее время локального прохода от 19 до 25 сек (компьютер ничего не нагружен):
2012.02.05 01:06:34 Core 2 genetic pass (184, 344771) returned result 97426.26 in 20 sec
2012.02.05 01:06:31 Core 7 genetic pass (191, 419403, 1) started
2012.02.05 01:06:31 Core 7 genetic pass (181, 347989) returned result 94247.90 in 25 sec
2012.02.05 01:06:31 Core 3 genetic pass (190, 1048934, 1) started
2012.02.05 01:06:31 Core 3 genetic pass (183, 255717) returned result 92939.02 in 20 sec
2012.02.05 01:06:28 Core 4 genetic pass (189, 535782, 1) started
2012.02.05 01:06:28 Core 4 genetic pass (182, 131277) returned result 98194.52 in 21 sec
Поняв, что с такой скоростью ждать буду долго, я остановил расчет на 211 проходе:
2012.02.05 01:07:59 Statistics locals 211 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2012.02.05 01:07:59 Statistics optimization passed in 11 minutes 16 seconds
2012.02.05 01:07:59 Tester genetic optimization finished on pass 211 (of 1276290)
2012.02.05 01:07:59 Tester result cache was used 0 times
Видно, что это чистые 211 проходов с нулевым количеством попаданий в старый кеш.
Так как разные запуски генетики редко когда совпадают по количеству проходов и я провел тесты достаточно чисто, можно провести дорасчет времени математически:
Итого получается, что 8 406 / 952 = 8.8 раз генетика быстрее в облаке. Это соответствует мощности 64 локальных ядер.
Какие объяснения:
Это прямо зависит от самой идеи скрещивания разных поколений и адаптивного размера популяции. То есть, в генетике всю клауд сеть не использовать.
В результате из 64-256 агентов многие проводят время в ожидании новой порции, а не работают постоянно. Зачастую каждый агент успевает выполнить только одну задачу из популяции в 64-256 задачи. А локальные ядра за счет меньшего их количества и одинаковости мощности практически никогда не простаивают - каждый из них выполняет пропорциональную часть из пакета задач.
С одной стороны любой результат клауда практически приходится делить на 4-8, а с другой - мы максимально эффективно используем возможности локальных ядер.
Пакетирование и эффективный механизм сетевого протокола рулят.
Конечно же, результаты полного перебора не имеют проблем с задержками из-за мелких пакетов популяций и скорость может быть линейно отмасштабирована в сотни и тысячи раз.
Обнаружил у себя ошибку - я тестировался на чужом сервере RoboForex и потратил достаточно времени на первичную перекачку истории чартов.
На новой истории клауд несколько минут только разогревается, синхронизируя историю по агентам. Сейчас повторю тесты.
Провел тесты на MetaQuotes-Demo: М1 истории на нашем сервере больше, практически все клауды ее уже имеют и время разогрева сети меньше.
Увеличение объема М1 баров привело к увеличению времени на один проход до 30 секунд.
Вот результаты на MQL5 Cloud Network: 3 704 чистых задач за 25 минут и 8 секунд (1 508 секунд).
Вот результат локальных проходов: 181 задача за 11 минут и 57 секунд (717 секунд) - остановил, чтобы не ждать 4 часа (общее время можно легко рассчитать).
Если посчитать, сколько займет на локальных ядрах расчет 3 704 задач, то получится: ( 3 704 / 181 ) * 717 = 14 672 секунды (244 минуты и 32 секунды = 4 часа, 4 минуты и 32 секунды).
Итого получается, что 14 672 / 1 508 = 9.7 раз генетика быстрее в облаке.
Хотя результат близкий к предыдущему 8.8, но все-таки дотягивает до 10 раз, что дает право заявить "на порядок ускоряет".
Объяснения, данные в комментарии https://www.mql5.com/ru/forum/6071/page2#comment_148584, остаются в силе.
За 3 мин. 28 сек. использования сети, у меня было списано толи 2, толи 3 цента (в терминале 3, на сайте - 2, и 3 заморожено). Пусть будет 3 или даже для простоты, использование сети для генетики стоит 1 цент за одну минуту. Итого, час - 60 центов, 24 часа = $14,4. Как по мне - это очень дорого. Цены нужно скидывать минимум в три раза, чтобы это стало привлекательным для потребителя (тестируют советников многие, но не все могут/хотят выложить около $15 в день за Cloud, а если бы это было $5 или меньше - желающих бы стало больше).
...
Думаю, ход моей мысли понятен
@ Слышь сосед, не нравиться мне, что пока я на работе, ты ходишь к моей жене @
@ Да вас Джонсонов не поймёшь, тебе не нравиться, ей нравиться @ :)
Покупатели всегда хотят дешевле, продавцы дороже, решит спор лишь котирование.
Покупатели должны иметь возможность выставлять желаемую цену за задачу, продавцы желаемую цену за свои ресурсы, тогда и организуется рынок.
Но это всё в будущем, когда услуга станет привычной и её целесообразность не будет вызывать вопрос. Сейчас же MQ приходится активно доказывать что Cloud это круто.
Мой опыт: я много проводил и провожу тестов в клауде, но за все время с момент старта проекта потратил всего 44 доллара.
Это очень мало, с учетом того, что временами использовались по 2-3 тысячи агентов.
Итого получается, что 14 672 / 1 508 = 9.7 раз генетика быстрее в облаке.
Хотя результат близкий к предыдущему 8.8, но все-таки дотягивает до 10 раз, что дает право заявить "на порядок ускоряет".
Итого, генетика ускоряется от 7 до 10 раз. Т. е., на порядок. А поскольку в локальных тестах использовались далека не слабые ядра, то для некоторых пользователей ускорение возможно дотянет и до 40 раз.
Для себя решил, что буду пользоваться облаком, если оптимизация своими силами будет занимать времени более суток.
+ пожелание - расширьте, плиз, механизмы определения тормознутых агентов и перераспределения между ними задач и на локальные + удалённые агенты. Ибо получается тот же тест с теми же ядрами в качестве удалённых + ещё 10 слабеньких + 2 слабеньких локальных приводит к результату:
Практически в 2,5 раза медленнее. А не всегда есть желание и возможность вымерять с какими агентами получить максимальную производительность.