Теоретические рассуждения на тему о балансе

26 июня 2004, суббота 01:17

Эта работа была прислана на наш "бессрочный" конкурс статей.


Часто в компьютерных форумах можно встретить рассуждения о балансе системы. Так, например система на базе Pentium 4 1.7GHz с памятью PC133 SDRAM вполне вероятно будет считаться несбалансированной, т.к. процессор в большинстве задач будет простаивать в ожиданиях данных из оперативной памяти. Другим примером несбалансированности можно представить игровой компьютер, оснащенный процессором уровня Athlon XP 3000+ и видеокартой GeForce 4МХ 440. В данной ситуации знатоки скажут, что видеокарта имеет несопоставимо слабую производительность по сравнению с процессором. Опытные знатоки компьютерных комплектющих могут "на глаз" определить сбалансирована система или нет, но далеко не каждый имеет такое количество опыта. А для новых комплектующих оценка "на глаз" может быть невозможна.

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

Модель

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

Количество кадров в секунду FPS (Frames Per Second) выдаваемое такой системой будет равно

(1.1)

где: время необходимое для формирования одного кадра, с

Соответственно может быть представленно как сумма:





(1.2)

где:

– время необходимое процессору для расчета одного кадра, с
– время необходимое видеоакселератору для расчета одного кадра, с

Сразу же возникает вопрос: допустим, процессор значительно быстрее, чем видеокарта, тогда, рассчитав данные для, например, кадра N, почему процессор не может начать рассчитывать кадр N+1 и к тому времени, когда видеоакселератор разделался с кадром N, кадр N+1 уже готов? В самом простейшем случае, потому что процессор должен рассчитать новое положение движущихся объектов как

(1.3)

а процессор "не знает" сколько займет у видеокарты просчитать кадр N и соответственно невозможно определить . (Всяческие оптимизации в коде вполне могут нарушать данное правило, делая данную модель частично или полностью неприемлемой).

Теперь измерив количество FPS в каком либо тесте или игровом приложении, мы легко можем определить по формуле (1.1). Немного сложнее разделить на составляющие и . Практически для этого необходимо провести два теста в аналогичных условиях, но изменив производительность одного из компонентов.

Допустим, мы уменьшим частоту процессора на 10% и предположим, что производительность процессора уменьшилась на те же 10% ( при больших изменениях частоты процессора нельзя говорить о пропорциональном изменении производительности из-за хотя бы такого фактора, как сильное изменение множителя). На основе двух тестов можно составить следующую систему уравнений (верхний индекс обозначает номер теста, а не степень):

(1.4)
(1.5)

где:

– время одного кадра в первом эксперименте, с
– время одного кадра во втором эксперименте, с
– время на рачет кадра процессором, с
– время на расчет кадра видеоакселератором, с
– коэффициент понижения/повышения производительности процессора
– коэффициент понижения/повышения производительности видеоакселератора

При небольших изменениях частоты, коэффициенты понижения/повышения производительности можно подсчитать как:

(1.6)





где:

– частота во втором эксперименте, MHz
– частота в первом эксперименте, MHz

Что бы система уравнений (1.4) и (1.5) имела решения, необходимо соблюдать условие:

(1.7)

Теперь просто сравнив значения и можно судить о сбалансированности () или несбалансированности ()системы.

Послесловие.

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

Более того, статья написана с целью донести некоторое подобие научного подхода к определению баланса в системе. Я надеюсь, что читателям будет просто интересно поэкспериментировать с чем-то новым и вполне возможно, не просто раскритиковать простую модель системы, а предложить что-то новое и более эффективное, учитывающее, например, больше факторов.

С уважением, dima333a


Ждём Ваших комментариев в специально созданной ветке конференции.

Страницы материала
Страница 1 из 0
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают