Тесты на вычисление числа Pi для mql4, mql5, MSVC, Intel compilators - страница 2

 
fxsaber:
Производительность - это круто.

Это не просто круто.

А доказательство того, что язык экстремально эффективный и позволяет почти полностью снять потребность в использовании сторонних DLL. Особенно с ростом возможностей самого языка и его штатных библиотек.

Причем рост MQL5 не остановился - мы будем добавлять в него больше возможностей.

 
Renat Fatkhullin:

Да, появится из важного:

  1. Расширенный OpenCL со штатной расчетной математической библиотекой на OpenCL. Конечно, с ограниченным набором функций, который поддается распараллеливанию.
  2. Новый тип программ в виде постоянных сервисов и функций взаимодействия между программами
  3. Кастомные датафиды и синтетические инструменты

Ну и конечно десятки других вещей, которые будут описаны в релизах.

Спасибо! Четко и по-делу.
 
Renat Fatkhullin:

Это не просто круто.

А доказательство того, что язык экстремально эффективный и позволяет почти полностью снять потребность в использовании сторонних DLL. Особенно с ростом возможностей самого языка и его штатных библиотек.

Причем рост MQL5 не остановился - мы будем добавлять в него больше возможностей.

Полностью осознаю, не понимаю только причин таких заявлений

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Открытый Интерес на истории

Ром, 2016.12.29 21:55

МТ-самый быстрый терминал непрямого подключения по всем фронтам на MOEX. ДАже люди, работающие со связкой TSLAB-Plaza2 говорили, глядя на стакан мтатрейдера5, - да ну нах -не может такого быть!,)

На МТ снапшот стаканов примерно  втрое быстрей чем при получении  через коннектор смартком .Мои советники по стратегиям арбитража, написанные на сишарпе, работающие через смартком в 6 раз прибыльнее аналогичнычных, написанных на MQL, работающих в "открытии".

 

А вы видите хотя бы одно доказательство про "Мои советники по стратегиям арбитража, написанные на сишарпе, работающие через смартком в 6 раз прибыльнее аналогичнычных, написанных на MQL, работающих в открытии"?

То, что данные в МТ5 приходят в 5 раз быстрее Квика (и других) - видят все. И мы доказали это в своих статьях, поставив на кон нашу репутацию.

То, что MQL5 в жуткое количество раз (от 50 до 600 раз) быстрее QLUA - мы доказали со всеми выкладками и воспроизводимыми скриптами, любой может проверить сам.

То, что торговое латенси у MT5+MQL5 в 28 раз меньше чем у Quik связок, доказали.

То, что MQL5 быстрее костылей(в связках) на C# видно. Даже в тесте в этой ветке. А если добавить отсутствие оверхеда на сопряжении, то MQL5 уделывает всех на масс маркете.

 
Renat Fatkhullin:

А вы видите хотя бы одно доказательство про "Мои советники по стратегиям арбитража, написанные на сишарпе, работающие через смартком в 6 раз прибыльнее аналогичнычных, написанных на MQL, работающих в открытии"?

Нет, конечно! Никаких доказательств не приводится. Только замечаю от разных персонажей такие вот данные логов

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Открытый Интерес на истории

fxsaber, 2017.01.07 21:38

Сколько примеров уже было логов, где показано, что даже выставление заявки может длиться секунды. Разрабы стрелки переводят на биржу. Биржа - у нас все OK.

На смарткоме бывают такие тормоза? Если не бывают и еще и прибыльней, значит, однозначно, MT кривой в части исполнения. 

Хочу выяснить, где собака порыта. Сколько уже было, когда в логах тормоза, а биржа в своих логах показывает, что все норм. Где баг на самом деле?

А то получается, что производительность очень высокая, а заявы идут про тормоза вряд ли от очернителей. 

 
Alexey Volchanskiy:

Как C# тормозит! МТ4 и МТ5 быстрее, чем на моем старичке 2 два раза, а шарп в полтора раза медленнее. А какая версия .NET стоит, можете посмотреть?
Со студией ставится программка clrver.exe, я приаттачил, если студии нет. У меня вот такая

Microsoft Windows [Version 10.0.14393]
(c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены.

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools>clrver.exe

Microsoft (R) .NET CLR Version Tool  Version 4.6.1590.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Versions installed on the machine:
v2.0.50727
v4.0.30319

***
 

аналогично

странно что на Си у меня медленней чем у тебя 

а мт5 и мт4  у меня быстрей чем у тебя

 

Kubuntu 16.10, Intel Core i7-6700 CPU @ 3.40GHz, 8 cores, RAM 16 Gb

Компилятор gcc. Я его настройки для выбора расширенного набора инструкций не знаю, нагуглил "-march=skylake -mfpmath=both" , вроде подошло.

Расширенный набор инструкций,
вкл/выкл
OMP, вкл/выкл
(вкл означает 8 потоков)
время, сек
выклвыкл6.00
выклвкл0.75
вклвыкл1.06
вклвкл0.33

Меня поразило что расширенный набор инструкций по дефолту не используется, как так? Прирост скорости получился в 6 раз в одном потоке только за счёт новых инструкций.

 

Ради интереса использовал флаг -Ofast вместо -O3. Ofast не рекомендуется, ибо с ним что-то не так:
Disregard strict standards compliance. -Ofast enables all -O3 optimizations. It also enables optimizations that are not valid for all standard-compliant programs. It turns on -ffast-math and the Fortran-specific -fno-protect-parens and -fstack-arrays. 

Но попробовать стоило. Главное что посчитанный Pi результат совпал (по крайней мере 12 цифр после запятой что видно на экране).
Расширенный набор инструкций,
вкл/выкл
OMP, вкл/выкл
(вкл означает 8 потоков)
время, сек
выклвыкл2.93
выклвкл0.7
вклвыкл0.53
вклвкл0.35
Файлы:
 
Renat Fatkhullin:

Вот повторил расчеты из ветки: Ускоряемся - использование пакета IPP для увеличения скорости работы советника

Показано наименьшее время из 10 запусков на свободном компьютере:

Windows 10 Pro, Intel Xeon E5-2690 v3 @ 2.60GHz, 24 cores, RAM 32 Gb

у всех floating point model = precise, x64 (у MQL4 - 32 bit)

The value of PI is  3.141592653590 in 12438 msec     MQL4 build 1031
The value of PI is  3.141592653590 in  4266 msec     MQL5 build 1502

The value of PI is  3.141592653590 in  4188 msec     MSVC 2015
The value of PI is  3.141592653590 in   375 msec     MSVC 2015 + OMP (24 cores)

The value of PI is  3.141592653590 in  4188 msec     Intel XE 2016
The value of PI is  3.141592653590 in   375 msec     Intel XE 2016 + OMP (24 cores)

В чистой математике MQL5 x64 по скорости равен MSVC 2015.

В архивах чистый проект на MSVC 2015, включая собранные бинарники под MSVC 2015 и Intel XE 2016 вместе с OMP версиями.

2017.01.08 01:49:47.141    Terminal    MetaTrader 5 x64 build 1502 started (MetaQuotes Software Corp.)
2017.01.08 01:49:47.142    Terminal    Windows 7 Ultimate (x64 based PC), IE 10.00, Intel Core i7  920 @ 2.67GHz, RAM: 6819 / 12279 Mb, HDD: 118381 / 488283 Mb, GMT+05:00

4 ядра

гипертрейдинг 8



MQL5

//+------------------------------------------------------------------+
//|                                                           PI.mq5 |
//|                      Copyright © 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#define NUM_STEPS 1000000000
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   double       x;
   double       pi;
   double       sum=0.0;
   double       step=1./NUM_STEPS;
   int          i;
   unsigned int msec=GetTickCount();
//---
   for(i=0; i<NUM_STEPS; i++)
     {
      x=(i + .5)*step;
      sum=sum + 4.0/(1.+ x*x);
     }
  
   pi=sum*step;
   msec=GetTickCount()-msec;
//---
   printf("The value of PI is %15.12f in %u msec",pi,msec);
  }
//+------------------------------------------------------------------+


2017.01.08 02:45:37.259    ParallelPI (EURUSD_i,M5)    The value of PI is  3.141592653590 in 6333 msec
2017.01.08 05:12:26.329    ParallelPI (EURUSD_i,M5)    The value of PI is  3.141592653590 in 6349 msec
2017.01.08 05:12:40.248    ParallelPI (EURUSD_i,M5)    The value of PI is  3.141592653590 in 6334 msec

2017.01.08 05:12:47.324    ParallelPI (EURUSD_i,M5)    The value of PI is  3.141592653590 in 6318 msec



C:\F\Renat\ParallelPi\bin>ParallelPi.intel.omp.exe

The value of PI is  3.141592653590 in 1856 msec 

ну тут все конечно понятно 

"А орешки не простые, Скорлупы-то золотые. Ядра - чистый изумруд"  - всего 4 штуки


C:\F\Renat\ParallelPi\bin>ParallelPi.msvc.exe

The value of PI is  3.141592653590 in 6318 msec

C:\F\Renat\ParallelPi\bin>ParallelPi.intel.exe

The value of PI is  3.141592653590 in 6334 msec


MQL4

2017.01.08 05:30:47.267    Script ParallelPi EURUSD,M30: removed
2017.01.08 05:30:47.265    ParallelPi EURUSD,M30: uninit reason 0
2017.01.08 05:30:47.265    ParallelPi EURUSD,M30: The value of PI is  3.141592653590 in 12948 msec
2017.01.08 05:30:34.324    ParallelPi EURUSD,M30: initialized

---


MQL5 реально  достиг  самой великолепной - прекрасной  скорости.

что сказать - кроме слов восторга нет ничего ...  все видно по тестам

Одно только сожаление - как жаль что в мт5 не было хеджирования - с момента в ввода в эксплуатацию! 

иначе сейчас  МТ4  с MQL4  - мы бы вспоминали как мт3 ...

 
Renat Fatkhullin:

Это не просто круто.

А доказательство того, что язык экстремально эффективный и позволяет почти полностью снять потребность в использовании сторонних DLL. Особенно с ростом возможностей самого языка и его штатных библиотек.

Причем рост MQL5 не остановился - мы будем добавлять в него больше возможностей.

Всё это безусловно круто, коли так. Теперь осталось только сделать компилятор под linux(желательно без привязки к gui) с бинарником на выходе и цены вам не будет!!! 
 
mmmoguschiy-new:
...компилятор ... с бинарником на выходе ...

В смысле чтоб сам эксперт получился бинарником, и мог запускаться и работать без терминала? Мне это нравится :)

И отвязка от винды тоже помогла бы, мне на арендованном впс нужно каждый месяц доплачивать за то что там винда установлена, можно было бы сэкономить без неё.