LibKing » Книги » sci_tech » Алла Владова - Разработка масштабируемых программ для многоядерных архитектур

Алла Владова - Разработка масштабируемых программ для многоядерных архитектур

Тут можно читать онлайн Алла Владова - Разработка масштабируемых программ для многоядерных архитектур - бесплатно ознакомительный отрывок. Жанр: Tech, издательство Литагент БИБКОМ, год 2006. Здесь Вы можете читать ознакомительный отрывок из книги ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Алла Владова - Разработка масштабируемых программ для многоядерных архитектур
  • Название:
    Разработка масштабируемых программ для многоядерных архитектур
  • Автор:
  • Жанр:
  • Издательство:
    Литагент БИБКОМ
  • Год:
    2006
  • ISBN:
    нет данных
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Алла Владова - Разработка масштабируемых программ для многоядерных архитектур краткое содержание

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

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

Разработка масштабируемых программ для многоядерных архитектур - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Алла Владова
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

Технология 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 DualCore Особо стоит - фото 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].

При переходе с одноядерных процессоров на многоядерные приходится принимать во внимание проблему последовательного выполнения. Что это означает применительно к многоядерной системе? В ней выполнение считается последовательным, если в какой-то момент одно или более ядер не могут выполнять код одновременно с другими ядрами. Такая ситуация может возникнуть по разным причинам [1]: блокировка при доступе к ресурсам, необходимость синхронизации процессов или потоков на ядрах, поддержка когерентности кэш-памяти, неравномерность загрузки.

Блокировки возникают из-за невозможности (например, в момент «сбора мусора») одновременного доступа приложений на разных ядрах к жесткому диску, к устройствам ввода/вывода или данным приложений. Очень часто параллельные процессы, выполняемые на разных ядрах, нужно синхронизировать в определенные моменты. Например, приложение на одном из ядер должно использовать промежуточные данные, которые получает приложение (поток, процесс) на другом ядре. Первое приложение не может продолжить работу до получения этих данных, то есть находится в состоянии ожидания. В такой ситуации неизбежны накладные расходы на синхронизацию приложений (процессов, потоков), выполняемых на разных ядрах. В свою очередь, это обусловливает снижение эффективности параллельной работы, что находит отражение в сетевом законе Амдала. Возникает необходимость в поддержке когерентности (согласованности) кэш-памяти для всех ядер при использовании разделяемой памяти.

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Алла Владова читать все книги автора по порядку

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




Разработка масштабируемых программ для многоядерных архитектур отзывы


Отзывы читателей о книге Разработка масштабируемых программ для многоядерных архитектур, автор: Алла Владова. Читайте комментарии и мнения людей о произведении.


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

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img