Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
modul — копия.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

3. Опишите подход функционирования ос на каждом cpu - метод персональной копии. Дайте графическую интерпретацию и основные замечания. В чем состоят достоинства и недостатки.

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

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

Но с точки зрения ОС наличие ОС у каждого CPU является крайне примитивным подходом.

Следует отметить четыре аспекта данной схемы, возможно, не являющихся очевидными:

  1. Когда процесс обращается к системному вызову, СВ перехватывается и обрабатывается его собственным CPU при помощи структур данных в таблицах ОС.

  2. У каждой ОС есть свои собственные таблицы, у нее есть также и свой набор процессов, которые она сама планирует. Совместного использования процессов нет.

  3. Совместного использования страниц также нет. Нет никакого способа занять свободные страницы у соседнего CPU, так как выделение памяти статически фиксировано.

  4. Если ОС поддерживает буферный кэш недавно использованных дисковых блоков, то каждая ОС будет выполнять это независимо от остальных.

4. Организация коллективных операций в mpi.

Коллективные операции и их исполнение

Коллективные операции в MPI выполняют следующие функции:

  • MPI_Reduce,

  • MPI_Allreduce,

  • MPI_Reduce_scatter

  • MPI_Scan.

Помимо встроенных, пользователь может определять использовать свои собственные коллективные операции. Для этого служат функции MPI_Op_create и MPI_Op_free, а также специальный тип данных MPI_Usr_function.

Алгоритм исполнения всех коллективных функций одинаков: в каждом процессе имеется массив с данными и над элементами с одинаковым номеров в каждом из процессов производится одна и та же операция (сложение, произведение, вычисление максимума/минимума и т.п.). Встроенные коллективные функции отличаются друг от друга способом размещения результатов в процессах.

MPI_Reduce

Данная функция выполняет коллективную операцию во всех процессах группы и помещает результат в процесс с рангом root.

MPI_Allreduce

Применяет коллективную операцию и рассылает результат всем процессам в группе.

MPI_Reduce_scatter

Функция применяет вначале коллективную операцию к векторам всех процессов в группе, а затем результирующий вектор разбивается на непересекающиеся сегменты, которые распределяются по процессам. Данная операция эквивалентна вызову функции MPI_Reduce, за которым производится вызов MPI_Scatter.

MPI_Scan

Данная операция аналогична функции MPI_Allreduce в том отношении, что после ее выполнения каждый процесс получает результирующий массив. Главное отличие данной функции состоит в том, что содержимое результирующего массива в процессе i является результатом выполнения коллективной операции над массивами из процессов с номерами от 0 до i включительно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]