Константин Стефанов - Cуперкомпьютеры: администрирование

Тут можно читать онлайн Константин Стефанов - Cуперкомпьютеры: администрирование - бесплатно ознакомительный отрывок. Жанр: Справочники, год 2020. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Константин Стефанов - Cуперкомпьютеры: администрирование краткое содержание

Cуперкомпьютеры: администрирование - описание и краткое содержание, автор Константин Стефанов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Как стать администратором суперкомпьютера? Что нужно знать и уметь? Какие подводные камни ждут на этом нелёгком пути? В книге есть ответы на эти и некоторые другие вопросы. Материал поможет имеющим опыт системного администрирования повысить свою квалификацию, а тем, кто пока не имеет такого опыта, разобраться в том, что нужно изучить. Издание подготовлено при поддержке издательства МАКС-Пресс. ISBN 978-5-317-05877-7 © Московский государственный университет имени М. В. Ломоносова, 2018 © Оформление. ООО «МАКС Пресс», 2018

Cуперкомпьютеры: администрирование - читать онлайн бесплатно ознакомительный отрывок

Cуперкомпьютеры: администрирование - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Константин Стефанов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Для начала работы включите компьютер в сеть.

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

Свои отзывы и пожелания, пожалуйста, присылайте на адрес superbook@parallel.ru.

Авторы выражают искреннюю благодарность:

Владимиру Воеводинуза идеи и критику,

Александру Наумовуи Антону Коржуза предоставленный материал и консультации,

Виктору Дацюку, Павлу Костенецкому, Алексею Лацисуи Юрию Хребтовуза важные замечания.

Вадиму Кузнецову(dikbsd) за неоценимую помощь в конвертации книги в электронный формат.

Глава 1. Что же такое «супер»?

Общие понятия о параллельной обработке и параллельных программах

Все современные суперкомпьютеры используют параллельную обработку данных. С самого начала компьютерной эры именно этот путь был и остаётся наиболее важным для достижения высокой производительности. Сейчас даже самый простой настольный компьютер если не многоядерный, то уж почти наверняка с технологией simultaneous multithreading (например, HyperThreading от Intel или AMD SMT), позволяющей работать двум (иногда более) программным потокам одновременно. Даже мобильные телефоны и фотоаппараты становятся параллельными и многоядерными.

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

Параллелизм– параллельное выполнение машинных команд разными устройствами. Например, команды x=a+b и y=b*c, где a, bи с– регистры, процессор может выполнить независимо, если он имеет раздельные устройства сложения и умножения (см. рис. 1). Этот принцип воплощён в большинстве современных процессоров.

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

Рис 1 Параллельное выполнение Рис 2 Векторизация конвейер Чаще всего - фото 2

Рис. 1: Параллельное выполнение

Рис 2 Векторизация конвейер Чаще всего элементы вектора расположены друг за - фото 3

Рис. 2: Векторизация + конвейер

Чаще всего элементы вектора расположены друг за другом. Типичный пример – сложение векторов. Так как операция, выполняющаяся над векторами, одна и та же, то её разбивают на фазы – ступени конвейера. Например, загрузка элементов из памяти, нормализация мантисс, сложение, коррекция, запись в память. После выполнения первой ступени над первым элементом вектора эту стадию можно сразу же выполнить над вторым элементом, не дожидаясь завершения всей операции над первым. После завершения каждой ступени над одним элементом можно выполнить её над следующим. Таким образом, если самая медленная ступень конвейера выполняется за Ктактов, а все ступени – за Sтактов, то вектор из Nэлементов обработается за K*(N–1)+S.

Первый элемент обработается за положенные Sтактов (это называется «время разгона конвейера»), а потом устройство будет выдавать по одному результату в Kтактов. В современных процессорах чаще всего K=1. Однако конвейеризация не обязательно подразумевает векторизацию и наоборот. Например, если устройство сложения конвейерное и мы выполняем несколько обычных сложений подряд, они могут отлично задействовать конвейер.

Для системного администратора не всегда нужно доскональное понимание работы процессора, языка ассемблера и умение оптимизировать пользовательские программы, но понимание того, как устроено параллельное выполнение в процессоре, очень важно. Многие современные процессоры многоядерные, т.е. содержат несколько полноценных (или почти полноценных) процессоров на одном кристалле (в одной микросхеме). Естественно, что они могут работать параллельно. Есть ещё параллелизм на уровне доступа к памяти, когда разные банки памяти могут работать независимо, а значит, отдавать или записывать данные быстрее. Есть также параллелизм на уровне работы с устройствами – можно заранее сформировать в памяти блок для записи на диск или для отправки по сети и «скомандовать» контроллеру выполнить запись/передачу. Далее процессор может выполнять другие действия, а данные из памяти в это время будут записываться на диск или пересылаться по сети.

Это параллелизм, заложенный в «железе». Для того, чтобы задействовать его максимально, заставить вычислители (ядра, процессоры, вычислительные узлы…) работать параллельно, необходимо составить программу таким образом, чтобы она использовала все эти ресурсы. Т. е. написать параллельную программу. Этим мы заниматься не будем (по крайней мере, в рамках этой книги), но иметь дело с параллельными программами нам придётся постоянно, и знать, как они работают, нам необходимо. [1] Можем порекомендовать отличную книгу по параллельному программированию: Антонов А.С. Технологии параллельного программирования MPI и OpenMP: учеб. пособие. Предисл.: В.А. Садовничий. – М.: Издательство Московского университета, 2012. – 344 с. – (Серия «Суперкомпьютерное образование»).

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Константин Стефанов читать все книги автора по порядку

Константин Стефанов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Cуперкомпьютеры: администрирование отзывы


Отзывы читателей о книге Cуперкомпьютеры: администрирование, автор: Константин Стефанов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x