Добавить возможность получения номера ядра, на котором запущен эксперт, через MQLInfoInteger()

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Serhii Shevchuk
10414
Serhii Shevchuk  
  • 31% (15)
  • 69% (34)
Всего проголосовало: 49
Serhii Shevchuk
10414
Serhii Shevchuk  

Сейчас объясню ситуацию.

Допустим, есть эксперт, который использует OpenCL. Он оптимизируется на ПК, у которого 16 ядер (32 потока). Также, есть четыре видеоадаптера, которые эксперт видит как несколько OpenCL GPU девайсов.

Хотелось бы, чтобы нагрузка на GPU распределялась равномерно.То есть, чтобы эксперты на потоках 0..7 использовали GPU 0, на потоках 8..15 - использовали GPU 1, и так далее.

Но для этого надобно знать, на каком потоке работает эксперт.

Вопрос к администрации: насколько сложно это доработать, и реально ли вообще?

TheXpert
17878
TheXpert  
Serhii Shevchuk:

Вопрос к администрации: насколько сложно это доработать, и реально ли вообще?

нереально.

а в чем проблема равномерно распределять по входным параметрам прогона?

Serhii Shevchuk
10414
Serhii Shevchuk  
Комбинатор:

нереально.

а в чем проблема равномерно распределять по входным параметрам прогона?

Боюсь, что при оптимизации с генетическим алгоритмом такой способ не даст равномерного распределения нагрузки.
MetaQuotes
Админ
27003
Renat Fatkhullin  

Посмотрите на CLContextCreate, где можете указать какое по номеру GPU будете использовать в своей программе.

Смысла в определении номера ядра нет, так как поток эксперта исполняется на разных ядрах попеременно по решению менеджера потоков операционки. Мы не используем CPU Affinity Mask и не привязываем экспертов к выделенным ядрам процессоров.

Чтобы распределить между разными эксперами несколько GPU, можно использовать глобальные переменные.

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