jayrandom: (Default)
jayrandom ([personal profile] jayrandom) wrote2004-12-15 05:39 pm

суперкомпьютинг имеет много гитик

Сегодня был на курсах повышения квалификации - рассказывали о том, как пользоваться LSF (Load Sharing Facility) на суперкомпьютере - как правильно и как неправильно распараллеливать процессы, как выделять ресурсы, избегать дедлоков и проч.

В качестве плохого распараллеливания был приведён пример, где пользователь (лектор отказался называть имя, но проболтался, что это была she) запустила 15000 задач на полсекунды каждую. Пять часов ушло только на то, чтобы заслать все эти процессы в очередь, а остальное время - to cool down the administrators :). Если бы задачу не распараллеливать вовсе, то друг за дружкой она бы посчиталась за 7500 секунд, т.е. примерно за два часа.

Ещё из любопытного: можно значительно сэкономить время вычислений, если ввод и вывод каждого процесса паковать на ходу, например, пайпить через gzip, а потом уже передавать по сети или записывать на диск. Запаковку/распаковку на лету узел суперкомпьютера осуществляет практически прозрачно, а вот взаимодействие с носителями и сетью для него - наиболее узкое место. Несмотря на гигабитный ethernet.

Ещё на суперкомпьютере не рекомендуется запускать программы на языке программирования Java. Того, кто этот запрет нарушит, постигнет суровая участь: его имя будет раскрыто остальным (разъярённым) пользователям суперкомпьютера :)

[identity profile] ex-pva361.livejournal.com 2004-12-15 10:35 am (UTC)(link)
последнее да, мудро :)

[identity profile] jayrandom.livejournal.com 2004-12-15 10:46 am (UTC)(link)
Видимо, были прецеденты жестокого линчевания.

[identity profile] ex-pva361.livejournal.com 2004-12-15 11:12 am (UTC)(link)
ка правильно, как верно :)

[identity profile] gnuzzz.livejournal.com 2004-12-15 11:36 am (UTC)(link)
Ещё на суперкомпьютере не рекомендуется запускать программы на языке программирования Java.
"Вы не любите кошек? Вы просто не умеете их готовить!";)))

[identity profile] jayrandom.livejournal.com 2004-12-15 12:20 pm (UTC)(link)
Ну уж нет, я в религиозные споры не ввязываюсь :)

;))))

[identity profile] gnuzzz.livejournal.com 2004-12-15 12:22 pm (UTC)(link)
кста, а что понималось под "суперкомпьютером"? Linux-кластер? Или специализированное что-то?

Re: ;))))

[identity profile] jayrandom.livejournal.com 2004-12-15 12:41 pm (UTC)(link)
Там смесь архитектур. LSF бежит поверх всех их, связывает. В основном это суперкластеры на базе Alpha5 (узлы - от 2 до 12 процессоров, стойки по 20 узлов, кажется) и обычные одномерные кластеры разнообразных Линуксов (IBM, HP/Compaq). Но ещё имеется экзотика вроде Sun-кластеров и SiliconGraphics-кластеров.

[identity profile] pendelschwanz.livejournal.com 2004-12-15 11:57 am (UTC)(link)
То есть только ФОРТРАН?

[identity profile] jayrandom.livejournal.com 2004-12-15 12:23 pm (UTC)(link)
Фортран, Си, Си++, даже Перл и Питон.
Хотя по поводу последних двух тоже слышилось поскрипывание зубами :)

Меня огорчило отсутствие любимого мной Матлаба. Но оказалось, что для запуска такой штуки на суперкомпьютере нужно много-премного индивидуальных лицензий :) Продажные твари...

[identity profile] suhov.livejournal.com 2004-12-16 06:12 am (UTC)(link)
берёшь перегоняешь матлаб в си и.. правда эту штуковину-компилятор по-моему нужно покупать
а в бытность мою аспирантскую она поставлялась бесплатно самой MathWorks

слушай ну я фигею
"даже"
без ПерлА как можно жить вообще? :) а на шелловский скрипт там тоже скрипят зубами? :)

[identity profile] jayrandom.livejournal.com 2004-12-16 07:37 am (UTC)(link)
Без ПерлА жить нельзя, ты прав. Тут очень много перлового кода задействовано, и он вполне конкурирует с компилированным по популярности.

Мне вот подумалось как-то, что если бы удалось красиво реализовать понятие хэш-таблицы на уровне компилятора Си, то Перл бы не имел такой популярности, как сейчас.

[identity profile] suhov.livejournal.com 2004-12-16 04:08 pm (UTC)(link)
ну там не только хэш
там reg-exps..да и вообще обработка строк
си надо просто хорошую библиотеку для обработки строк
ну вот как на Яве сделали

[identity profile] jayrandom.livejournal.com 2004-12-16 07:38 am (UTC)(link)
На шелл не скрипят, но на шелле никто и не пишет объёмных вычислений. А на Перле иногда пытаются. Вот тогда и скрипят :)
sanmai: (Default)

[personal profile] sanmai 2004-12-15 03:52 pm (UTC)(link)
Гласность - сильная штука.
--
Интересно как там будет летать Doom 3. 8)

[identity profile] jayrandom.livejournal.com 2004-12-16 03:18 am (UTC)(link)
Чтобы Дум там летал, его нужно хорошо распараллелить. Потому что сами процессоры на кластерном суперкомпьютере не сильно отличаются от тех, что в магазине можно купить. Ну, максимум в пару раз, а то и вообще такие же. Ускорение же в том, что их много.

Кроме того, насколько я понимаю, bottleneck'ом тут станет как раз пропускная способность канала с видеокартой. Нарисовать-то нарисовали в памяти, а дальше это всё надо быстро-быстро успевать отображать. А это не самая сильная сторона суперкомпьютера.

[identity profile] b-my.livejournal.com 2004-12-15 06:13 pm (UTC)(link)
Задумался...
А ведь и верно, простым алгоритмом пакуют нынешние машины несколько быстрее, чем прокачивают в винт/сетевуху... Но чтобы _значительно_ускорить_ этим?.. Разве что надо очень большие объемы гнать и пропускной способности не хватает физически... ну так это от задачи зависит.

А эта рекомендация насчет зипа - она безусловная? Что-то тут явно не то.

[identity profile] jayrandom.livejournal.com 2004-12-16 03:22 am (UTC)(link)
Видимо, в меру. Нам просто сказали, что если ваш алгоритм порождает/анализирует большие потоки текста, то be nice to your colleagues и пакуйте этот свой текстовый I/O на лету в обе стороны - сэкономите себя и машину.

Кстати,

[identity profile] gnuzzz.livejournal.com 2004-12-16 05:29 am (UTC)(link)
запустила 15000 задач на полсекунды каждую. Пять часов ушло только на то, чтобы заслать все эти процессы в очередь, а остальное время - to cool down the administrators
Оно что, пока в очередь все на запихает, работать не начнет?%)

Re: Кстати,

[identity profile] jayrandom.livejournal.com 2004-12-16 05:55 am (UTC)(link)
Конечно, начнёт. Просто большинство задач могло повиснуть в очереди по разным причинам. В том конкретном случае был очень сильно перегружен планировщик очередей, а сам суперкомпьютер, можно сказать, "простаивал".

[identity profile] azgar.livejournal.com 2004-12-16 06:14 am (UTC)(link)
Три тысячи задачек в час, по секунде на задачку? Нешустро они стартуют...
Запаковка ввода-вывода перед передачей -- интересная идея.
А вот за что они так Жабу нелюбят? Нешто у них нету нормальной JVM, которая будет треды по узлам раскладывать?

[identity profile] jayrandom.livejournal.com 2004-12-16 07:58 am (UTC)(link)
Стартуют столько, сколько может пропустить менеджер очереди. Это специальный выделенный блин кластера, который только тем и занимается, что по гигаэзернету дёргает остальные блины, опрашивает их статус, раздаёт им задачки, принимает ответы, разливает-сливает данные, итэдэ.

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

Насчёт запаковки я ещё такую штуку придумал. Можно же заливать на суперкомп исходник. А там его компилировать (для разноархитектурных блинов в разный код) и сразу же запускать. Жалко, юниксовый шелл не умеет такие штуки делать - "запустить слинкованный код, переданный по пайпу" :)

Насколько я знаю, для Жабы нет специального внутреннего шедуляйзера, вся планировка работает через LSF. А LSF не предназначена для внутреннего дробления процессов. Она просто берёт процесс как целое, меряет его разными мерками и запускает на подобающем железе.

Но даже не multi-shitty-threading - проблема Жабы. А неэффективный garbage collector, который "отложил и неизвестно". Вот это действительно ужас ужасов, особенно при разделяемых ресурсах. По сравнению с ним в Перле сборка мусора осуществляется достаточно эффективно: как только на объект исчезла последняя ссылка, он ресайклится. Конечно, его можно обмануть (например, слить ссылку в файл, как число, и стереть из памяти), но в основном такие примеры искусственны.

[identity profile] azgar.livejournal.com 2004-12-17 12:57 am (UTC)(link)
Ну, Жаба, в общем-то, на параллельные вычисления особо и не затачивалась, на сколько я знаю. То есть, на раскидывание тредов по кластеру. Там кластеризация немного на более высоком уровне делается.