Re: Linux and FreeBSD

From
Constantin Stefanov (2:5020/400)
To
Slawa Olhovchenkov
Date
2005-06-01T15:56:04Z
Area
RU.UNIX.BSD
From: Constantin Stefanov <cstef@mail.ru>

Slawa Olhovchenkov wrote:
>  >> У тебя не было приведено ни одного теста где бы двухпроцессорный тазик
>  >> уделал два однопроцессорных. и я догадываюсь почему -- на нынешних процах
>  >> все _очень_ существенно тормозит о память. И чем проц быстрее -- тем это
>  >> больше чувствуется, потому на P3 у тебя и была меньше эта проблема
>  >> заметна -- проц был медленнее, а не чипсет лучше. Поэтому им лучше
>  >> удавалось разделить память. А на частотах под 4ГГц и одному процу
>  >> современной памяти мало, быстродействие-то у нее на случайной выборке
>  >> особенно не выросло.
>  CS> Сходи вот сюда: http://parallel.ru/cluster/leo_performance.html
>  CS> Там есть данные по производительности на один процессор при
>  CS> использовании одного и двух процессоров из узла. И это, еще раз
>  CS> повторяю, на LinPack. Он не очень требователен к латентности среды, хотя
>  CS> на нем это тоже сказывается. К сожалению, не существует настолько же
>  CS> распространенного теста производительности, который был бы критичен
>  CS> именно к этому параметру.
> 
> Вот именно туда я и ходил, после чего и сделал это утверждение.
> Вот покажи пальцем тут http://parallel.ru/cluster/images/perf/cpu4a.gif где два
> проца уделывают два узла?
Э, ну да, теперь я уже белое с черным попутал. Признаю неправоту. 
Видимо, в случае кластера на эзернете сейчас выгоднее использовать 
однопроцессорные узлы.

> Сам же пишешь: "Таким образом, на некоторых тестах ускорение, достигаемое за
> счет использования второго процессора на узле еще меньше, чем на тесте LINPACK,
> а ускорение за счет использования второго процессора на другом узле всегда
> больше."
Ну не совсем я пишу, это текст коллеги из соседней комнаты. Я его 
творчески пересказываю.

>  >>  >> Я думаю на AMD наблюдаются те же соотношения.
>  >>  CS> Забыл винчестеры.
>  >> Нахуа они нужны вообще на счетном кластере?!
>  CS> Для временных файлов. Есть у нас один пользователь-химик. Так вот, у
>  CS> него есть задача, которая так много всего хранит во временных файлах,
>  CS> что при добавлении в узлы кластера второго винчестера она ускорилась
>  CS> примерно в 2,5 раза.
> Стрелять.
Не выходит. Такая задача. Так временных файлов на многие гигабайты.

>  CS> А по NFS это все гонять - можно застрелиться.
> 
> Почему? У гигабита трансыер почти 100МБ/с, у винта меньше.
Так ведь на той стороне тоже винчестер, да еще на который пытаются все 
сразу писать. Это ж какой RAID надо ставить, чтобы обеспечить 
одновременно несколькоим десяткам клиентов такую же скорость, как они со 
своими локальными винтами в сумме.

>  CS> Да и своп бывает. Хоть этого надо повозможности избегать, но бывают не
>  CS> очень хорошо написанные задачи, которые лезут в своп.
> 
> Стрелять. Если кто-то лезет в своп, то своп может кончится. Поэтому будем его
> ликвидировать как класс. Это примерно та же аналогия, что и у кнута была первом
> томе еще: не имеет смысла заниматься перераспределением мелких кусочков
> свободной памяти для получения крупных, поскольку если мы дощли до такого
> состояния то скорее всего очень скоро у нас память вообще кончится.
Тут уже вступают другие соображения, скорее удобства для пользователей.
Есть системные процессы (всякий мониторинг, периодические скрипты и 
т.п.). Держать под них запас свободного ОЗУ - расточительство. А так 
временно вытеснили кусок пользовательской задачи в своп, оно отработало, 
и поехали дальше. Ну или getty всякие в своп уедут.
И еще одно соображение. У нас кластер используется массой разных 
пользователей с разными задачами. И далеко не все из них достаточно 
квалифицированы для такой настройки своих программ. Поэтому из 
политических соображений выгоднее дать этим задачам отсчитаться хоть 
как-то, чем стрелять их. А то начнутся обвинения "у вас ничего не 
работает, задачи падают" и т.п. Если бы кластер был под пару конкретных 
задач, их бы, без сомнения, надо было отлаживать так, чтобы они работали 
без свопа. Кстати, у нас есть система, которая позволяет после отработки 
задачи посмотреть историю использования свопа на тех узлах, где она 
считалась (где считалась задача, берется из системы очередей, которая и 
распределяет задачу по узлам). Так что средства для грамотного 
пользователя предоставлены. Но надо жить и не очень грамотному.

> К сожалению у меня нету возможности это потестировать. Я надеялся что у тебя
> есть. Насколько я был в курсе (могу ошибаться) основное отличие ксенонов от П4
> -- умение вставать парой и более раннее появление всяких модных технологий
> (гипертрединга и прочих).
Увы, у меня тоже тестов нет. может, ты и прав, и разница в названиях - 
очередной маркетинговый ход Интела. Хотя вот вроде как нашел отличие - 
на Xeon максимальный размер кэша больше. Но это так, косметика.

>  >> А про это тебе уже Глеб говрил -- за цену спецкарты можно собрать машину
>  >> на АМД64 и просто удвоить число узлов, чем более чем скомпенсировать
>  >> коэффицент эффективности. Т.е. использование езернета и однопроцессорных
>  >> тазиков позволяет учетверить число узлов, что при том же бюджете может
>  >> позволить удвоить производительность кластера.
>  CS> Еще раз говорю - не на всех задачах.
> 
> Расскажи на каких. То, что две коробки лучше двухголовой -- ты уже сам доказал.
> Почему кластер с коэф. 0.6 и двойным числом узлов будет хуже кластера с коэф.
> 0.8? Даже если у нас будет совсем дерьмо (0.4) мы будем иметь в результате
> аналог 0.8 на половинном числе узлов. А это худший случай, при этом он
> оказывается не хуже альтернативного варианта. А скорее всего будет лучше.
Тут Алексей Семеняка упоминал про задачи с сильно разреженной матрицей, 
которые встречаются у химиков и квантовиков. Я знаю, что на таких 
задачах прирост производительности при добавлении новых узлов сильно 
зависит от латентности среды.
Я уже как-то приводил схему, по которой устроены такие задачи - 
небольшой счет, потом обмен данными, и так по кругу. Если получается, 
что на следующий шаг нельзя идти, не получив данные с предыдущего, то 
начинают сильно влиять характеристики интерконнекта. А если порции 
передаваемых данных невелики (например, обмен данных все ко всем, причем 
от каждого к каждому должно пролететь неколько чисел), то роль ограет 
латентность.
Конкретных задач сходу назвать не могу - надо спрашивать у тех, кто 
такими задачами занимается.

-- 
Константин Стефанов
--- ifmail v.2.15dev5.3
 * Origin: Demos online service (2:5020/400)
SEEN-BY: 46/50 50/203 520 400/814 450/159 186 247 1024 451/30 461/43 132 640
SEEN-BY: 469/999 550/196 4616/3 4625/8 4627/10 4635/4 4652/15 5000/76 5000
SEEN-BY: 5006/1 5007/1 5010/70 5011/13 5015/10 5019/31 5020/52 118 154 175 194
SEEN-BY: 5020/400 545 549 604 715 758 830 937 1057 1523 1604 1630 1922 2020
SEEN-BY: 5020/2142 2238 2450 2590 4441 5021/29 5022/128 5025/3 750 5026/45
SEEN-BY: 5027/16 5029/32 5030/49 115 473 500 556 966 1063 1900 5031/70 72
SEEN-BY: 5034/13 5035/3 38 5036/1 34 5042/13 5049/1 50 97 5051/15 5054/1 4 8 9
SEEN-BY: 5054/28 35 36 37 63 66 67 70 75 81 84 85 5055/95 5057/1 5060/88
SEEN-BY: 5061/15 120 5062/1 10 5063/3 5066/18 5067/2 5069/7 5070/1222 5074/9
SEEN-BY: 5075/5 35 5079/23 5080/80 1003 5081/2 5082/6 5083/21 5085/13 5090/108
SEEN-BY: 5095/20 5096/18 6000/12 254 6001/3 10
PATH: 5020/400 4441 545 5054/1 37