распределение потоков
От: gwg-605 Россия  
Дата: 02.11.18 22:30
Оценка:
Есть две расчетные задачи: А и Б. Каждая задача использует по 4 потока, и работает только со своими данными. Задачи создают примерно одинаковую нагрузку на процессор, практически чистая целочисленная векторная математика (хорошо оптимизирована, включая AVX512). Хотелось бы разнести потоки на разным CPU для уменьшения борьбы за ресурсы. Платформа Intel.

1. 4 кора + 4 HT треда (8 логических ЦПУ)
Задача А: два кора 0 и 1 + два соседних треда (маска=0F)
Задача Б: два других кора 2 и 3 + два соседних треда(маска=F0)

2. 4 кора + 4 HT треда (8 логических ЦПУ)
Задача А: четрые кора 0..3 (маска=55)
Задача Б: четыре треда (маска=AA)

Какой вариант будет будет оптимальным? и почему?

По мне: 1-й вариант более оптимален, но...
Re: распределение потоков
От: ioni Россия  
Дата: 05.11.18 11:51
Оценка: +1
Здравствуйте, gwg-605, Вы писали:

G6>Есть две расчетные задачи: А и Б. Каждая задача использует по 4 потока, и работает только со своими данными. Задачи создают примерно одинаковую нагрузку на процессор, практически чистая целочисленная векторная математика (хорошо оптимизирована, включая AVX512). Хотелось бы разнести потоки на разным CPU для уменьшения борьбы за ресурсы. Платформа Intel.


G6>1. 4 кора + 4 HT треда (8 логических ЦПУ)

G6>Задача А: два кора 0 и 1 + два соседних треда (маска=0F)
G6>Задача Б: два других кора 2 и 3 + два соседних треда(маска=F0)

G6>2. 4 кора + 4 HT треда (8 логических ЦПУ)

G6>Задача А: четрые кора 0..3 (маска=55)
G6>Задача Б: четыре треда (маска=AA)

G6>Какой вариант будет будет оптимальным? и почему?


G6>По мне: 1-й вариант более оптимален, но...


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

Еще, возможно что на первом ядре всегда используется обработчик прерываний
который ни при каких условиях не меняет своего аффинити
Re[2]: распределение потоков
От: gwg-605 Россия  
Дата: 09.11.18 18:19
Оценка:
Здравствуйте, ioni, Вы писали:

I>Здравствуйте, gwg-605, Вы писали:


G6>>Есть две расчетные задачи: А и Б. Каждая задача использует по 4 потока, и работает только со своими данными. Задачи создают примерно одинаковую нагрузку на процессор, практически чистая целочисленная векторная математика (хорошо оптимизирована, включая AVX512). Хотелось бы разнести потоки на разным CPU для уменьшения борьбы за ресурсы. Платформа Intel.


G6>>1. 4 кора + 4 HT треда (8 логических ЦПУ)

G6>>Задача А: два кора 0 и 1 + два соседних треда (маска=0F)
G6>>Задача Б: два других кора 2 и 3 + два соседних треда(маска=F0)

G6>>2. 4 кора + 4 HT треда (8 логических ЦПУ)

G6>>Задача А: четрые кора 0..3 (маска=55)
G6>>Задача Б: четыре треда (маска=AA)

G6>>Какой вариант будет будет оптимальным? и почему?


G6>>По мне: 1-й вариант более оптимален, но...


I>Думаю что никакой, оставьте на откуп планировщика

I>при тестировании может показать одно, при одном наборе процессов,
I>в реальности все может поменяться кардинально
На самом деле дает и чем больше процессоров в системе, тем больше. на 16 корах/32 тредах может давать разницу до 40%. Причем и на винде и на линуксе.

Вопрос больше стоял в том чтобы проверить свое понимание этих процессов. Узнать новые вещи которые возможно не учел.

I>Попробуйте поиграть приоритетами для этих задач

Приоритет у задач одинаковый.
Re[3]: распределение потоков
От: ioni Россия  
Дата: 10.11.18 17:27
Оценка:
G6>На самом деле дает и чем больше процессоров в системе, тем больше. на 16 корах/32 тредах может давать разницу до 40%. Причем и на винде и на линуксе.

Ну тогда раскидывайте по разным процессорам
но будьте готовы что в какой то момент
это может не сработать и нужно менять динамически
в результате приходим к планировщику

G6>Вопрос больше стоял в том чтобы проверить свое понимание этих процессов. Узнать новые вещи которые возможно не учел.


I>>Попробуйте поиграть приоритетами для этих задач

G6>Приоритет у задач одинаковый.

Поставьте realtime
или как минимум должен быть выше чем у других задач данного процесса
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.