Юный техник 1984-07, страница 17

Юный техник 1984-07, страница 17

загружая процессоры одинаковыми вычислениями. Куда сложнее, многовариантнее, но и обычно выгоднее так называемая конвейерная организация, когда каждый процессор выполняет отдельную операцию или группу операций, передавая результаты по мере готовности «соседям». (Кстати, принцип конвейера лежал в основе конструкции ЭВМ БЭСМ-6, созданной у нас в 1966 году и достигавшей невиданного тогда быстродействия— 1 миллион операций в секунду.) Здесь решение представляет собой, если воспользоваться графическим образом, разветвленное дерево с хитроумнейшими пересечениями и параллелями. Причем в меру способностей и квалификации каждый программист может вырастить такое дерево по-своему. Однако из всего множества возможных решений задачи есть всегда одно-единственное— наилучшее, оптимальное. (Это примерно так же, как на уроке математики учитель ставит задачу и говорит, что она имеет несколько решений и что надо найти самое короткое, экономное, изящное.)

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

М. КУЗНЕЦОВ, инженер

Подробности для

любознательных

' Возьмем простейшую задачу — вычисление на ЭВМ среднего арифметического -N чисел.

Вначале запишем известные простые формулы:

а,, а2, a*; b= (aI+a2+...+aIl) Человеку достаточно этой формулы, чтобы вычислить среднее арифметическое Ь; для машины же необходим алгоритм. Например, такой:

1. Допустим, s=0.

2. Допустим, i= к

3. Вычислим новое s=s+a .

4. Вычислим новое i=i+l.

5. Если i N+1, перейти к операции 3.

6. Вычислим b=s/N.

В этом алгоритме i и s — промежуточные величины: номер слагаемого и накапливаемая сумма. Как видите, наряду с арифметическими операциями (3, 4, 6) алгоритм содержит и вспомогательные: запись начальных значений величин (1, 2) и изменение порядка операций в зависимости от условия (5), Каждую операцию можно записать в виде одной или нескольких машинных команд; однако, во-первых, машинная программа будет различной для различных ЭВМ (хотя алгоритм один и тот же), и, во-вторых, преобразование алгоритма в машинные команды производится обычно самой ЭВМ при помощи специальных программ-переводчиков (трансляторов). Поэтому приведенный алгоритм тоже можно, вообще говоря, называть программой.

Допустим теперь, что наша программа уже находится в памяти машины. Там же числа а , их количество — N, скажем, 5. Пусть каждая операция соответ-

15