ПРИТЧА Раз при Горохе, при царе, его три сына, опоясав сабли, пошли в поход. Но во дворе сын старший наступил на грабли. И средний сын ступил ногой на грабли, выразившись всяко. Тут пригорюнился меньшой. Да, делать нечего, однако... А.Ману
Нет, нет и еще раз нет. Мы и сами не хотим, и Вам не желаем оказаться на месте младшего брата. Поместив данную притчу в самое начало книги, мы возложили на нее роль, не совсем характерную для эпиграфа. Это не основная мысль данной работы. Это главная проблема, с которой нам приходится сталкиваться на практике и на которой нам хотелось лишний раз заострить внимание. При всей, казалось бы, очевидности предстоящего шага не нужно слепо следовать сложившимся стереотипам действий или же автоматически перенимать уже готовые решения. Быстро - это не всегда хорошо. Особенно в столь доступной, но динамичной, высокотехнологичной и тонкой области, как проектирование и использование кластерных вычислительных систем.
Появление вычислительных кластеров позволило значительно расширить
масштаб применения высокопроизводительных компьютеров. Многие
инженерные и технологические процессы в нефтегазовом секторе и
машиностроении, фармацевтике и банковском деле, энергетике и телекоме,
в биоинженерии и
Приведенная в эпиграфе притча очень точно характеризует подход многих организаций к построению высокопроизводительных кластерных систем. Дело новое, но перспективное, опыта не много, но кластерные системы нужны, поэтому копирование архитектуры какого-либо уже существующего кластера рассматривается как вполне допустимый способ развития собственного проекта. Во многих случаях это оправдано, однако столь же часто использование чужого пути приводит к повторению одних и тех же ошибок. При этом все говорят об успехах, но почти никто не рассказывает о неудачах или же оказавшихся ошибочными на практике решениях, хотя именно на них нужно бы обратить внимание новичков кластерного дела, только приступающих к работам в данной области.
В данной книге мы попытались собрать вместе все те вопросы, которые
нужно обдумать и решить, начиная с момента появления потребности в
И, наконец, самое важное. В вычислительном деле с задач все начинается, задачами определяется и по результатам их решения оценивается. Об этом нередко забывают, но это именно та идея, которая должна составлять фундамент любого кластерного проекта, иметь максимальный приоритет при принятии решений на каждом этапе создания кластера. Никто не покупает просто автомашину: разница в назначении представительского седана, карьерного самосвала, минивэна и бюджетного варианта народного автомобиля всем очевидна. Вместе с тем, задачи каждого класса машин полностью определяют особенности их компоновки, проектирования, технологического цикла производства и эксплуатации. В автомире это воспринимается как норма. Так должно быть и в мире кластерных систем. В этом основная цель данной книги.
Следует специально отметить, что, говоря о кластерах, мы имеем в виду высокопроизводительные вычислительные системы. Сам термин "кластер" в последнее время широко используется во многих областях: кластер высокой степени готовности, кластер для web-приложений, однако нам важна суперкомпьютерная, вычислительная сторона дела, которой и будет уделено основное внимание.
Представленный материал отражает как наш собственный опыт выполнения большого числа кластерных проектов, так и опыт, накопленный в кластерной отрасли в целом. Безусловно, много полезного мы получили от общения с нашими коллегами по лаборатории параллельных информационных технологий Научно-исследовательского вычислительного центра МГУ имени М.В.Ломоносова Антонова Александра и Стефанова Константина, за что выражаем им нашу искреннюю признательность. Мы исключительно благодарны сотрудникам корпорации Intel: Самофалову Виктору, Семину Андрею и Нарайкину Андрею за регулярно предоставляемую возможность работы на новых образцах вычислительной техники, за ценные советы, доброжелательность и внимательное отношение к нашей работе. Мы хотели бы поблагодарить корпорацию Intel, при поддержке которой данная книга была создана и вышла в свет. Наша особая благодарность Валентину Васильевичу Воеводину, учителю в науке и наставнику по жизни, общение и работа с которым всегда подталкивали к исследованию нового, приводили к интересным постановкам задач, к нетривиальным и неожиданным решениям. Спасибо.
Отдельные разделы книги написаны кратко, но дополнительный
материал, последние новости и множество технических подробностей
доступны на страницах информационно-аналитического центра по
Успехов Вам и только удачных кластерных решений!
Компьютерный мир меняется. Пятидесятилетняя эпоха последовательной организации вычислений сменяется эрой параллелизма, параллельных вычислительных технологий и параллельных вычислительных систем. Сначала появление кластерных систем, а затем переход всех ведущих производителей вычислительной техники на многоядерные процессоры, сделали компьютерный мир параллельным.
Революционность происходящего в наше время сродни изменениям, которые потребовались обществу в середине прошлого века для адекватного восприятия первых компьютеров. Сегодня задача не менее сложная, поскольку необходимо адаптироваться к параллельным компьютерным технологиям. Нужно пересматривать подходы к исследованию свойств и анализу качества алгоритмов, необходимо менять мышление программистов, нужен целый спектр специального инструментария для разработки программного обеспечения нового поколения.
Доступность современных параллельных компьютерных систем создает
иллюзию легкости их использования. Многопроцессорные серверы,
кластеры, многоядерные процессоры, распределенные вычислительные среды
действительно можно использовать для решения любых задач, однако
доступно - не значит просто. В
Все сказанное в полной мере относится и к

Обратимся к схеме решения задач (см. рисунок, приведенный выше) с помощью различного рода компьютерных систем. Стартовой точкой является задача - это то, что мы хотим найти, узнать или вычислить с помощью компьютера, это наша цель. Для решения задачи выбирается некоторый метод, т.е. математически обоснованная последовательность действий, следуя которой мы решение получим. Под действием может пониматься как элементарная арифметическая операция, так и что-то более сложное, но не столь важное с точки зрения самого метода, например, вычисление скалярного произведения или нахождение максимального значения в заданном наборе чисел. Зафиксировав метод, следующим шагом необходимо описать алгоритм. Для этого нужно указать точный набор и порядок выполнения всех операций. Обычно, на данном этапе не очень задерживаются, так как выбранный метод автоматически определяет идею алгоритма. Но только идею. На практике, два алгоритма, построенные по одному и тому же методу, могут обладать принципиально разными свойствами, в частности, один может оказаться чисто последовательным, а другой алгоритм будет обладать значительным ресурсом параллелизма []. Двигаясь по цепочке далее, алгоритм записывается в виде программы с помощью той или иной технологии программирования, затем полученная программа обрабатывается компилятором, который уже и генерирует код, пригодный для исполнения компьютером. "Задача", "Метод" и "Алгоритм" в большей степени относятся к предметной области, "Программа", "Компилятор" и "Компьютер" составляют основу последующей реализации, а "Технологии программирования" - это посредник между двумя сторонами единого процесса решения задачи.
Такова стандартная цепочка, и на рисунке она отмечена жирными стрелками. Ее много раз проходил каждый программист, как системный, так и прикладной, выбирая оптимальный путь решения своей задачи. За счет использования специальных технологий программирования цепочка в ряде случаев может стать короче, позволяя пользователю найти решение его задачи проще и быстрее. В самом деле, воспользовавшись уже готовым прикладным программным комплексом, все решение можно свести лишь к правильному заданию входных данных, и путь от задачи через такие технологии программирования сразу приведет к компьютеру. Подобных "альтернативных" путей существует немало, и на рисунке они показаны тонкими стрелками.
Данная схема дает богатую пищу для размышлений и помогает понять
причины многих проблем, возникающих при решении задач на компьютерах,
особенно на компьютерах с параллельной архитектурой. Тема достойна
отдельного обсуждения, однако сейчас сосредоточимся на этапе, который
отвечает предмету данной книги - на
Приступая к проектированию
Подтверждений этому тезису в нашей практике очень много, и чем
раньше удавалось уточнить требования и определить структуру задач, тем
лучше получался результат. В одном проекте заказчик сразу же начал с
того, что попросил проанализировать эффективность выполнения его
программы на различных процессорах. Желание вполне обоснованное, если
учесть, что
В другом проекте в научной группе планировался перевод большого
программного комплекса, традиционно работавшего в однопроцессорном
режиме, на параллельную кластерную систему. Нужно было переходить к
новым размерам задач, но поскольку в существующем варианте время
расчета было чрезмерно большим, то только переход на параллельную
систему в перспективе мог дать необходимое ускорение работы программы.
Составили проект, показали нам. Серьезных ошибок технического
характера в проекте не было, а сказать что-либо еще без знания
структуры будущих задач невозможно. Стали разбираться с программным
комплексом и обнаружили потенциально серьезную проблему: интенсивная
работа с файлами. При работе комплекса на одном процессоре этот вопрос
и не возникал, так как обмен с дисками занимал около 1 % всего времени
работы программы. Однако переход на кластер из 32 процессоров с
перспективой увеличения их числа в будущем до 128 заставлял серьезно
задуматься о параметрах и конфигурации подсистем ввода/вывода,
поскольку файловые операции все больше и больше выходили на первый
план. Кстати, одно из определений
Теперь рассмотрим типичный пример использования кластерных систем,
когда вся содержательная работа ведется через специализированные
прикладные пакеты: ANSYS, GAMESS, ABAQUS,
Подобных нюансов на практике очень много. Завершая вводную часть
книги, хочется еще раз подчеркнуть следующее. Главное в вычислительном
деле - это задачи, в конечном итоге именно они определяют все. И чтобы
перенести усилия пользователей в сторону предметной, содержательной и
наиболее важной части их деятельности, нужно быть абсолютно уверенным
в качестве используемых ими инструментов, в эффективности и
согласованности всех этапов, через которые пользователи должны будут
пройти на пути от постановки задачи до получения ее решения. Все этапы
важны, ни один нельзя оставлять без внимания, каждый должен быть
аккуратно исследован. Данная книга - о базовом уровне вычислительной
практики, о
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.