· по умолчанию = за умовканням
ТЕКСТ № 7
Для описания общих данных для основной программы и подпрограмм, как и в обычном последовательном Фортране, используется оператор COMMON. В компиляторе FX/ Fortran не составляет труда передать индекс цикла в качестве параметра параллельной подпрограммы, так как индекс цикла действительно не изменяется после вызова подпрограммы. Каждая итерация параллельного цикла, в котором была вызвана подпрограмма, имеет свою собственную копию индекса цикла. Однако, как и в других параллельных машинах с общей памятью, необходимо проявлять осторожность при передаче других параметров, модифицируемых параллельными подпрограммами.
Если даже подпрограмма вызывается параллельно, существует только одна копия подпрограммы и локальных переменных. Это приводит к затруднениям, так как различные вызовы подпрограммы должны иметь возможность параллельно работать с различными значениями переменных. Этот недостаток устраняется, если подпрограмму сделать рекурсивной.
Слова і словосполучення
· переменные = змінні
ТЕКСТ № 8
Целью написания второй версии программы было добиться некоторого управления степенью распараллеливания. Однако результаты измерения времени выполнения показали, что реально влияние не столь велико, как можно было ожидать.
Так как машина имеет восемь ВЭ, ожидалось возрастание скорости выполнения программы за счёт распределения общего числа итераций цикла по процессам (до восьми процессов). Предполагалось, что при большем числе процессов время выполнения стабилизируется, так как дополнительные процессы не смогут выполняться, пока выполняются первые восемь процессов, а возможно, уменьшится, поскольку затраты на загрузку процесса в процессор, вероятно, станут меньше при той же степени распараллеливания.
Временные характеристики в этом случае особенно трудны для интерпретации. Когда в программе использовалось более восьми процессов, величина etime для первых восьми завершённых процессов обычно была примерно в четыре-пять раз выше, чем для всех последующих завершённых процессов. Это может быть объяснено эффектами, связанными с использованием буфера команд.
Слова і словосполучення
· распараллеливание = розпаралелювання
ТЕКСТ № 9
Кроме того, значение времени etime, полученное в основной программе, видимо, равно сумме значений etime для процессов 1,9, 17 и т.д. Системное время и время пользователя также увеличилось для процессов с этими номерами. Поэтому выглядит вероятным, что etime и time системы UNIX вычислялись как сумма времён выполнения всех процессов, которые выполнялись на одном и том же процессоре в качестве основной программы, а не как сумма времён выполнения всех процессов на всех процессорах.
Вернёмся к проблеме, связанной с "ошибкой шины". Если любой из процессов требовал для вычисления более чем 50 000 итераций цикла, то выполнение программы немедленно прекращалось. При этом общее время выполнения почти во всех прогонах оставалось ниже 10 с. Поскольку это время выражалось в секундах и сильно зависело от времени ввода с клавиатуры, оно было относительно бесполезно для расчета скорости вычисления в Mflops. Однако для 5 000 000 прямоугольников обнаружилась некоторая зависимость как полного времени выполнения программы, так и системного времени от числа процессов, которое изменялось, как показано на рис. 3.3. Представленная таблица показывает, что и системное время и общее время выполнения делают поразительный скачок, когда число процессов становится меньше 13.
Слова і словосполучення
· выглядит вероятным = здається ймовірним
· ввод = уведення
ТЕКСТ № 10
Первая программа, будучи значительно проще в реализации, оказалась и значительно быстрее. По второй программе для заданного числа прямоугольников вычисления производятся быстрее, когда данные распределяются по большему числу процессов, однако скорость вычислений при выполнении второй программы никогда не достигает скорости первой. Обсуждение вопросов измерения производительности ЭВМ Alliant FX/8 содержится в [3].
Компиляция с определенными режимами оптимизации (или вообще без оптимизации) вызывала аварийное прерывание в связи с "ошибкой шины", если делалась попытка выполнить слишком много итераций цикла. Это не приводило к осложнениям, когда программа оптимизировалась целиком, но если условия применения незначительно отличались и параметр –AS не мог свободно использоваться, то возникали существенные трудности.
Фирма Alliant даёт этому такое объяснение. Когда программа векторизуется, вычисления (в данном случае сложения) производятся одновременно на одном наборе из 32 элементов. Если используется параметр -AS, то как только частичная сумма вычислена, она может быть тут же прибавлена к текущей сумме без использования дополнительной памяти.
Слова і словосполучення
· осложнения = ускладнення
· частичная сумма = часткова сума
· текущая сумма = поточна сума
ТЕКСТ № 11
Если же параметр –AS не используется, частичные суммы не могут быть прибавлены непосредственно к текущей сумме, так как векторные вычисления не смогут завершиться в правильном порядке. Следовательно, по мере вычисления частичных сумм они должны записываться во вспомогательный массив, который размещается в динамическом стеке вместе с другими локальными переменными программы. Когда все эти частичные суммы вычислены, элементы массива могут быть просуммированы один за другим.
В данном случае этот рабочий массив просто слишком велик для размещения в стеке. Здесь могут быть использованы следующие очевидные решения:
- увеличение размера стека, который является позиционным параметром;
- сохранение векторизованных циклов в пределах приемлемого диапазона в тех случаях, когда невозможно использовать параметр –AS;
- разбиение этих циклов на меньшие;
- подавление векторизации.






