Линейная алгебра и мат. Статистика



бет40/49
Дата09.01.2023
өлшемі294.26 Kb.
#468247
1   ...   36   37   38   39   40   41   42   43   ...   49
Вопросы Big Data

На уровне битов

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

  • На уровне инструкций

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

  • Параллелизм данных

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

  • Параллелизм задач (многопоточность)

Стиль программирования, основанный на параллелизме задач, подразумевает, что вычислительная задача разбивается на несколько относительно самостоятельных подзадач и каждый процессор загружается своей собственной подзадачей.
С точки зрения параллелизма, как пути для повышения эффективности вычислений, существует две крайности.
Первая, когда параллельные вычисления не возможны или очень мало эффективны. Обычно это связано с тем, что каждый шаг в алгоритме зависит от вычислений или статуса выполнения предыдущего шага.
Embarrassingly parallel (чрезвычайная параллельность) — совершенно другой тип задач, для которых не требуется прилагать больших усилий при разделении на несколько отдельных параллельных задач. Чаще всего не существует зависимости между этими параллельными задачами, то есть их результаты не влияют друг на друга.
Распараллеливание добавляет накладные расходы: синхронизация, смена контекста и прочее. Если задача плохо подвержена параллельным вычислениям, то такие накладные расходы могут привести к уменьшению производительности.
С другой стороны, если задача легко делится на параллельные, то она может масштабироваться не только по ядрам одной машины, но и горизонтально на множество разных машин. Как следствие появляются проблемы сохранения и объединения результатов.


Достарыңызбен бөлісу:
1   ...   36   37   38   39   40   41   42   43   ...   49




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет