\subsection{Мотивация поддержки режима распараллеливания на общую память в системе SAPFOR}

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

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

% Таким образом, возникает потребность в новом функционале системы SAPFOR, позволяющем распараллеливать программы на общую память. Разработка и реализация такого режима работы системы SAPFOR и стали главной целью данной работы.