Автоматизация распараллеливания программ в системе SAPFOR
Аннотация:
Система SAPFOR (System FOR Automated Parallelization) объединяет различные подходы, направленные на автоматизацию параллельного программирования. С одной стороны SAPFOR включает средства статического и динамического анализа и опирающийся на них автоматически распараллеливающий компилятор. С другой стороны для получения эффективной параллельной программы автоматически часто требуется выполнять предварительное преобразование исходной последовательной программы, а также указывать дополнительные свойства, которые не удается определить средствами анализа. Для этой цели в системе SAPFOR реализованы различные преобразования, которые могут быть выполнены автоматически по запросу пользователя. Для управления процессом распараллеливания используется интерактивная оболочка, которая позволяет объяснить пользователю решения, принимаемые системой, а также задать дополнительные свойства распараллеливаемой программы. В данной статей рассматривается подход к автоматизированному распараллеливанию С программ для систем с общей памятью, реализованный в SAPFOR. Рассматривается применение интерактивной оболочки в процессе распараллеливания и особенности связанные с отображением программы на ускорители в модели DVMH. В статье приводится сравнение автоматического распараллеливания некоторых программ из набора NAS Parallel Benchmarks 3.3.1 c ручным распараллеливанием, выполненным с помощью OpenCL.