Мультипроцессор

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

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

Этот неожиданный поворот в конструкции микропроцессоров многих застал врасплох, создав путаницу в терминологии.

Суть этих двух точек зрения состоит в том, что параллельное программное обеспечение может запускаться на последовательном оборудовании, например операционные системы на одноядерном процессоре Intel Pentium 4, или на параллельном оборудовании, представленном более современным процессором Intel Xeon е5345 (Clovertown). То же самое справедливо и для последовательного программного обеспечения. Например, программисты, работающие на Matlab, пишут перемножение матриц, представляя эту работу в последовательном режиме, но это перемножение может быть запущено последовательно на оборудовании Pentium 4 или параллельно на оборудовании Xeon е5345. Нетрудно догадаться, что единственной сложностью параллельной революции является определение методов достижения высокой производительности выполнения изначально последовательного программного обеспечения на мультипроцессорных системах по мере роста количества процессоров. После того как мы во всем этом разобрались, для обозначения последовательного или параллельного программного обеспечения, запущенного на параллельном оборудовании, во всем остальном материале главы будет использоваться понятие параллельно выполняемой программы, или параллельного программного обеспечения.

В следующем разделе описываются причины сложностей создания эффективных параллельно выполняемых программ. Две популярные версии этих альтернатив называются мультипроцессорами с общей памятью и кластерами. Далее дается описание многопоточности, понятия, которое часто пугают с мультипроцессорностью, отчасти потому, что многопоточность полагается на такую же параллельность в программах. Кроме этого в нем дается описание двух типов архитектур набора инструкций, которые поддерживают запуск последовательных приложений на параллельном оборудовании, а именно SIMD и vector. В разделе 7.7 описывается относительно новый тип компьютера от сообщества разработчиков графического оборудования, который называется блоком обработки графики (graphics processing unit, CPU), или графическими процессором. Затем рассматриваются сложности подбора контрольных задач для параллельного выполнения. За этим разделом следует описание новой, простой и все же довольно глубокой модели, помогающей в разработке приложений и архитектур. Эта модель используется для оценки четырех последних многоядерных процессоров на двух основных прикладных задачах. В завершение рассматриваются заблуждения и недоразумения и даются краткие выводы по параллельным системам.





Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: