Алла Владова - Разработка масштабируемых программ для многоядерных архитектур
Все авторские права соблюдены. Напишите нам, если Вы не согласны.
Описание книги "Разработка масштабируемых программ для многоядерных архитектур"
Описание и краткое содержание "Разработка масштабируемых программ для многоядерных архитектур" читать бесплатно онлайн.
В лабораторном практикуме изложены предпосылки разработки и основы многоядерной архитектуры на примере процессоров Intel и AMD, особенности проектирования и написания многопоточных программ с акцентом на причины их плохой масштабируемости. Практикум содержит методические указания к выполнению лабораторных и самостоятельных работ.
Широкое распространение мультиядерных технологий – это следующий этап развития компьютерных технологий, который преобразит существующую вычислительную среду. Основные выгоды, получаемые от внедрения мультиядерных технологий представляются следующими.
Для коммерческого рынка – корпоративные IT-системы получат значительное увеличение производительности, используя оптимизированные мультипоточные приложения. Внедрение новых процессоров позволит создавать более сложные системы, с минимальными вложениями, опираясь на существующую инфраструктуру. Кроме того, такие системы отличаются простым управлением, упрощенным менеджментом, низкой совокупной стоимостью владения, высокой эффективностью и производительностью.
Для бизнеса и конечных пользователей – мультиядерная технология AMD способна существенно увеличить количество выполняемой работы в задачах требующих интенсивных вычислений, например таких, как мультимедиа, создание цифрового контента, обеспечения безопасности и других.
Разработчики и тестеры программного обеспечения озадачены созданием новых алгоритмов, обрабатывающих данные одновременно. [2].
Конечно, говорить о том, что двухядерные процессоры в два раза производительнее одноядерных, не приходится. Причина заключается в том, что для реализации параллельного выполнения двух потоков необходимо, чтобы эти потоки были полностью или частично независимы друг от друга, а кроме того, чтобы операционная система и само приложение поддерживали на программном уровне возможность распараллеливания задач. И в связи с этим стоит подчеркнуть, что сегодня далеко не все приложения удовлетворяют этим требованиям и потому не смогут получить выигрыша от использования двухядерных процессоров. Впрочем, уже сегодня существует немало приложений, которые оптимизированы для выполнения в многопроцессорной среде, и такие приложения, несомненно, позволят использовать преимущества двухядерного процессора. Кроме того, она позволяет выявить преимущества при одновременной работе с несколькими приложениями, что является типичной ситуацией на сегодняшний день.
2.1 Архитектура Intel Core
Рассмотрим технологию Intel Core на примере двухядерного процессора Presler, выполненного по 65-нанометровому технологическому процессу, каждое ядро которого имеет собственный кэш второго уровня L2 объемом 2 Мбайт. Он поддерживает 64-битное расширение памяти Intel EM64T и технологию Executable Disable Bit, с отключенной на аппаратном уровне технологии HyperThreading.
В отличие от двухядерных процессоров Pentium Extreme Edition и Pentium D в процессоре Presler два ядра размещены на разных кристаллах, то есть это будут два физически разделенных кристалла в одной упаковке в соответствии с рисунком 2. Такой подход к организации двухядерной архитектуры предоставляет достаточно гибкие возможности для отбраковки кристаллов, позволяя увеличить долю выхода годных двухядерных процессоров, а к тому же (и скорее всего, в этом главная причина) это позволяет одновременно с двухядерным процессором Presler выпускать и одноядерный аналог, причем кристаллы для обоих процессоров могут «нарезаться» из одних и тех же пластин [3].
Рисунок 2 – Структурная схема процессора Presler
Микроархитектура Intel Core, реализованная в процессорах Intel позволяет улучшить соотношение производительности и энергопотребления. Характеристики новой микроархитектуры Intel® Core™:
Технология Intel® Wide Dynamic Execution позволяет обрабатывать больше команд за такт процессора, повышая эффективность выполнения приложений и сокращая энергопотребление. Каждое ядро процессора, поддерживающего эту технологию, может выполнять до четырех инструкций одновременно, используя эффективный конвейер из 14 стадий.
Технология Intel® Intelligent Power Capability делает энергопотребление более низким, активируя отдельные логические подсистемы только по мере необходимости.
Технология Intel® Advanced Smart Cache включает совместно используемую кэш-память 2-го уровня, которая снижает энергопотребление, сводя к минимуму обмен данными с памятью, и повышает производительность, позволяя одному из ядер процессора использовать всю кэш-память при бездействии другого ядра.
Технология Intel® Smart Memory Access повышает производительность системы, сокращая время отклика памяти и оптимизируя, таким образом, использование пропускной способности подсистемы памяти.
Технология Intel® Advanced Digital Media Boost позволяет обрабатывать все 128-разрядные команды SSE, SSE2 и SSE3, широко используемые в мультимедийных и графических приложениях, за один такт, что удваивает скорость их выполнения [4].
2.2 Многоядерная технология AMD
Имеющаяся процессорная архитектура AMD позволила интегрировать на тот же кристалл второе ядро при переходе на технологический процесс 90 нм. В процессорах архитектуры AMD64 с двумя ядрами дублированию подвергнуто само вычислительное ядро и кэш-память, в то время как контроллер памяти и контроллер HyperTransport остаются в двухядерных процессорах в неизменном виде. В этой связи ключевое значение начинает играть блок System Request Interface (SRI), на который возлагается обязанность арбитража потоков команд и данных между двумя ядрами. Процессорные ядра взаимодействуют с интегрированным контроллером памяти и контроллером шины HyperTransport через Crossbar Switch, который, по сути, является арбитром шин контроллера памяти и HyperTransport в соответствии с рисунком 3.
Рисунок 3 – Архитектура процессора AMD Athlon 64 X2 Dual-Core
Особо стоит отметить тот факт, что хотя каждое ядро имеет собственный кэш L2, для него доступны данные и «соседнего» кэша – второго уровня. При этом процессор поддерживает когерентность хранимой в этой «быстрой памяти» информации. Такой подход исключает повторное обращение к оперативной памяти за данными, уже загруженными в кэш одного из ядер, что позволяет уменьшить время ожидания и снизить нагрузку на шину памяти. Кстати говоря, наличие интегрированного на кристалле контроллера памяти также весьма удачно укладывается в концепцию двухъядерности. Ведь в этом случае ядра общаются прямо с контроллером памяти, не имея посредника в лице контроллера системной шины. В своей же практической реализации новые двухъядерные процессоры компании Athlon 64 X2 Dual-Core изготавливаются на основе ядер Toledo и Manchester, для которых одноядерными аналогами являются соответственно ядра San Diego и Venice. Это, в свою очередь, означает, что процессоры выполнены по 90-нанометровому технологическому процессу с применением технологии SOI (Silicon On Insulator) и обладают поддержкой набора инструкций SSE3, а также усовершенствованным контроллером памяти, поддерживающим работу модулей DDR SDRAM PC1600/2100/2700/3200, в том числе и в двухканальном режиме. Различие ядер Toledo и Manchester, как и San Diego и Venice, состоит в размере кэша второго уровня. Так, в первом случае кэш L2 составляет 2Ѕ1024 Мбайт, а во втором – 2Ѕ512 Мбайт. При этом тактовая частота процессоров этой линейки равна 2400, 2200 и 2000 МГц, т.е. при переходе на двухъядерную архитектуру не пришлось жертвовать скоростью объединяемых в тандем ядер.
Двухядерные процессоры семейства AMD Athlon 64 X2 Dual-Core, как и семейство Intel Pentium D, ориентированы на использование в графических станциях для работы с 3D-графикой и на универсальные рабочие станции для пользования офисными приложениями, приложениями создания контента, обработке цифровых фотографий и т.д.
Таким образом, как утверждают многие эксперты, в течение ближайших двух лет почти все микропроцессоры, устанавливаемые в настольных ПК, рабочих станциях и серверах, будут иметь два ядра или даже больше. И надо сказать, что основания для таких прогнозов весьма весомые. Производительность двухядерного процессора может быть почти в два раза выше, чем у одноядерного, а его стоимость будет ниже, чем у двух процессоров, имеющих по одному ядру. При размещении двух процессоров на одном кристалле скорость обмена информацией между ними возрастает, а совместное использование кэш-памяти может еще более повысить эффективность обработки данных. Кроме того, двухядерные процессоры занимают меньше места, потребляют меньше энергии и рассеивают меньше тепла, нежели отдельные процессоры. Добавим еще, что, по имеющейся информации, процессоры на базе нескольких ядер хорошо подходят для обработки транзакций, а также для обслуживания баз данных и научных применений [5,8].
3 Особенности проектирования и написания многопоточных программ
Активное внедрение многоядерных систем подразумевает существенное изменение стиля программирования: разработчики будут вынуждены использовать параллельные потоки, порождение и обработку асинхронных событий и др. Иными словами, новая аппаратная архитектура требует смены программной парадигмы – перехода от последовательного стиля программирования к параллельному. Сегодня только небольшая часть программного обеспечения может эффективно выполняться на многоядерных процессорах, что подтверждают результаты тестов – синтетических и предназначенных для конкретных классов приложений (см., например, www.3dnews.ru/cpu/dualcore-cpu/index03.htm). Реальный рост производительности дают лишь программы, оптимизированные под многопоточность, такие как Adobe Premiere Pro 1.5, 3DMax и др. Остаются актуальными задачи разработки и внедрения драйверов устройств, поддерживающих многопоточность [6].
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Разработка масштабируемых программ для многоядерных архитектур"
Книги похожие на "Разработка масштабируемых программ для многоядерных архитектур" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Алла Владова - Разработка масштабируемых программ для многоядерных архитектур"
Отзывы читателей о книге "Разработка масштабируемых программ для многоядерных архитектур", комментарии и мнения людей о произведении.