Архив за Февраль, 2021

Введение в графические процессоры

Главным обоснованием добавления SIMD-инструкций к существующим архитектурам послужило то обстоятельство, что многие микропроцессоры в персональных компьютерах и рабочих станциях были подключены к дисплеям, поэтому на графику тратилось все больше вычислительного времени. Поэтому, когда согласно закону Мура количество доступных микропроцессорам транзисторов увеличилось, появился смысл улучшить обработку графики. Как только закон Мура позволил центральному процессору улучшить обработку […]

Сравнение векторов и мультимедийных расширений

Как и мультимедийные расширения, имеющиеся в инструкциях x86 SSE, векторные инструкции определяют сразу несколько операций. Но мультимедийные расширения обычно определяют лишь небольшое их количество, в то время как векторные определяют десятки операций. В отличие от мультимедийных расширений, количество элементов в векторной операции определяется не в коде операции, а в отдельном регистре. Это означает, что разные […]

Сравнение векторных и скалярных инструкций

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

SIMD в х86: мультимедийные расширения

Параллелизм, достигаемый за счет работы с независимыми данными. Наиболее широко используемый вариант SIMD-системы сегодня имеется практически в каждом микропроцессоре и составляет основу сотен MMX- и SSE-инструкций микропроцессора x86. Эти инструкции были добавлены для повышения производительности мультимедийных программ, и дают возможность оборудованию располагать множеством одновременно работающих АЛУ, или, что одно и то же, поделить одно широкое […]

SISD, MIMD, SIMD, SPMD и использование векторов

Другая классификация параллельного оборудования была предложена в 1960-е годы и используется и в наши дни. Она была основана на количестве потоков инструкций и количестве потоков данных. Обычная однопроцессорная система имеет один поток инструкций и один поток данных, а обычный мультипроцессор имеет несколько потоков инструкций и несколько потоков данных. Для этих двух категорий используются, соответственно, аббревиатуры […]

Многопоточность процессора

Основной недостаток мелкомодульной многопоточности заключается в том, что она замедляет выполнение отдельно взятых потоков, поскольку поток, готовый к выполнению без остановок, будет замедлен инструкциями других потоков. В качестве альтернативы мелкомодульной многопоточности была придумана крупномодульная многопоточность (coarse-grained multithreading). При использовании крупномодульной многопоточности потоки переключаются только при значительных приостановках, например при промахах при обращении к кэш-памяти второго […]

Эффективное использование памяти

Сначала половина процессоров посылает свои частичные суммы другой половине процессоров, где эти частичные суммы складываются вместе. Затем одна четверть процессоров (половина от половины) посылает эти новые частичные суммы другой четверти процессоров (оставшейся половине от половины) для следующего раунда суммирования. Это деление пополам, отправка и получение продолжаются до тех пор, пока не будет получена единая сумма […]

Кластеры и другие мультипроцессоры с передачей сообщений

Другим подходом к общему адресному пространству является использование процессоров, у каждого из которых имеется свое собственное физическое адресное пространство. Например, может использоваться классическая организация мультипроцессора с множеством отдельных адресных пространств. Этот альтернативный мультипроцессор должен вести обмен данными посредством явной передачи сообщений, которая традиционно является названием такого типа компьютеров. При условии, что система имеет подпрограммы для […]

Мультипроцессоры с общей памятью

Учитывая трудности переписывания старых программ для их эффективной работы на параллельном оборудовании, вполне уместно задать вопрос: что могут сделать разработчики компьютеров, чтобы упростить эту задачу? Один из ответов состоит в предоставлении единого физического адресного пространства в общее пользование всем процессорам, чтобы программы не утруждали себя проблемами места их запуска и учитывали только то, что они […]

Сложности создания программ, выполняемых в параллельном режиме

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