Если включаю 2 потока - то в сумме получается 1800-1900 тыс. ключей/сек. При этом оба процессора заняты на 100%. Если включаю 1 поток, то дает 3500 тыс. ключей/сек. При этом 1 процессор занят на 100%, второй практически свободен.
Проц - P4 2600 Northwood
ОС - XP prof sp1
Клиент - 483.
Спасибо.
[RC5] См. ветку http://www.bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=1&m=9747327.04.04 13:44 Автор: Garick <Yuriy> Статус: Elderman
> Если включаю 2 потока - то в сумме получается 1800-1900 > тыс. ключей/сек. При этом оба процессора заняты на 100%.
Извиняюсь, что не дам ответа, которого Вы ждете, а дополню еще одним вопросом.
> Если включаю 1 поток, то дает 3500 тыс. ключей/сек. При
Ожидать от НТ увеличение производительности при решении вычислительной задачи в два раза бессмысленно, это понятно. Хотелось бы видеть хотя бы небольшое увеличение, суммарное, разумеется. Распараллеливая задачу на обычном процессоре (без НТ) можно ожидать только потерю производительности на небольшую величину, связанную с небольшими накладными вычислительными потерями на переключение процессов. Но ведь на то оно и НТ, чтобы минимизировать потери на переключение. Мало того, хотелось бы ожидать прирост этой производительности, как обещают инженеры Интела на несколько десятков процентов.
Может у Вас что-то не так настроено/сконфигурено аппаратно. Странно, но от распараллеливания у Вас получается только потеря производительности почти аж в два раза!
Мой дополнительный вопрос тем счастливым обладателям П4 с НТ заключается в том, какой максимальный прирост/потерю вычислительной производительности они видели на рассчетных задачах при их распараллеливании с использованием НТ?
> этом 1 процессор занят на 100%, второй практически > свободен.
Было бы странным увидеть значение меньше 100%, хотя тогда бы все как-то объяснялось.
НТ даёт прирост производительность обычным задачам за счёт раскидывания вычислений по нескольких (дублированным) блокам процессора. Что и позволяет за счёт параллельной работы двух программ получать ускорение.
А коровка - УЖЕ оптимизирована под конкретные типы процессоров, и использует насколько возможно "распараллеливание" вычислений на все имеющиеся арифметические/логические блоки.
Если посмотреть на имеющиеся ядра:
RC5:-1) Auto select 0) SES 1-pipe 1) SES 2-pipe
2) DG 2-pipe 3) DG 3-pipe 4) DG 3-pipe alt
5) SS 2-pipe
то очевидно, что цифры 1, 2 и 3 - это и есть число распараллеленных конвейеров.
А если попытаться запустить с помощью НТ двух клиентов, то они только мешать друг другу будут.
[RC5] НТ не дает прироста быкам...27.04.04 13:51 Автор: Garick <Yuriy> Статус: Elderman
> Ожидать от НТ увеличение производительности при решении > вычислительной задачи в два раза бессмысленно, это понятно. > Хотелось бы видеть хотя бы небольшое увеличение, суммарное, > разумеется. Распараллеливая задачу на обычном процессоре > (без НТ) можно ожидать только потерю производительности на > небольшую величину, связанную с небольшими накладными > вычислительными потерями на переключение процессов. Но ведь > на то оно и НТ, чтобы минимизировать потери на > переключение. Мало того, хотелось бы ожидать прирост этой > производительности, как обещают инженеры Интела на > несколько десятков процентов.
Вычислительный блок проца остался ведь ОДИН и смысл НТ в том что параллелить дешифровщик команд, грубо говоря ускорять операции, не связанные с вычислениями.
[RC5] Извиняюсь, что не дам ответа, которого Вы ждете, а дополню...27.04.04 13:27 Автор: Guest Статус: Незарегистрированный пользователь
Проясню немного ситуацию:
До определенного момента все было ОК. 1-ый поток - 3.500 тыс ключей/сек, 2-ой поток 2.500 тыс ключей/сек. Падение случилось при смене клиента. Обратная замена не помогла.
Имеет ли смысл попробовать переставить виндюки "с нуля"?
Тогда снимаю свой дополнительный вопрос. НТ просто супер! Около 70%!27.04.04 13:30 Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Проц НТ имеет только одно ядро, но два контекста проца и естественно разделяет вычислительную мощность ядра между двумя контекстами, используя для второго контекста незадействованные первым области ядра.
Еще как может! Первый простой пример: один поток -...28.04.04 10:44 Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 28.04.04 10:49 Количество правок: 1
> Проц НТ имеет только одно ядро, но два контекста проца и
Еще как может! Первый простой пример: один поток - целочисленный, второй с плавающей точкой или мультимедийный, он тоже на ФПУ работает. Второй пример похитрее: из-за латентности памяти простой процессора может составлять несколько десятков тактов (клоковость памяти помножим на множитель), получается что не только два, а три и четыре потока можно запустить плюс ФПУ. Так что реально добиться бОльшего, если еще немного подкрутить НТ до 4 процов, на задаче дНЕТ легко получить 4-х кратный прирост, поскольку большие числа не в регистрах, а, естественно, в памяти сидят.
> естественно разделяет вычислительную мощность ядра между > двумя контекстами, используя для второго контекста > незадействованные первым области ядра.
Ну таких областей мало, инструкции обычно перемешаны и АЛУ работает на всю катушку, и конвееры оба забиты - обычные потоки легко параллелятся. Вот если бы еще один - два конвеера добавить... Кто-то из разработчиков хотел это сделать.