Оценка того, как частота процессора влияет на производительность ввода-вывода

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

Возьмем, к примеру, новый Macbook Pro:

высокоскоростная технология Thunderbolt I/O (ввод/вывод) обеспечивает потрясающую скорость передачи 10 гигабит в секунду в обоих направлениях

1.25 GB/s звучит неплохо, но большинство современных процессоров работают на частоте 2 Ghz. Наличие нескольких ядер не имеет большого значения, если на сетевой канал может быть назначено только одно ядро.

Таким образом, даже если программное обеспечение действует как миниатюрная операционная система и ограничивается операциями с сетью/диском, объем данных, поступающих в хранилище, не может превышать P / (2 * N)[1] кусков в секунду. Хотя это намекает на грубый предел производительности, я чувствую, что он далек от адекватного.

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

[1] P - частота процессора; N – накладные расходы алгоритма


person Saul    schedule 09.08.2011    source источник
comment
Вы также должны помнить, что многие высокоскоростные передачи данных используют DMA (прямой доступ к памяти) через специальный аппаратный интерфейс.   -  person Mark Hall    schedule 09.08.2011
comment
@Mark Hall - Хороший вопрос, спасибо за вклад.   -  person Saul    schedule 09.08.2011


Ответы (2)


Факторами аппаратного ограничения, вероятно, являются производительность шины ввода/вывода, скажем, PCIe, а в последнее время FSB, так как контроллеры памяти перемещаются с северный мост к сам процессор.

Затем, конечно, вы должны выяснить, какую обработку вам нужно выполнить на входе и сколько работы потребуется для получения вывода. Они, по крайней мере, для обычного программного обеспечения, работающего на ЦП, зависят от тактовой частоты процессора, но не только. Написание кода для использования преимуществ аппаратных средств, таких как кэширование, параллелизм на уровне инструкций и т. д., по-прежнему является черной магией, но может дать вам прирост производительности на порядок.

В основном я говорю о том, что не все программы созданы одинаковыми, и вы, вероятно, захотите принять это во внимание.

person Nikolai Fetissov    schedule 09.08.2011

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

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

Все это буферизовано, поэтому я могу видеть, как ЦП влияет на производительность файлов, только если вы каким-то образом заставите размер аппаратного буфера сделать что-то безумно маленькое. Редактировать: и я почти уверен, что Apple не позволит вам делать такие вещи. ;)

В частности, для Thunderbolt это больше касается минимальной модели ЦП, которая поддерживает типы скоростей шины, требуемые версией набора микросхем Thunderbolt, которая находится в рассматриваемой машине.

Thunderbolt — это система передачи необработанных данных, и характеристики производительности являются потенциальными максимумами, отсюда и все звездочки в спецификациях Apple. Я считаю, что это действительно устранит узкие места и в целом обеспечит интеллектуальную перетасовку данных без задержек, выполняя множество задач одновременно.

ЦП будет меньше времени ждать необходимых данных, но скорость обработки данных останется прежней. При воспроизведении или создании фильма время обработки кодеком будет таким же, но вы все равно почувствуете увеличение/отсутствие задержки, потому что данные есть, когда они в них нуждаются. Для ввода-вывода узким местом станет скорость чтения/записи вашего жесткого диска, а узким местом ЦП (для операций копирования файлов, вероятно, по крайней мере, какой-то код в Finder) останется прежним.

Другими словами, только задачи с интенсивным использованием ЦП, такие как, например, кодирование фильмов, значительно выиграют от более быстрого ЦП, в то время как преимущества Thunderbolt по сравнению с сочетанием интерфейсов повысят производительность компьютеров как с медленными, так и с быстрыми ЦП.

person Henrik Erlandsson    schedule 09.08.2011
comment
Я не знаю никаких сетевых интерфейсов, записывающих напрямую на диск. Даже при использовании DMA для чтения из ОЗУ и записи на диск требуется процессор и некоторое программное обеспечение. Здесь вступают в игру частота ЦП, архитектура и другие факторы. Есть какие-нибудь мысли по этому поводу? - person Saul; 09.08.2011
comment
Все верно. Однако я больше думал о выделенной системе. Другими словами, ни iOS, ни графики, ни звука, ни периферии, ничего. Просто голый ввод-вывод (сеть и диск). Какими будут факторы производительности в этом случае? Очевидно, что 64-разрядный процессор имеет более высокую пропускную способность данных в секунду, чем 32-разрядный, поскольку первый работает с более длинными блоками данных. И т. д. Я хотел бы оставить проблемы с жесткими дисками для отдельного вопроса и предположить, что хранилище работает мгновенно при любых обстоятельствах. - person Saul; 09.08.2011