Циклы

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

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

Метки: , ,

Связанные записи