Пример вычислений. Модель производительности (1.1) можно использовать для определения числа процессоров N max, при котором будет достигнута наивысшая производительность СОС. Это можно сделать, используя тот факт, что в точке максимума (см. рис. 1.1) тангенс угла наклона касательной к кривой П (N) равен нулю и что он задается производной функции П (N) по N при фиксированных значениях остальных параметров. Переписывая (1.1) в форме
(1.2)
можно легко вычислить требуемую производную:
(1.3)
Если определить N max как точку, в которой тангенс угла наклона касательной равен нулю
, (1.4)
то, подставив выражение для из (1.3) в (1.4)
и разрешив полученное уравнение относительно N max, получим
(1.5)
Для рассматриваемого примера СОС, когда S = 1000, Р = 200и М = 80, оптимальное число процессоров
N max =(1000—200+80)/160 =5,5.
Поскольку на практике можно работать только с целым числом процессоров, придется довольствоваться системой из 5 или 6 процессоров с П (N) = = 120 сообщ./с.
Одним очень полезным следствием знания точного значения N max является возможность оценить ухудшение производительности из-за того, что нельзя на практике реализовать абсолютно оптимальное решение. В рассмотренном случае
|
|
П (5,5) = 5,5[1000—200—80(4,5)]/20= 121 сообщ./с,
т.е. убеждаемся, что ухудшение производительности относительно невелико.
Общее обсуждение. Обращение производной в нуль является необходимым, но не достаточным условием нахождения абсолютно максимального или минимального значения функции, или оптимального значения. Ниже рассматриваются несколько ситуаций, в которых производная обращается в нуль и не в точках абсолютного минимума и максимума, или оптимума.
1. Несколько максимумов или (и) минимумов. В точке x0 на рис.1.2 производная обращается в нуль, и функция имеет в этой точке локальный максимум, но x0 не является оптимальной точкой, точкой глобального максимума. С подобной ситуацией можно сталкиваться довольно часто. Таким образом, нахождение оптимальной точки связано с исследованием всех точек, в
которых производная обращается в нуль.
Рис. 1.2
2. Точки перегиба и седловые точки. На графике в левой части (см. рис. 1.3) точка х = 0 является точкой перегиба функции П (х)=х3. Производная этой функции dП/dх=Зх2 обращается в нуль при х = 0, однако функция в этой точке не имеет ни максимума, ни минимума.
В правой части (см. рис. 1.3) показана седловая точка. В седловой точке производная функции равна нулю, однако, в зависимости от ограничений, накладываемых на аргументы, в этой точке может достигаться как максимум, так и минимум функции.
|
|
Рис. 1.3
Наиболее часто точки перегиба или седловые точки встречаются при анализе очень сложных функций. Лучший способ исследования таких точек состоит в рассмотрении второй производной: если она равна нулю (а третья производная не равна нулю), то найдена точка перегиба; если она положительна в одном направлении и отрицательна в другом, то найдена седловая точка; если она отрицательна во всех направлениях, то найдена точка максимума; если она положительна во всех направлениях, то точка минимума.
Все рассуждения верны при существовании производных функции. В инженерном программировании это предположение часто не выполняется. Так, например, в тарифах на передачу данных или использование ЭВМ нередко имеются разрывы в расценках, производительность цифровых систем обычно выражается дискретными значениями. Поэтому необходимо также убедиться, что поиск максимума не ограничен областью существования производной, поскольку может существовать максимум, показанный на (см. рис. 1.4)
Оптимальные решения в инженерном программировании наиболее часто используются на фазах детального проектирования и кодирования. На более ранних фазах ЖЦПО можно найти предпочтительное решение, не являющееся оптимальным по производительности.
Как будет видно из последующего изложения, существует целый ряд соображений степень риска, производственные ограничения, психология и профессиональный рост пользователей, сопровождаемость, которые могут заставить выбрать решение, не обеспечивающее оптимальной производительности. Однако даже в таких ситуациях, как правило, важно определить оптимальную точку и оптимальное значение, так как это позволяет оценить объем усилий, которые стоит затратить на улучшение неоптимального решения.
Рис. 1.4