Как я должен изучать создание и программирование систем HPC?

16

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

В то же время, однако, большая часть работы, которую я выполняю, могла бы выиграть от более эффективного использования доступных мне ресурсов HPC - в основном в форме приятно параллельных симуляций Монте-Карло.

Моя проблема в том, чтобы найти ресурсы для обучения работе с кластерами, MPI и т. Д. И отделить хорошее от плохого, учитывая, что я мало что знаю.

Какие-нибудь предложения для книг или о программировании на этих типах систем, или об установке и запуске очень скромных собственных установок HPC?

фомиты
источник
Должно ли это иметь что-то вроде тега «большой список»?
Шухало
@ Мартин: нет. Он должен иметь ответы от людей, которые на самом деле сделали это и знают, о чем они говорят, а не гигантский список всего, что может быть связано. Изменено название, чтобы отразить это.
Shog9

Ответы:

13

Проверьте университет HPC . В частности, раздел ресурсов , который включает в себя такие вещи, как

и многое другое.

Есть много программ высшего образования, которые включают курсы в HPC . Например, моя собственная программа включает в себя курсы

  • Высокопроизводительные вычисления (2 семестра)
  • Парадигмы параллельного программирования
  • Научная разработка программного обеспечения
  • Программирование GPU и GPGPU

а также различные курсы в области научных вычислений и численного анализа.

Дэвид Кетчесон
источник
4

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

Я не уверен, что все согласятся, но я думаю, что список областей, связанных с HPC, может быть:

Каждая из этих областей очень велика, и в ней так много знаний, что трудно все схватить, прежде чем пытаться что-либо сделать!

В моем случае, я начал с одного угла инженерного дела и медленно развивал опыт и сеть сотрудничества. В самом начале у меня была только одна проблема инженерной / прикладной математики, которую я хотел решить, оттуда я перешел к программированию, к повышению производительности с помощью более мощных компьютеров, к численному анализу, к усовершенствованным алгоритмам, к параллельным компьютерам, к параллельным алгоритмам. к более крупным компьютерам, к более полной научной модели, и, в конечном итоге, к новой проблеме, и снова повторялось. Если я оглядываюсь назад, то пытаясь понять и решить мою первую проблему, я разработал план обучения. Наличие руководителя, который может удержать вас на правильном пути, также очень помогает, иначе будьте осторожны, чтобы не упустить из виду вашу конечную цель (в моем случае, это была научная проблема, которая у меня была под рукой).

Если я хочу назвать одну вещь, которая действительно имеет значение при переходе по пути HPC, это познакомиться с людьми из других областей, обменяться идеями и воспользоваться распространенными знаниями сообщества. Кроме того, важно не бояться быть открыто наивными и делать глупости. Первые шаги всегда сложные и самые важные!

fcruz
источник
2

Это мой план учить себя основам HPC этой весной. Я был разработчиком последние полтора десятилетия и работаю исключительно с технологиями Microsoft. Я также студент, поэтому я могу получить некоторое программное обеспечение бесплатно через MSDN Academic Alliance(в вашем профиле указано, что вы аспирант, поэтому вам следует проверить, участвует ли ваша школа), а наличие места для вещей дома является ограничивающим фактором. В моем офисе / den / ManCave уже есть несколько компьютеров, поэтому я уже могу протестировать некоторые вещи. Windows Server 2008 HPC указан в некоторых доступных пакетах, но, похоже, он исчез из загружаемого программного обеспечения моей школы в прошлом семестре («кластерный вычислительный пакет» является надстройкой для сервера 2003, в то время как сервер 2008 hpc поставляется с урезанной версией). на сервере 2008 с помощью ccp вам придется отключить ненужные сервисы).

Моя запланированная топология - это «SOA Enabled Cluster», который является четвертым изображением на этой странице (нажмите на крошечные квадраты под основным изображением). У меня уже есть Active Directory и некоторые другие серверы, которые я уже настроил, поэтому я думаю о том, чтобы вывести 4 дешевых компьютера Dell малого форм-фактора с eBay (восстановленный Dell 655 SFF, похоже, работает на уровне 100-200 долларов). Так как я только пытаюсь изучить некоторые вещи, я считаю, что мне нужен только «головной узел», «узел брокера» и 2 «вычислительных узла» и несколько запасных карт Ethernet, чтобы увидеть, что частные и прикладные шины (из этого образа ) делать. Лицензия MSDNAA разрешает до 16 вычислительных узлов, что гораздо больше, чем я ищу.

Я читал Beowulf Cluster Computing с Windows , и я думаю, что у меня есть идея , с которой я сталкиваюсь за некоторые идеи в офисе (есть версия книги для Linux, но у меня 0 навыков / платформ для Linux) дома - делай то, что правильно для себя). В офисе есть много больших кластеров , но они уже насыщены, и образовательные временные интервалы "Я хочу / нужно учить Х" очень трудно получить. Ожидается, что вы уже знаете материал, прежде чем сможете отправлять работу.

Tangurena
источник