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

Разработка масштабируемых программ для многоядерных архитектур
Название: Разработка масштабируемых программ для многоядерных архитектур
Автор:
Жанры: Информатика и вычислительная техника | Прочая образовательная литература
Серии: Нет данных
ISBN: Нет данных
Год: 2006
О чем книга "Разработка масштабируемых программ для многоядерных архитектур"

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

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


Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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


С этой книгой читают
Учебное пособие знакомит читателя с основными задачами, решаемыми учетными приложениями в профессиональной деятельности экономиста, рассматривает роль и место учетных приложений в повышении эффективности деятельности организации. В практической части пособия пошагово разбирается разработка типового учетного приложения, создаваемого в пакете MS Office, рассматриваются вопросы организации расчетов при неточно заданных исходных данных.Для студентов,
Представьте, что искусственный интеллект работает на вас, превращая ваши идеи в реальные шедевры. Эта книга – ваш ключ к этому миру, где даже если вы ничего не знаете о нейросетях, вы сможете создавать промты, которые дают потрясающие результаты.«Мастерство промт-инжиниринга» – это больше, чем просто руководство. Это пошаговый план, который поможет вам освоить искусство создания идеальных запросов. Внутри:– 100 жанров, стилей и секретных техник,
Сегодня мы обладаем обширными знаниями о ДНК. Настало время для более глубокого анализа этой молекулы, и биоинформатика может стать незаменимым помощником в этом процессе.Для этого необходимо обработать огромное количество информации. Изменения в ДНК могут являться причиной различных заболеваний, и биоинформатика позволит найти эти изменения в молекуле. Но какие именно? Это нам предстоит узнать.
Все врут! 93 % людей лгут и дома, и на работе регулярно! Остальные семь процентов – в зависимости от обстоятельств. Эта книга – самый полный практикум настоящего лжеца! Как узнать, когда человек врет, и угадывать мысли собеседника? Какие черты выдают характер? Эта книга поможет научиться понимать, кто перед вами, по походке, манере говорить и почерку. А определив это, вы легко сможете выведать самые сокровенные тайны человека! Научитесь врать так
«Тайна Янтарной комнаты» – первая изданная книга Татьяны Копыленко. В этом сочинении, которое по жанру стоит несколько особняком в современной литературе, и представляет собой роман-сказку, действуют как вымышленные, так и реальные исторические персонажи, упомянуты действительно происходившие события.…Однажды, прекрасным зимним утром в своем лесном доме проснулась молодая красавица княгиня Ольга Заозерская, и ее щеки залил горячий румянец – она в
Эмма Прайс беспомощно наблюдала, как из реки вылавливают красное пальто ее шестилетнего сына. Это была самая трагическая история того года – маленький мальчик, Эйден, ушел из школы во время ужасного наводнения, упал в реку и утонул. Его тело так и не нашли.Прошло десять лет, и Эмма наконец вновь обрела радость жизни. Она замужем, беременна и снова полна сил… Но все меняется, когда Эйден возвращается домой. Живой, но слишком травмированный, чтобы
В этой книге вы познакомитесь с симпатичной Старушкой Коклюшкой и ее друзьями! Вместе с героиней проникнетесь духом дружбы, любви, взаимопонимания, поддержки и исполнения желаний! Книга о Старушке Коклюшке, которую Вы держите в руках, посвящена моей дочери Лизе. Она была написана в 2021 году, но историям, живущим в ней – по меньшей мере лет пять. Книга для детей и их родителей, для совместного чтения перед сном или в книжных клубах, для теплых зи