Общие рекомендации к системе, компьютеру.

Чем больше количество потоков процессора, тем для скорости оптимизации лучше.

Количество оперативной памяти подбирайте исходя из задач и ниже описанному алгоритму расчета.

------------------------

Сколько оперативной памяти необходимо при оптимизации?

Конечное потребление памяти при оптимизации можно рассчитать по следующей формуле:

Память (байт) = ЧислоБар * 8 * ЧислоУникНаборовПараметров

ЧислоБар – сколько бар истории вы подали в скрипт

8 – столько байт займет одно число double

Число Уникальных Наборов Параметров – сколько уникальных сочетаний параметров в скрипте получается. Далеко не всегда эта цифра равна числу итераций в скрипте. Для двух скользящих с периодом от 1 до 300, число уникальных наборов будет равно всегда 299, при том что число пересчетов будет много больше. И именно за счет кэширования этих самых 299 уникальных результатов будет получен тот самый прирост скорости оптимизации, который получается при помощи использования GetData.

В одном гигабайте всегда 1024 мегабайта, а в одном мегабайте 1024 килобайта, а в килобайте всегда 1024 байта.

В рамках программы на одно число double может уходить до 10 байт.
 TSLab выделяет память не только под кэш, но и под другие промежуточные расчеты, а так же с тем, что закэшируются и цены закрытия инструмента (что может занять некоторое количество памяти).
Поэтому, памяти будет затрачено несколько больше, чем получится по выше приведенной формуле.

-------------------------
-------------------------

От чего зависит скорость оптимизации и пересчет скрипта?

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

Чем быстрее(высокая частота) процессор и чем больше ядер(возможных потоков), тем быстрее оптимизация.
Прочитайте статью по теме: Недогрузка процессора на серверных машинах
"Включить для многоядерных процессоров"



 Отладка скриптов - это отладчик, дебаггер для работы с Visual studio или SharpDevelop
 Макс. время работы, - по умолчанию стоит 40 секунд. Это время пересчета скрипта, если компьютер не смог рассчитать скрипт за указанное время, программа остановит пересчет, снимет задачу.
 Настройка влияет не только на оптимизацию, но данный параметр - это максимальное время расчета агента.
 Кеш для скриптов, - подбирается методом научного тыка, все компьютеры разные, даже с одинаковым железом, в зависимости от драйверов, установленных программ, версии ОС, запущенных сервисов, могут вести себя по разному. Прочитайте статью о битности. Для последних версий windows, при условии переизбытка оперативной памяти и работе в 64бит, данный параметр можно не трогать или поставить его близким к имеющейся физически свободной оперативной памяти.

О методе тыка от пользователя:
Пересчетом данных занимается процессор, ОЗУ занимается хранением данных, откуда и потребляет их процессор (если очень упрощенно). больший объем ОЗУ позволит Вам разместить там больший объем "запаса" расчетных данных без необходимости "добывания" этих данных с HDD, за сам пересчет отвечает процессор, соответственно, скорость оптимизации будет определяться точкой баланса между количество оперативной памяти и быстродействием процессора. увеличение оперативной памяти без увеличения быстродействия процессора не даст эффекта после прохождения точки максимальной загрузки ОЗУ, равно как увеличение частоты процесса будет давать меньший эффект при малой ОЗУ, т.к. данные придется брать с низкоскоростных хранилищ данных типа HDD и SDD. примерно так это все работает

"метод научного тыка" в данном случае подразумевает под собой необходимость нахождения своей точки баланса между количество данных, которые необходимо оптимизировать, частотой процессора, размером ОЗУ, скоростью HDD/SSD и количеством процессов уже запущенных в Вашей системе.

это и есть "метод тыка". при оптимизации Вы можете играть на компе в Need For Speed, понятно, что при прочих равных общих параметрах оптимизация в таком режиме будет идти медленнее, чем на той машине, на которой игра не запущена. Думается, что именно это имелось ввиду в документации к ТСЛаб
Александр Ганов


Количество потоков оптимизации - 0, означает, что программа будет использовать количество потоков исходя из количества ядер. В примере на картинке обычный двухядерных 2ghz xeon, у него по умолчанию 2 потока, так как два ядра. Однако, если используете гипертрейдинговые процессоры, например i7, то количество потоков можно взять по количеству ядер, умножить на два. Скорость оптимизации возрастет значительно.
Остановить оптимизацию, мало памяти - программа остановит оптимизацию, если ресурсы оперативной памяти исчерпаны, если снять флаг, windows может увести процессы в СВОП(при использовании 64 бит) или выдать исключение по памяти, если 32 бит
Включить для многоядерных процессоров, - настройка доступна, начиная с версии программы 2.1. Это настройка сборщика мусора NET. Например, для многоядерных xeon, больше 8 ядер, настройка обязательна, даже в не зависимости от версии windows серверная или нет. С меньшим количеством ядер настройка может не повлиять на загрузку процессора.

На разных версиях программы скорость оптимизации может отличаться.

Например, версия программы 1.2 может оптимизировать скрипты быстрее, чем версия 2.1 при большом количестве Позиций.
Это связано с тем, что обработка позиций в 2.1 отличается от 1.2.
В версии программы 2.1 добавлены блоки "Изменения позиции" и с их участием обработка быстрее, чем при прочих равных, в версии 1.2.
Чем больше сделок(от нескольких сотен), тем 2.1 обрабатывает сделки дольше, в сравнении с 1.2 на одном и том же скрипте, разница в скорости может достигать 15% .

Количество проходов оптимизации

Ставим границы оптимизации параметра, например 1 - 100, шаг 1. Итого максимум 100 проходов.

Но если поставить 30 проходов, а не максимальное - 100, то оптимизатор пройдет не ровно 30 проходов, а 34-35.

Пояснение:

"Количество проходов" задает минимальное количество проходов. В общем случае количество должно быть кратно количество задействованных параметров.



Optimzation
General requirements to PC and software

64 bit. More RAM and processor threads increase optimization speed.
-------------------------
How much RAM is recommended?

Use this formula to calculate RAM you need for optimization:
RAM (byte) = Bars * 8 * Unique Parameters Combinations
Bars – the number of bars you use in your script
8 – how many bytes takes one double
The Number of Unique Parameter Combinatios – the number of unique combinations of parameters values in the script. Not always this number is equal to the number of iterations in the script. For two moving averages with a period from 1 to 300, the number of unique combinations will always be equal to 299, while the number of recounts will be much larger. And due to caching of these 299 unique results optimization speed will be increased, which is obtained due to GetData.

One gigabyte has1024 megabytes, and one megabyte has 1024 kilobytes, one kilobyte always has 1024 bytes.
One double nay require 10 bytes.
TSLab needsd RAM for other calculations and for caching close prices as well. So you may need more RAM than the formula says.
-------------------------
What does optimization depend on?
TSLab supports multithreading. Therefore, the more threads the processor has, the faster the optimization is. You may also read this article: Server processor overcapacity.
This setting is going to be implemented in the next version of TSLab in this window. "Should be used on multiprocessor(or many cores) systems"

Script debugging is made by the script debugger designed for working with Visual studio or SharpDevelop.
Max. runtime - 40 second by default. This is the period of time when the script should be recalculated, if your POC fails to recalculate the script in 40 secs, TSLab stop srecounting and deletes the task.
The setting affects not only optimization process, but agent maximum calculation time as well.
Cache for scripts is selected randomly, all PcS are different, even with the same hardware, it may depend on drivers, installed software, running software and so on.
"Optimization number threads" 4, which means that TSLab will use the number of threads based on the number of cores. In the picture above you can see the standard 2ghz xeon, it has 4 threads by default as it has four cores.
However, if you use hyper-trading processors, for example i7, then the number of threads is equal to the number of cores multiplied by two and plus one more thread. The optimization speed will increase significantly.
"Stop optimization, low memory" - TSLab stops optimization if memory is low. if you uncheck the box, windows can use SWAP (when using 64 bits) or thewre may be memory exception if you run 32-bit version
"Should be used on multiprocessor(or many cores) systems", - this setting is available starting from TSLab version 2.1. This is the NET garbage collector setting. For example, for multi-core xeon, more than 8 cores, this setting is required regardless of which windows is used, server one or not. This setting may not influence the processor load with less number of cores.