Умножение производительности

Докучаев Дмитрий aka Forb

Спецвыпуск Xakep, номер #038, стр. 038-008-1

(forb@real.xakep.ru)

Мультипроцессорные технологии

Одна голова хорошо, а две лучше. Вспомни скучные лабораторные, когда группа разбивалась на бригады. Понятно, что в такой компании обязательно находились люди, которые пользовались мозгами других, а кто-то работал за троих :). Этот пример является примитивной моделью многопроцессорной технологии.

Разные проблемы - разные решения

На самом деле, в многопроцессорности все намного сложнее, хотя и нет ничего хитрого. Важно понять, зачем применять столь сложные технологии, иначе ресурсы машины просто будут простаивать. К примеру, если на лабораторной работе нужно выполнить один эксперимент и простой расчет, для этого хватит мозгов всего одного человека, а мозги остальных в бригаде будут лишними ;). Точно так же и в компьютерной среде: нередко начальники на предприятии не до конца обдумывают пути решения своих задач, а после заказа мультипроцессорной машины просто не могут представить способы ее загрузки на 100%.

Конечно, в институтах ядерной физики и на крупных предприятиях такие технологии себя оправдают в полной мере. Более того, бывает, что одной машины мало, в результате чего в одном помещении устанавливают два, а то и десять серверов.

Кого выбрать

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

AMD и NUMA

Компания AMD пошла в своих разработках наиболее простым и логичным путем. В строении архитектуры подразумевается, что каждому устройству будет выделены отдельные “мозги” (память). Копаться в “мозгах” другого камня считается дурным тоном :). Процессоры делятся на две группы: ведущий (всего один) и ведомые (все остальные). Это сделано для того, чтобы первый проц имел преимущество в ситуации, когда требуется обоюдный обмен данными.

Непонятно? Объясню проще: представь, что в бригаде, состоящей из 4 человек (все еще выполняющих злополучную лабораторную), ведутся расчеты, скажем, по вычислению сопротивления различных материалов. Результаты будут занесены в сводную таблицу, а затем обработаны. Если проецировать технологию NUMA на этот пример, получаем: все люди в бригаде будут вести расчеты на отдельном листе бумаги, не залезая в расчеты других. Задача бригадира - составление полей будущей таблицы. Итак, вычисления завершены, требуется лишь занести данные в протокол. Прямой доступ к чужой памяти закрыт по определению, поэтому процесс идет следующим образом: второй человек в бригаде записывает результаты своих вычислений на отдельный листок, который затем передается прямо в руки бригадиру. Бригадир переписывает результаты в сводную таблицу и радуется жизни. После того, как ведущий человек освободился, с ним работает третий по подобной схеме. И так далее, пока таблица не будет заполнена до конца. Плюсы налицо: практически никаких одновременных обращений к чужому листу бумаги, а также отсутствие длительных простоев.

Содержание  Вперед на стр. 038-008-2
Выпуски журнала "СПЕЦ Xakep"
Cпец Хакер #01Cпец Хакер #02Cпец Хакер #03Cпец Хакер #04Cпец Хакер #05Cпец Хакер #06Cпец Хакер #07Cпец Хакер #08Cпец Хакер #09Cпец Хакер #10Cпец Хакер #11Cпец Хакер #12Cпец Хакер #13Cпец Хакер #14Cпец Хакер #15Cпец Хакер #16Cпец Хакер #17Cпец Хакер #18Cпец Хакер #19Cпец Хакер #20Cпец Хакер #21Cпец Хакер #22Cпец Хакер #23Cпец Хакер #24Cпец Хакер #25Cпец Хакер #26Cпец Хакер #27Cпец Хакер #28Cпец Хакер #29Cпец Хакер #30Cпец Хакер #31Cпец Хакер #32Cпец Хакер #33Cпец Хакер #34Cпец Хакер #35Cпец Хакер #36Cпец Хакер #37Cпец Хакер #38Cпец Хакер #39Cпец Хакер #40Cпец Хакер #41Cпец Хакер #42Cпец Хакер #43Cпец Хакер #44Cпец Хакер #45Cпец Хакер #46Cпец Хакер #47Cпец Хакер #48Cпец Хакер #49Cпец Хакер #50Cпец Хакер #51Cпец Хакер #52Cпец Хакер #53Cпец Хакер #54Cпец Хакер #55Cпец Хакер #56Cпец Хакер #57Cпец Хакер #58Cпец Хакер #59Cпец Хакер #60Cпец Хакер #61Cпец Хакер #62Cпец Хакер #63Cпец Хакер #64Cпец Хакер #65Cпец Хакер #66Cпец Хакер #67Cпец Хакер #68Cпец Хакер #69Cпец Хакер #70Cпец Хакер #71Cпец Хакер #72Cпец Хакер #73Cпец Хакер #74Cпец Хакер #75