Стремление к высокой производительности сильно усложняет разработку программного обеспечения. Если наша аппаратура недостаточно хорошо подходит для решения поставленной задачи, разработчикам программ придется предельно использовать все ее возможности, что приведет к значительному росту стоимости
«Что лучше, вычислительная машина А или вычислительная машина В? …что быстрее, вычислительная машина А или вычислительная машина В?». Это все равно что спросить: «Что лучше, модель X автомобиля Шевроле, или модель Y автомобиля форд?». Единственное, что можно на это ответить: «В каком отношении? В смысле элегантности? Стоимости? Производительности в смысле пробега в милях? В смысле удобства управления? Комфортабельности? Размера? Срока службы? Надежности?».
Автомобиль как система состоит из нескольких тысяч частей, каждая из которых выполняет определенную функцию. Автомобиль может быть сделан так, что некоторые из них будут идеально подходить для своей службы, но только за счет каких-то других. То же самое можно сказать и о вычислительных машинах.
Если мы начнем рассматривать внутреннюю скорость вычислительных машин, мы обнаружим, что время, необходимое для выполнения каждой команды, является одной из основных характеристик машины. Каждая команда выполняется в течение некоторого отрезка времени.
Научная смесь | Коммерческая смесь |
---|---|
15 умножений | 5 умножений |
12 делений | 2 деления |
25 сложений | 25 сложений |
22 вычитания | 18 вычитаний |
12 записей в память | 14 записей в память |
2 ввода | 8 вводов |
2 команды печати | 8 команд печати |
8 условных переходов | 14 условных переходов |
2 безусловных перехода | 6 безусловных переходов |
100 команд | 100 команд |
Заметьте, что в моей научной смеси в три раза больше умножений и в четыре раза меньше команд ввода и печати.
Машина может иметь преимущество перед своим конкурентом по одной смеси, но не иметь преимущества по другой (см. рис. 3.1).
ТКС и МКС ТКС означает тысячу команд в секунду, МКС — это 1 млн. команд в секунду. Машина в два МКС может выполнять 2 млн. команд некоторой определенной смеси в секунду. На научных смесях коэффициенты МКС обычно оказываются более низкими, чем на коммерческих смесях.
Мы называем ТКС и МКС внутренними характеристиками, поскольку они вовсе не затрагивают возможностей ввода/вывода вычислительной машины, а также не учитывают эффектов, зависящих от объема памяти или размеров слова машины. Время выполнения команды имеет смысл измерять даже для самых параллельных машин.
Научная смесь | Коммерческая смесь | |
---|---|---|
Машина А | 0.0028 | 0.0024 |
Машина В | 0.0054 | 0.0018 |
Рис. 3.1. Пример разных по производительности машин — на научной и коммерческой смеси команд. Время в секундах
Когда в 1964 г. появилась серия машин IBM 360, модель 70 (она существовала короткое время, пока ее не сменила модель 75) была самой крупной (самой мощной) моделью: модель 30 была самой маленькой.
Фред Брукс, архитектор серии 360, в статье для журнала «IBM System Journal» писал:
Обратите внимание на значительную разницу в сравнении при использовании коммерческих программ. Эти внутренние характеристики вычислительных машин не слишком точны, но все же широко используются как средство приблизительной оценки мощности ЭВМ.