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

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

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

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

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

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

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

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

А. Ю. Владова

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

Введение

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

– основы многоядерной архитектуры;

– проектирование многопоточных программ с использованием различных инструментальных средств;

– причины плохой масштабируемости программ;

– теоретическая и практическая оценка ускорения и масштабируемости программ;

– элементы оптимизации.

Для демонстрации влияния пропускной способности шины на плохую масштабируемость программ разработана лабораторная работа № 1, в которой описаны реализация последовательного и многопоточного приложений, демонстрирующих проблему, предварительная и практическая оценки ускорения и масштабируемости, оптимизация программы для повышения доли параллельного кода, а также инструментированный анализ загрузки шины.

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

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

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

1 Предпосылки создания многоядерной архитектуры

Гонка тактовых частот, продолжавшаяся на протяжении многих лет уходит в прошлое, так как развитие физики полупроводников, следствием которого стало увеличение числа логических элементов на единицу площади, подчиняющееся закону Гордона Мура, провоцирует ряд проблем, таких как перегрев и физическое ограничение плотности транзисторов. Проблема перегрева транзисторов в современных процессорах стоит очень остро. Сами транзисторы становятся все меньше, но при этом с ростом тактовой частоты процессора они потребляют больше мощности и выделяют больше тепла. До бесконечности это продолжаться не может, поскольку приводит к быстрому обгоранию соответствующего контакта разъема, нагреву и сколам процессора, разряду батарей питания. Суть проблемы заключается в том, что современные процессоры потребляют такую мощность, что при питании их стабилизаторов от шины +5В ток превосходит разумные пределы (мощность равна произведению тока на напряжение, поэтому, чем ниже напряжение, тем выше ток при той же мощности). По всей видимости, масштабирование процессоров по тактовой частоте оказалось не столь простой задачей, как предполагалось, и потому при сегодняшних технологических нормах производства процессоров и малоэффективных воздушных системах охлаждения добиться линейного масштабирования тактовой частоты процессоров не удаётся.

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

2 Преимущества многоядерной архитектуры процессоров

Еще несколько лет назад в силу технологических ограничений все многопотоковые процессоры строились на базе одного ядра, и такая многопотоковость была названа «одновременной» – Simultaneous Multi Threading (SMT), но с появлением многоядерных процессоров появился альтернативный тип многопотоковости – Chip Multi Processor (CMP).

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

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

Такая архитектура предоставляет одну из возможностей преодоления врожденной слабости современных процессоров – «бутылочного горла» архитектуры фон Неймана в соответствии с рисунком 1.

Рисунок 1 Демонстрация узкого горла архитектуры фон Неймана на примере - фото 1

Рисунок 1 – Демонстрация «узкого горла» архитектуры фон Неймана на примере четырехпроцессорной архитектуры Intel Xeon

Впервые публично об этом недостатке сказал создатель Fortran Джон Бэкус на церемонии вручения ему премии имени Тьюринга в 1977 году: «Что такое компьютер по фон Нейману? Когда 30 лет назад Джон фон Нейман и другие предложили свою оригинальную архитектуру, идея показалась элегантной, практичной и позволяющей упростить решение целого ряда инженерных и программистских задач. И хотя за прошедшее время условия, существовавшие на момент ее публикации радикально изменились, мы отождествляем наши представления о компьютерах с этой старой концепций. В простейшем изложении фон-неймановский компьютер состоит из трех частей: это центральный процессор, память и соединяющий их канал, который служит для обмена данными между CPU и памятью, причем маленькими порциями – по одному слову.

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

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


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

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




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


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


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

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