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

 
  • 31% (15)
  • 69% (34)
Всего проголосовало: 49
 

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

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

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

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

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

 
Serhii Shevchuk:

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

нереально.

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

 
Комбинатор:

нереально.

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

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

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

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

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