Часть компьютера которая выполняет вычисления мощный компьютер для решения задач особой сложности

Обновлено: 04.07.2024

Тем временем в мире простаивают без дела технические средства с совокупной вычислительной мощностью, способной заткнуть за пояс все суперкомпьютеры мира. Этот пока малоосвоенный резерв – процессоры и видеокарты наших персональных компьютеров, а также игровые приставки. Владельцу ПК совсем не сложно подключить его к глобальной сети распределенных вычислений (distributed computing), которая уже обеспечила десятки научных проектов недостающими вычислительными ресурсами.

Персональные компьютеры – волонтеры на службе Её Величества Науки

Распределенные вычисления - это возможность любому пользователю компьютера помочь делу научного прогресса

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

Большинство проектов распределенных вычислений носят некоммерческий характер, хотя некоторые предлагают своим участникам денежное вознаграждение за искомое событие. Например, организаторы GIMPS (Great Internet Mersenne Prime Search) – проекта поиска простых чисел Мерсенна – обещают поделиться наградой в TeX Embedding failed!100,000 за нахождение простого числа, содержащего более 10 млн. цифр.

Ярким примером того, насколько эффективным может стать вовлечение пользователей персоналок в науку, является организованный в стенах Стенфордского университета проект по исследованию фолдинга (сворачивания) белков человеческого организма - Folding@home. Единовременно на решение задач в этом проекте трудится более 365 тысяч процессоров, разгоняя Folding@home до невероятной вычислительной мощности в 4,7 петафлоп. Никакой суперкомпьютер не выдержит конкуренции с распределенной сетью такой производительности, да еще ежедневно увеличивающей вычислительный потенциал за счет новых участников. Даже мировой рекордсмен – американский суперкомпьютер Cray XT5 Jaguar из Национального центра вычислительных наук уступает по производительности проекту Folding@home почти в три раза.

Проект Folding@home - самая высокопроизводительная вычислительная система в мире

За девятилетнюю историю развития проекту Folding@home удалось пролить свет на многие проблемы молекулярной биологии и вплотную приблизиться к давней мечте биофизиков – разгадке тайны фолдинга. Эта система помогла смоделировать структуру первого в истории искусственного белка, исследовать мутации генов, вызывающих генетические заболевания, а также изучать влияние множества внешних и внутренних факторов на сворачивание малых и больших белков человеческого организма.

Важность подобного проекта трудно переоценить в свете значения белков для организма человека: ферменты участвуют в обмене веществ, тромбины помогают сворачивать кровь, иммуноглобулин защищает от болезнетворных бактерий и вирусов, гемоглобин транспортирует кислород к тканям и т.д. Эти функции белки начинают выполнять после сворачивания (фолдинга) из первоначальной линейной цепочки аминокислот в строго определенную трехмерную молекулярную структуру. Отклонения от заданной формы ведут к нарушениям свойств белка или полной его неработоспособности, а накопление неправильно свернувшихся белков в человеческом организме вызывает ряд тяжелых заболеваний: многие формы рака, болезни Альцгеймера, Паркинсона и Хантингтона, склероз, коровье бешенство, диабет и многие другие.

SETI@home: в поисках радиосигналов от братьев по разуму

Радиотелескоп астрономической обсерватории Аресибо

Когда компьютеров еще не было

Распределенные вычисления имеют историю, которая началась еще во времена безраздельного господства счётов, как главного вычислительного инструмента.

Барон смело взял на вооружение идею о разделении труда и перенес ее принципы на вычислительный процесс. Исполнители проекта были распределены на три уровня. Низший уровень в системе занимали обыкновенные люди-вычислители, от которых требовалось производить аккуратные арифметические действия. На втором уровне стояли образованные счетоводы, которые организовывали рутинный процесс, распределяя задания и обрабатывая полученные вычислителями данные. Высшую ступень занимали выдающиеся французские математики, среди которых были Адриен Лежандр и Лазар Карно, они готовили математическое обеспечение для вычислительной мануфактуры и обобщали полученные результаты. В итоге барону де Прони удалось организовать процесс таким образом, чтобы свести очень сложные задачи к набору рутинных операций, благодаря четкой системе контроля и хорошо отлаженной системе распределения работы между вычислителями. К сожалению, работа не была закончена из-за революционных событий 1799 года во Франции.

Когда компьютеры были большими

Идея совместного использования вычислительных ресурсов нескольких машин возникла еще на заре компьютерной эпохи. В 1973 г. Джон Шох и Жон Хапп из знаменитого калифорнийского научно-исследовательского центра Xerox PARC (Palo Alto Research Center), написали программу, которая по ночам запускалась в локальную сеть PARC, расползалась по работающим компьютерам и заставляла их выполнять вычисления.

Качественный скачок в обеспечении совместной работы многих компьютеров над единой задачей произошел с появлением первых персональных компьютеров и электронной почты. В 1988 г. Арьен Ленстра и Марк Менес написали программу для факторизации (разбиения на множители) длинных чисел. Для ускорения процесса программа могла запускаться на нескольких не связанных друг с другом машинах, каждая из которых обрабатывала свой небольшой фрагмент числа. Новые блоки заданий рассылались на компьютеры участников с центрального сервера проекта по обычной электронной почте. Для успешного разложения на множители числа длиной в сто знаков этому сообществу потребовалось два года и несколько сотен персональных компьютеров. С успешным завершением проекта Ленстра-Менеса на древе эволюции вычислительных систем выросла новая жизнеспособная ветвь – распределенные вычисления.

После успешного окончания проекта Ленстра-Менеса в ходу были проекты различных математических исследований. В 1993 г. участники одного из таких проектов факторизовали число длиной 129, потом – 130 знаков. Затем пошла мода на поиск простых чисел. Эти проекты не отличались ни технической проработанностью, ни большим количеством участников. Но так продолжалось недолго.

Когда компьютеров стало много

17 мая 1999 г. Дэвид Геди и Крэйг Кэснов из Лаборатории космических исследований Калифорнийского университета в Беркли запустили распределенный проект поиска сигналов внеземных цивилизаций SETI@home, который до сих пор остается одним из наиболее массовых проектов. Огромной популярности способствовало то, что впервые была переведена на рельсы распределенных вычислений интригующая научная задача, далекая от скучной факторизации или взлома очередного ключа.

Распределенные вычисления многим обязаны организаторам SETI@home из Беркли, в особенности – появлением универсальной платформы BOINC (Berkeley Open Infrastructure for Network Computing) для запуска новых проектов. Первоначально BOINC разрабатывался исключительно для SETI@home, но вскоре достоинства программного комплекса смогли оценить и другие научные коллективы. Сегодня количество проектов на этой платформе уже перевалило за сотню. За такой вклад в развитие науки разработчики BOINC неоднократно награждались американским Национальным научным фондом.

На компьютеры пользователей устанавливается клиентская часть платформы, так называемый BOINC-клиент. Эта удобная программа позволяет подключаться сразу к нескольким проектам, вести статистику своего участия в них и наблюдать за протеканием вычислений. Практически каждый, кто обладает базовыми навыками программирования и у кого найдется достойная поддержки научная идея, может организовать собственный проект распределенных вычислений на основе BOINC. Так сделал, например, физик Константин Метлов из Донецкого физико-технического института (ДонФТИ). Практически в одиночку ученый смог запустить проект Magnetism@home по расчету магнитных конфигураций цилиндрических наноэлементов. Несмотря на сложную для понимания научную тему, проект быстро набрал нужные вычислительные ресурсы.

Многоядерные графические процессоры оправдали все надежды, показывая феноменальную производительность в 100 гигафлоп и более. Этот технологический прорыв сделал Folding@home наиболее мощной вычислительной системой на планете. Другие проекты также не заставили себя долго ждать и рьяно взялись использовать потенциал графических процессоров видеокарт для ускорения вычислений, причем не только в биологии, но и в астрофизике, радиоастрономии, математике.

На любой вкус и цвет

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

Большое поле приложения вычислительных мощностей наших компьютеров предлагает астрономия. После SETI@home в исследовании загадок Вселенной нет равных проекту Einstein@home – совместному детищу ученых из Института Альберта Эйнштейна в Берлине, Массачусетского технологического института и др. научных организаций. Проект занят наблюдением вращающихся нейтронных звезд (пульсаров) с целью обнаружения гравитационных волн, предсказанных Эйнштейном в рамках Общей теории относительности. Для этого более 100 тысяч компьютеров активных участников проекта круглосуточно анализируют данные с двух интерферометров гравитационно-волновых обсерваторий LIGO (Laser Interferometer Gravitational-Wave Observatory) и германского интерферометра GEO 600.

В изучении белков помимо Folding@home участвуют другие проекты: Rosetta@home, Predictor@home, SIMAP, Human Proteome Folding (WCG) и другие. На этом перечень биоинформационных исследований с помощью распределенных вычислений далеко не исчерпывается. Многое в этой области сделано объединением World Community Grid (WCG) и его главным спонсором – компанией IBM.

Задачей WCG является организационно-техническая поддержка целой группы проектов, большинство которых относятся к области медицины человека. Например, разработкой новых средств профилактики синдрома приобретенного иммунодефицита (СПИД) занимается проект FightAIDS@home, организованный учеными из Исследовательского института Скриппса в Ла-Джолле (Калифорния). Проект Help Conquer Cancer Института рака в Онтарио анализирует данные рентгеновской кристаллографии белков, участвующих в развитии раковых заболеваний. Результаты этих исследований помогут лучше понять природу рака, разработать новые способы его диагностики и лечения. А в проекте Help Fight Childhood Cancer, который поддерживают ученые из Института по исследованию Рака в префектуре Чиба (Япония), ищут лекарства от нейробластомы – особого вида раковых опухолей, поражающих преимущественно детей.

В рамках других проектов WCG исследуются новые материалы для солнечных батарей, ищутся перспективные лекарственные вещества от вирусов гриппа и лихорадки, анализируются белковые последовательности риса и многое другое.

Подключиться к World Community Grid очень просто:

• Зарегистрируйтесь на сайте World Community Grid, запомните свой логин и пароль.

• Не выходя из своей учетной записи выберите заинтересовавшие вас научно-исследовательские проекты, в которых вы хотите участвовать (желательно поставить флажок возле надписи “If there is no work available for my computer for the projects I have selected above, please send me work from another project.”)

• Скачайте, установите и откройте BOINC-менеджер.

• После этого BOINC предложит вам ввести ваши логин и пароль и начнёт загрузку файлов проекта. Поздравляем, вы теперь участник распределенных вычислений!

Теоретическая химия тоже завоевала место под солнцем распределенных вычислений. Например, ученые из Мюнстерского университета в рамках проекта QMC@home (Quantum Monte Carlo At Home) отрабатывают применимость алгоритмов статистических методов Монте-Карло в решении задач квантовой химии. С помощью того же Монте-Карло совершенствуют методологию моделирования межатомного взаимодействия в твердых телах в Техасском университете в городе Остин. Для вычислительной поддержки этих исследований создан проект eOn, где уже достигнуты успехи в исследовании каталитических реакций в присутствии наночастиц.

Климатологи относятся к группе ученых, которым нужно особенно много вычислительных ресурсов для совершенствования методов моделирования. Одним из инструментов такого рода является ClimatePrediction – проект Оксфордского университета по изучению изменений климата. С 2002 года участники проекта успели проверить более 400 тысяч вариантов климатических моделей с общим модельным временем 40 миллионов лет. Это позволило значительно повысить точность прогнозирования параметров нашего климатического будущего.

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

Суперкомпьютеры: титаны вычислений

Эти сверхмашины могут выполнять сложнейшие задачи и по своим характеристикам превосходят большинство компьютеров, с которыми мы сталкиваемся в обычной жизни. И хотя суперкомпьютеры до сих пор кажутся чем-то далеким, мы все чаще пользуемся результатами их работы: от поиска в интернете и прогнозов погоды до новейших лекарств и самолетов.

В 2019 году холдинг «Росэлектроника» создал новый суперкомпьютер «Фишер» для Российской академии наук. Разработка Ростеха поможет физикам в решении задач молекулярной динамики. Рассказываем о том, что такое супер-ЭВМ и где они применяются.

Супер-ЭВМ: квадриллион операций в секунду

Точного определения, что такое «суперкомпьютер», не существует. Компьютерная индустрия находится в постоянном развитии, и сегодняшние супермашины завтра уже будут далеко позади. Можно сказать, что суперкомпьютер – это очень мощный компьютер, который способен обрабатывать гигантские объемы данных и производить сложнейшие расчеты. Там, где человеку для вычислений нужны десятки тысяч лет, суперкомпьютер обойдется одной секундой. И если в 1980-х суперкомпьютером в шутку предлагали называть любые ЭВМ, весящие более тонны, то сегодня они чаще всего представляют собой большое количество серверных компьютеров с высокой производительностью, объединенных высокоскоростной сетью.

Современный суперкомпьютер – это огромное устройство, состоящее из модулей памяти, процессоров, плат, объединенных в вычислительные узлы, связанные между собой сетью. Управляющая система распределяет задания, контролирует загрузку и отслеживает выполнение задач. Системы охлаждения и бесперебойного питания обеспечивают беспрерывную работу супер-ЭВМ. Весь комплекс может занимать значительные площади и потреблять огромное количество энергии.

Производительность суперкомпьютеров измеряется во флопсах – количестве операций с плавающей запятой, которые система может выполнять в секунду. Так, например, один из первых суперкомпьютеров, созданный в 1975 году американский Cray-1, мог совершать 133 миллиона операций в секунду, соответственно, его пиковая мощность составляла 133 мегафлопс. А самый мощный на июнь 2019 года суперкомпьютер Summit Ок-Риджской национальной лаборатории обладает вычислительной мощностью 122,3 петафлопс, то есть 122,3 квадриллиона операций в секунду.

Lomonosov2.jpg

Суперкомпьютер «Ломоносов-2». Фото: «Т-Платформы»

Существует международный рейтинг топ-500, который с 1993 года ранжирует самые мощные вычислительные машины мира. Данные рейтинга обновляются два раза в год, в июне и ноябре. В 2019 году в первую десятку входят суперкомпьютеры США, Китая, Швейцарии, Японии и Германии. Единственный отечественный суперкомпьютер в первой сотне рейтинга − «Ломоносов-2» из Научно-исследовательского вычислительного центра МГУ производительностью 2,478 терафлопс, занявший в июне 2019 года 93-е место.

Чтобы определить мощность суперкомпьютера, или, как его еще называют в английском языке, «числодробилки» (number cruncher), используется специальная тестовая программа, которая предлагает машинам решить одну и ту же задачу и подсчитывает, сколько времени ушло на ее выполнение.

Что могут «числодробилки»

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

Ростех создал модульный суперкомпьютер «Фишер» для Российской академии наук

С развитием информационных технологий и применением их на практике появились новые направления на стыке информатики и прикладных наук – вычислительная биология, вычислительная химия, вычислительная лингвистика и многие другие. Суперкомпьютеры используются для создания искусственных нейросетей и искусственного интеллекта.

Именно сверхмощным компьютерам мы обязаны появлением точных прогнозов погоды. Суперкомпьютеры совершили революцию в медицине, в частности – в диагностике и лечении рака. С их помощью обрабатываются миллионы диагнозов и историй болезней, выявляются новые закономерности развития заболевания и вырабатываются новые способы лечения. Сверхумные машины применяются для расчета химических соединений, на основе которых изготавливаются новые лекарства. Масштабные расчеты помогают в сферах, связанных с проектированием: строительстве, машиностроении, авиастроении и других.

Суперкомпьютер с «бесконечным» масштабированием

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

Структуры Ростеха в числе прочих российских предприятий вносят свой вклад в создание отечественной киберинфраструктуры. В сентябре 2019 года холдинг «Росэлектроника» объявил о запуске суперкомпьютера «Фишер» с пиковой производительностью 13,5 Тфлопс и практически неограниченными возможностями для масштабирования. Машина разработана специалистами холдинга для Объединенного института высоких температур Российской академии наук (ОИВТ РАН). Новый суперкомпьютер поможет ученым-физикам в создании цифровых моделей веществ и прогнозе поведения материалов в экстремальных состояниях.

Суперкомпьютер «Фишер» состоит из 24 вычислительных узлов с 16-ядерными процессорами. Для улучшения терморегуляции вычислительного кластера «Фишера» используется иммерсионная (погружная) система охлаждения. Благодаря ей суперкомпьютер не требует специально оборудованных помещений и может работать при температурах от ‒50 °С до +50 °С. Подобные системы охлаждения применяются сегодня на самых высокопроизводительных машинах мира.

cCEMJKz2hN.jpg

«Фишер» создан на основе коммуникационной сети «Ангара» − первого российского интерконнекта, позволяющего объединять группы машин в мощные вычислительные кластеры. С помощью «Ангары» можно соединять тысячи компьютеров разных производителей и с разной архитектурой центральных процессоров. Коммутаторное исполнение «Фишера» позволяет компоновать компьютеры с большей плотностью и в целом облегчает сборку и использование всей системы за счет уменьшения числа кабелей. Модульный характер системы позволяет масштабировать мощность «Фишера» под любые нужды.

Ученые из ОИВТ РАН уже несколько лет используют суперкомпьютер DESMOS мощностью 52,24 Тфлопс, созданный на базе предыдущего поколения сети «Ангара». Его вычислительные мощности оказались настолько востребованы, что было принято решение о создании «младшего брата» этого суперкомпьютера уже на базе нового поколения коммутационной сети.

Что нужно чтобы вскопать огород? При наличии огорода, нужны рабочие инструменты и рабочая сила (работники). А что делать если нужно вскопать быстрей или больше? Можно позвать друзей или нанять других людей, то есть увеличить число работников. Вот это и является примером высокопроизводительного вскапывания огорода. Не всегда можно увеличивать производительность вскапывания огорода путём поиска сильных работников, так как производительность каждого отдельно взятого работника ограничена. Потому и приходится прибегать к услугам большего числа работников.

Аналогично и с высокопроизводительными вычислениями. Работниками (анг. workers) так и называются отдельные компьютеры и процессорные ядра в вычислительных кластерах, если опираться на терминологию пакета МАТЛАБ (англ. MATLAB). В документации других кластеров эти ядра и компьютеры называются нодами (англ. nodes), так и буду их называть в этой заметке.

Просто о сложном: высокопроизводительные вычисления для инженерных и научно-исследовательских задач

Введение

На Хабрахабре уже много писалось о высокопроизводительных, распределённых и параллельных вычислениях (ВВ). freetonik уже сделал подробное и наглядное введение в параллельные вычисления и продолжение тут, ВВ были рассмотрены автором keleg в тут, теория распределённых вычислений была раскрыта в заметке автора mkosyakov, Melges описал опыт организации параллельных вычислений по сети на Си и XakepRU описал как можно распараллелить процессы в Linux. Перечитав их я понял что нет заметки которая могла бы помочь начать использовать ВВ для решения инженерных и научных задач. Это скорее всего общая особенность многих источников информации по данной тематике. Программисты пишут хорошие программы которые выполняют возложенные на них задачи. Университетские преподаватели доступно объясняют как и почему стоит использовать высокопроизводительные вычисления. Но как только исследователи осознают что им пора воспользоваться ВВ, то они сталкиваются с малым числом 'мостиков' которые связывают понимание ВВ с непосредственным использованием ВВ систем в их работе. В университетах студенты могут найти такой 'мостик' на лабораторных и практических работах. А я попробую восполнить этот пробел в надежде что материал будет полезным для тех кто этого не изучал и поможет им начать пользоваться ВВ. Сначала будет краткое введение в ВВ, после чего будут рассмотрены возможности использования МАТЛАБ, HPCondor суперкомпьютеров.

Высокопроизводительные вычисления (ВВ) приходят на помощь в тех случаях когда нужно сократить время расчётов или получить доступ к большему объёму памяти. Например, ваша программа может проводить необходимые вычисления в течение недели, но вам нужно получить результаты завтра. Если разделить эту программу на части и выполнять каждую из них на отдельном ноде, то теоретически можно ускорить расчёты пропорционально числу вовлечённых нодов. Но это только теоретически, а на практике этому всегда что-то мешает (о чём подробно писалось тут). Тут стоит упомянуть и другой случай, когда ваша программа требует большой объём оперативной памяти. Например, в вашем компьютере установленно только 4 Гб оперативной памяти, но для расчётов нужно хотя бы 64 Гб. В системах ВВ на каждом ноде установленна память определённой ёмкости. Так если каждому ноду доступно 2 Гб памяти, то опять же можно разделить программу на 32 части, каждая из которых будет выполняться на отдельном ноде, будет взаимодействовать с другими частями, обмениваться данными и, в конечном итоге, программа в целом будет иметь доступ к 64 Гб памяти.

Из этих примеров вы наверняка поняли что высокопроизводительные вычисления – это вычисления проводимые на компьютерных системах со спецификациями, которые значительно превышают обычные компьютеры. Это понятие условное, возможно есть и более точное определение, но я его сейчас не смог найти. Существуют параллельные, распределённые ВВ, а так же их комбинации.

Параллельные вычисления предусматривают разработку программ, которые во время их выполнения представляют собой несколько параллельных и взаимодействующих между собой процессов. Например, моделирование характеристик ячейки солнечной батареи предусматривает взаимодействие трёх моделей описывающих: перенос носителей заряда, распространение падающего света внутри ячейки, температурные эффекты, растяжение-сжатие. Так перенос носителей, растяжение-сжатие и показатель преломления материала, который используется в оптической модели падающего света, зависят от температуры и модели, описывающие эти эффекты, должны взаимодействовать друг с другом в процессе расчёта. Чтобы ускорить расчёты можно код модели описывающей транспорт носителей выполнять на одном ноде, код отвечающий за распространение света – на другом, температурную модель – на третьем, и так далее. То есть, ноды будут выполнять взаимодействующие расчёты параллельно.

Распределённые вычисления предусматривают использование нескольких не взаимодействующих друг с другом нодов и процессов. Очень часто в таком случае выполняется один и тот же код на разных нодах. Например, нам нужно оценить растяжение и сжатие той же ячейки солнечной батареи в зависимости от температуры. В таком случае, температура – входной параметр модели и один и тот же программный код этой модели можно выполнить на разных нодах для разных значений температуры.

  • как конечный пользователь взаимодействует с системой ВВ;
  • какие ВВ системы доступны и какие у них ограничения;
  • о кластерах построенных при помощи ПО Кондор (англ. Condor) и МАТЛАБ (выбор пал на них просто по причине опыта автора с ними);
  • немного о суперкомпьютерах и гридах;
  • и о том как всем этим хозяйством можно можно воспользоваться.
Взаимодействие пользователя с системой высокопроизводительных вычислений
  • подготавливать программы для запуска на системах ВВ;
  • запускать расчёты на системах ВВ либо подключаться к системам ВВ для запуска программ;
  • на котором он будет обрабатывать результаты расчётов.

Тут многое зависит от личного предпочтения пользователя, доступности нужного программного обеспечения и других требований. Есть возможность выбора языка программирования, операционной системы рабочего компьютера и кластера, используемых программных библиотек и ПО для организации кластеров. Лично я всё время пытаюсь писать программы на С или С++ с использованием MPI и openMP для Линукс (тут и тут уже есть хорошие статьи по этой теме этих пап и мам высокопроизводительных вычислений ), но по разным причинам это не всегда получается. Типичная ситуация – приходит шеф в пятницу и говорит что нам срочно нужны результаты. Заканчивается это тем что пишется программа в МАТЛАБ для проведения нужных расчётов. А чтобы быстрей получить результаты, эта программа работает на кластере МАТЛАБ нашей организации до понедельника.

Что касается операционной системы рабочего компьютера пользователя, то в большинстве случаев удобней всего использовать ту же операционную систему и её дистрибутив что установленна на системе ВВ. В данный момент большинство ВВ систем работает под управлением различных дистрибутивов Линукс. Если на нашем кластере стоит Scientific Linux, то и на рабочий компьютер проще поставить эту же систему чтобы в дальнейшем не путаться в командах. Если планируете использовать кластер на базе МАТЛАБ, то выбор операционной системы роли не играет, так как программы написанные на МАТЛАБ могут выполняться на компьютерах с любыми ОС (доступными для установки МАТЛАБ, естественно).

Если же вы выбираете смешанную схему, при которой у вас на компьютере установлена ОС семейства MS Windows, а ВВ система построена на ОС Линукс, то вам понадобится клиент для подключения к удалённой системе (например, PuTTY), и, возможно X-сервер или же сразу Cygwin, в котором это всё есть. В выборе программного обеспечения вам всегда помогут локальные администраторы ВВ системы.

Важный момент: ВВ системы обычно либо не поддерживают программы требующие работы в интерактивном режиме (которые в процессе выполнения запрашивают ввод данных, ожидают других действий пользователя таких как нажатие клавиш или манипуляций мышкой) или поддерживают их ограниченно. Аналогично и в отношении графического интерфейса – его использование чаще всего не предусмотренно и ВВ системы используются в текстовом режиме из командной строки (исключение — тот же МАТЛАБ). Перед использованием вашей программы в ВВ системе, она должна быть отлажена и потом преобразована так чтобы она могла быть запущенна на ВВ системе и без дальнейшего вмешательства человека она провела расчёты и сохранила результаты в файлах либо передала их пользователю другим способом.

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

Некоторые системы ВВ
Общий обзор

Чаще всего для проведения ВВ используются суперкомпьютеры, компьютерные кластеры и гриды (англ. computing grids).
Суперкомпьютеры – компьютерные системы, значительно превышающие большинство существующих компьютеров по своим параметрам таким как производительность, доступная оперативная память, доступное число процессоров. Для большей информации о них вы можете посмотреть список пятиста самых производительных суперкомпьютеров мира.

Компьютерный кластер – группа компьютеров, которые могут взаимодействовать друг с другом для наращивания доступной памяти и числа процессоров вовлечённых в работу. Чаще всего такие кластеры строятся внутри исследовательских групп или организаций.

Гриды – это группы кластеров и суперкомпьютеров, разбросанных по разным городам и странам. Так, например, вы можете передать свою вычислительную задачу на сервер в Швейцарии, но она будет выполняться либо на кластерах в Германии, Франции или Польше. Наиболее известный пример грида – европейская грид-система EGEE, объединяющая в себе около сорока тысяч процессоров и несколько петабайтов дискового пространства.

Конечному пользователю часто сложно или не возможно различить суперкомпьютеры и кластеры. Вот три примера:

1. Не редко суперкомпьютерами называют и группу компьютеров подключённых друг к другу через высокоскоростные сети связи, что по сути — тот же самый компьютерный кластер;

2. В то же время существуют кластеры построенные на базе программного обеспечения HPCondor, это так же группа компьютеров взаимодействующих с сервером в локальной сети (часто – медленной сети) и не кто не рискнёт назвать такие кластеры суперкомпьютерами;

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

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

Кластеры HPCondor (англ. Condor, после 2012 года — HTCondor)

Программное обеспечение для организации такого кластера можно загрузить бесплатно со страницы проекта. Кластеры данного типа состоят из рабочих компьютеров и сервера. К комментариях dunordavind сделал важное уточнение: такие системы ВВ — не кластеры в классическом смысле, а скорее менеджеры ресурсов (но чтобы не переписывать весь текст я далее всё равно буду называть их кластерами). Преимущество такого кластера в том что рабочими компьютерами могут выступать обыкновенные офисные и лабораторные компьютеры на которых установленно клиентское ПО. В дневное время эти компьютеры могут использоваться для основной работы, но как только ими перестают пользоваться (это зависит от настроек) сервер начинает запускать на этих компьютерах задачи которые были переданы ему ранее. Обязательным условием использования этого кластера является установка клиентского ПО и на тот компьютер, с которого пользователи передают задачи. То есть и их компьютер должен быть частью кластера. Поддерживаемые операционные системы: MS Windows, MacOS и Linux.

Для выполнения программы, эта программа должна быть скомпилирована в исполняемый код для нужной ОС и вместе с необходимыми библиотеками передана на сервер. Это применимо и к программам написанным для МАТЛАБ – вам так же необходимо откомпилировать их используя компилятор C, который поставляется с МАТЛАБ. Для запуска этой программы в кластере, необходимо написать простой конфигурационный скрипт, в котором записаны требования к среде выполнения вашей программы (размер оперативной памяти, операционная система и так далее) и список передаваемых вместе с этой программой файлов. В качестве примера ниже приведён текст из одного из таких файлов (назовём его cost_top.txt):

Содержимое файла cost_top.bat, который выполняется на ноде:

Скорее всего вы поймёте, что первая строка в этом скрипте отвечает за добавление нужных путей в переменную окружения, вторая – за запуск нужной нам программы.

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

  • с момента постановки задачи в очередь и до момента окончания расчёта ваш клиентский компьютер должен быть включён и подкючен к локальной сети так как сервер и клиент обмениваются файлами;
  • данный кластер поддерживает только распределённые ВВ задачи;
  • есть сложности в использовании какой-либо сторонней программы (отличной от написанной и откопелированной вами) и программ требующих множества библиотек.
Кластеры МАТЛАБ

МАТЛАБ сам по себе способен создать кластер. Для этого вам понадобится соответствующие библиотеки и сервер — Distributed Computing Toolbox и Distributed Computing Server. Сейчас современные процессоры компьютеров имеют более чем одно ядро и МАТЛАБ способен развернуть ваш собственный локальный кластер прямо на базе вашего рабочего компьютера. Такая конфигурация кластера известна как локальная конфигурация. Она удобна в тех случаях когда хочется немного ускорить расчёты без особых усилий как и тогда когда требуется протестировать программу перед её стартом на более серьёзной ВВ системе такой как суперкомпьютер или кластер.

Наряду с локальной конфигурацией существует и другие конфигурации. Например для кластера объединяющего группу компьютеров в локальной сети, группу компьютеров в кластере или в гриде. Если у администраторов есть возможность и они не ленятся, то они обычно настраивают кластеры МАТЛАБ и проводят обучающие курсы для того чтобы пользователям было легко пользоваться такими кластерами.

  • клиентский компьютер, с которого передаются задачи для расчёта, может быть выключен после передачи задачи и пользователь может забрать результаты расчётов позже;
  • могут выполнять как распределённые так и параллельные вычислительные задачи;
  • пользователям МАТЛАБ легче начать пользоваться такими кластерами, так как язык программирования уже знаком;
  • программы не требуют компиляции;
  • адаптация программы для параллельных расчётов в которой уже есть операторы цикла 'for' очень проста – достаточно заменить такой оператор на 'parfor' и добавить пару строк для инициализации кластера и его закрытия после окончания работы.

Например, код без использования parfor:

А теперь то же самое с использованием parfor и четырёх нодов:

  • МАТЛАБ – не бесплатный продукт и части пользователей он просто не по карману;
  • кластерное ПО не поставляется с программой для балансировки нагрузки (она может быть установленна отдельно), что приводит к ситуациям когда некоторые пользователи занимают все ноды кластера и блокируют доступ других пользователей.
Суперкомпьютеры и гриды

Как уже было выше упомянуто, иногда сложно найти отличие между суперкомпьютером, вычислительным кластером и гридом. С этой стороны окна терминала все они выглядят одинаково. Все они имеют большое число процессоров и памяти в ВВ системе. Среди установленного программного обеспечения у них есть компиляторы и библиотеки MPI и OpenMP. Иногда установлен МАТЛАБ и другие программы поддерживающие использование группы нод и их памяти.

  • пользователь подключается (как правило по SSH) к специальным нодам (англ. login nodes) на которых он интерактивно может выполнять часть команд и с которых может контролировать свои расчёты;
  • загружает модули, необходимые для выполнения той или иной задачи, например, компилятор gcc и библиотеку MPI;
  • если необходимо, то компилирует свою программу с поддержкой нужных библиотек;
  • аналогично кластеру HPCondor, готовит файл настроек и команд для выполнения своей программы (англ. job submiossion file);
  • передаёт этот файл настроек и команд при помощи команды 'qsub имя_файла' в очередь на выполнение;
  • как только выполнение программы будет завершено, пользователь может получить результаты её выполнения (и проще их сохранять в файлы).

Файлы настроек аналогичны файлам кластеров HPCondor. Например для того чтобы запустить вышеприведённый пример с parfor можно воспользоваться следующим файлом:

Во второй строке указывается максимальное время необходимое для выполнения данной задачи, а в третьей – команда которую необходимо выполнить на данной системе для запуска нужного пользователю программного кода МАТЛАБ.
Ещё один пример файла для запуска программы которая использует библиотеки MPI:

Во второй строке – максимальное время необходимое для расчёта, в третьей – указание имени среды для параллельных расчётов (задано администраторами) и число запрашиваемых нодов, далее 4 строки с присвоением нужного значения переменным окружения, после чего две строки которые отвечают за подключение нужных модулей и в конце скрипта – запуск нужной программы которая будет использовать 12 нодов.

Заключение

Нельзя объять необъятное, но пытаться можно и нужно. В этой заметке я попытался сделать обзор систем высокопроизводительных вычислений, помочь начинающим пользователям разобраться со спектром возможностей и понять что доступно и как это можно использовать. Как вы видите, даже если у вас нет доступа к суперкомпьютерам и гридам, то можно построить свой кластер на основе МАТЛАБ или бесплатного ПО Кондор.

Именно эти составные компоненты, которые находятся внутри блока, в совокупности принято называть системным блоком. Остальные же устройства, такие как монитор, периферийные устройства, мышь, являются внешними компонентами или устройствами. Причем каждый из компонентов выполняет свою определенную функцию, например, монитор предназначен для вывода информации на дисплей, клавиатура – для ввода информации, принтер – для вывода на бумажный носитель информации, изображаемой на дисплее компьютера.

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

Подбор компьютера напрямую зависит от выбора конфигурации составных частей. Можно купить первый попавшийся компьютер, «напичканный» высокими требованиями по конфигурации, который не будет соответствовать вашей выполняемой работы за ним, при этом Вы, конечно, заплатите высокую цену за него. Зачем, спрашивается? Ведь проще всего иметь хоть малейшее представление о компьютере, достаточно изучив его составные части, требования, а также подбор элементов системы на отсутствие возникновения конфликтов в компьютере.

Ну ладно, пора перейти к изучению этих самых составных частей компьютера. Ну а если Вас интересует история создания компьютера, тогда Вам сюда.

Системный блок – является центральной частью компьютера, в который входит блок питания и компоненты, обеспечивающие функционирования компьютера.

1. Блок питания – обеспечивает электрическое питание всех компонентов системного блока. Стоит отметить, что на момент написания данного урока выпускают блоки питания мощностью 450, 550 и 750 Вт. К примеру, блоки питания мощностью 1500 Вт целесообразно применять в серверах. Покупая блок питания, прежде всего, необходимо учитывать требования, которые предъявляются видеокарте. Если блок питания подходит под параметры видеокарты, то тогда распределение мощности происходит равномерно и для других элементов системы.

2. Материнская плата — считается «основой» компьютера, поскольку именно материнская плата осуществляет объединение и функционирование всех составных частей компьютера. Также материнскую плату называют еще – системная плата или основная плата. Такая согласованная работа обеспечивается благодаря – чипсету, который в основном состоит из двух микросхем, которые называются северным и южным мостом. Итак, предлагаю рассмотреть эти две микросхемы.

Северный мост – называется системный контроллер, который содержит в себе элементы логики для обеспечения взаимосвязи и функционирования основных компонентов компьютера (видеокарта, модули памяти).

Южный мост – называется периферийный контроллер, служащий своеобразным устройством ввода-вывода для подключения дополнительных составных компонентов. К примеру, клавиатура обеспечивается соединением с системой через южный мост. Поэтому когда вы выбираете для себя компьютер, желательно узнать, на какой основе чипсета была изготовлена материнская плата. В настоящее время чипсеты производятся такими крупными фирмами: Nvidia, ATI/AMD, Intel, SiS. То есть чипсет на материнской плате должен быть изготовлен более известной фирмой. На рисунке представлен вид материнской платы.

Габаритные размеры материнских плат бывают разными. Существует такое понятие как форм-фактор платы, который определяет не только размеры основной платы, но и конфигурацию расположения элементов, разъемов на плате. На основе форм-фактора основной платы осуществляют подбор корпуса системного блока.

Как видите, плата содержит различные виды разъемов и слотов для подключения, например, внешних, дополнительных устройств (начинаю с флешки и заканчивая принтером, сканером). Кроме того, на плате присутствуют контакты для подключения различных кнопок, такие как питание, перезагрузка, микрофон, отображение индикаторов.

Еще следует отметить присутствие на материнской плате микросхемы ПЗУ или, как ее еще называют, базовая система ввода-вывода BIOS (Basic Input Output System). BIOS считается фундаментом управления и взаимодействия всех элементов системного блока. Другим словами процесс запуска компьютера и обеспечение взаимодействия с внешними устройствами происходит за счет определенных настроек, которые заранее заложены в самой системе.

Например, в BIOS мы можем установить запрет чтения и распознавания флешек, оптических дисков, а также полностью изменить порядок загрузки операционной системы. Причем сам BIOS может запускаться даже при отсутствии в системном блоке жесткого диска. Также существует такое понятие как «обнуление BIOS», что это значит? Отвечаю Вам, что обнуление BIOS представляет собой возврат системы к первоначальным настройкам. Для обнуления достаточно извлечь батарейку из материнской платы на 10-15 минут. На плате эта батарейка одна, думаю Вы найдете ее, не ошибетесь.
3. Процессор – является главной частью компьютера, можно сказать, что является «мозгом» компьютера, которое выполняет вычисления и обработку информации. Процессор характеризуется двумя параметрами:

1. Разрядность – количество информации, обрабатываемые процессором за один прием.

2. Быстродействие – частота, с которой происходит данная обработка. В настоящее время для увеличения данных параметров широко используют два, три, четыре процессора. К примеру, в двухядерном процессоре находятся два процессора, которые располагаются на одном кристалле.

4. Видеокарта – служит своеобразным звеном для связи монитора с материнской платой. Основным назначением видеокарты в компьютере является обработка графической информации. Еще видеокарту называют графическим редактором. В настоящее время производителями видеокарт являются американская компания Nvidia (также известны как GeForce ) и канадская ATI Technologies. Видеокарты компании ATI Technologies еще называют Radeon. Далее рассмотрим основные части графического адаптера:

1. Графический процессор – процессор, основной задачей которого является обеспечение выполнение всевозможных расчетов с целью отображение заданной графической информации на дисплее.

2. Видеоконтроллер – обеспечивает формирование и передачу данных из видеопамяти на цифро-аналоговый преобразователь (ЦАП).

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

4. Цифро-аналоговый преобразователь (ЦАП) – основная задача является преобразование цифровых сигналов видеокарты в аналоговый.

5. Видео — (постоянное запоминающее устройство) – представляет собой микросхему, которая хранит в себе определенные правила и алгоритмы для обеспечения работы и взаимодействия с другими элементами платы.

6. Радиаторы – это система охлаждения, осуществляющая отвод тепла от видеопроцессора, видеопамяти, чтобы обеспечить заданный режим температуры на элементах видеокарты.

5. Модули ОЗУ (оперативно запоминающие устройства) — представляют собой платы с размещенными на них микросхемы. Основная задача оперативной памяти является временное хранение данных для процессора. Другими словами ОЗУ осуществляют обработку команд процессора. Модули ОЗУ можно расположить на плате в зависимости от конфигурации материнской платы.

Скорость оперативной памяти представляется частотой ее шины. Существуют следующие виды ОЗУ: SDRAM, DDR2, DDR3.

Устанавливаются модули ОЗУ в специальные разъемы в материнской плате, которые называются слотами.

Кроме того следует отметить, что основной характеристикой ОЗУ является скорость обработки и объем. Объем оперативной памяти при покупке компьютера должен соответствовать в зависимости от назначения данного компьютера, а также от установленной операционной системы. Если же на компьютере будет недостаточно оперативной памяти, то при запуске ресурсоемких приложений быстродействие компьютера значительно снизится, поскольку компьютер из-за нехватки памяти обратится в файл подкачки .

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

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

Перечислим основные характеристики запоминающих устройств:

1. Объем хранения данных – данный параметр определяет количество информации, которое может помещаться на диск.

2. Скорость вращения шпинделя – представляет собой количество оборотов, совершаемое пластиной за одну минуту. Характеристика определяет такие параметры как надежность, производительность. Следует отметить, что в стационарных компьютерах скорость вращения шпинделя составляет до 15 000 об/мин. Если Вы покупаете ноутбук, то рекомендую Вам обращать внимание на скорость вращения шпинделя (чем меньше тем лучше), чтобы обеспечить себе работу за компьютером без шума и вибрации.

3. Взаимосвязь с основной платой – предполагает собой способ подключение к основной плате. Первые жесткие диски соединялись при помощи интерфейса PATA. В настоящее же время все большей популярностью является SATA интерфейс.

7. Сетевая карта – предназначена для объединения нескольких компьютеров между собой с помощью кабелей (витая пара) с целью обмена данными.

8. Оптический привод (CD-ROM, DVD-RW) назначение привода является считывание и запись данных в зависимости от конфигурации самого привода. Информация записывается на компакт диск в виде дорожек, которые имеют углубления (называемые питами) и промежутки (называемые лендами). Считывание данных осуществляется за счет лазера.

Также следует отметить, что существует так называемый оптический носитель Blue ray Disc (что в переводе означает – синий луч). Отличается от предыдущих носителей тем, что запись и чтение осуществляется за счет синего лазера, а также возможностью увеличения объема записанной информации.

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

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

Читайте также: