CPU-bound
CPU-bound (также встречается как compute-bound, англ. для «ограниченный вычислениями») — в информатике состояние компьютера, при котором время выполнения задачи определяется преимущественно скоростью его процессора. При этом загрузка процессора высока, зачастую достигая 100 % в течение нескольких секунд или минут[1].
В некоторых источниках рассматривается перевод этого термина как «субординированный вычислительному времени»[1], однако в практике специалистов почти всегда используется оригинальное англоязычное название.
Состояние CPU-bound подразумевает, что улучшение производительности процессора или оптимизация исходного кода выполняемой программы может существенно повысить общую производительность системы.
История
Понятие CPU-bound возникло в ранние годы вычислительной техники, когда структура обмена данными между компонентами компьютера была относительно простой, и можно было визуально наблюдать работу одного компонента на фоне простоя других. Например, можно было легко заметить повышенную активность таких компонентов, как процессор, оперативная память, ленточные накопители, жёсткие диски, картридеры и принтеры. Системы с высокой активностью периферийных устройств были «ограничены вводом-выводом», а те, производительность которых ограничивалась объёмом оперативной памяти, называли «ограниченными памятью».
С появлением нескольких шин, параллелизма, мультипрограммирования, вытесняющей многозадачности, а также современных графических и звуковых карт, нагрузка стала более распределённой, и идентификация единственного «узкого места» перестала быть очевидной. В современных компьютерах узкое место может динамически перемещаться между различными компонентами.
Многие современные задачи направлены на использование различных подсистем, поэтому устранение узкого места для одной задачи не обязательно приводит к ускорению других. В результате повышение тактовой частоты процессора не всегда существенно влияет на общую производительность. Состояние CPU-bound рассматривается теперь лишь как один из факторов при анализе производительности компьютерных систем.
Применение функций CPU-bound для борьбы со спамом
В 1992 году исследователи компании IBM Синтия Дворк и Мони Наор опубликовали статью «Ценообразование через вычисления или борьба с нежелательной почтой»[2], где была предложена идея использования дорогостоящих для процессора (CPU-bound) вычислений для сдерживания рассылки нежелательных сообщений. Авторы отмечали, что злоупотребление ресурсом более вероятно, если стоимость его использования близка к нулю, что именно и происходит со спамом — стоимость отправки огромного количества писем крайне мала.
Дворк и Наор предположили, что проблему можно смягчить, если в процедуру отправки электронной почты внести дополнительную вычислительную нагрузку в виде ресурсоёмкой функции CPU-bound. Такая функция разово расходовала бы вычислительные мощности отправителя на каждое письмо, затрудняя массовую рассылку за короткое время.
Алгоритм работы подобной защиты предлагался таков:
- Пусть E — отправитель, D — получатель, C — сообщение, F() — CPU-bound функция (расходующая вычислительные ресурсы).
- Если D ранее согласился получать письма от E, C доставляется напрямую, функция F() не применяется.
- В противном случае отправитель высчитывает F(C) и отправляет получателю пару (C, F(C)). D проверяет правильность вычисления, и если всё верно, принимает письмо; иначе — отказывает в обработке.
- Все эти действия осуществляются программой электронной почты и для пользователя прозрачны.
- Функция F() подбирается так, чтобы проверка у получателя занимала миллисекунды, тогда как вычисления у отправителя — секунды; отправка сообщений многим адресатам без их согласия становится неэффективной. Данная мера быстро становится убыточной для спамеров, пытающихся рассылать миллионы сообщений.
Основной недостаток предлагаемого метода — существенная разница в производительности у различных систем. Современные быстрые процессоры значительно опережают устаревшие или мобильные устройства, что ставит добросовестных пользователей с менее мощным оборудованием в невыгодное положение по сравнению со спамерами, обладающими высокопроизводительными системами. Та же операция может занимать секунды на современном ПК, минуты — на устаревшем или на смартфоне, что делает систему неудобной для обычных пользователей, особенно мобильных. Различие вычислительных мощностей между клиентами — один из главных барьеров для повсеместного внедрения схем, основанных на CPU-bound вычислениях.
Считается, что применение «ограниченных памятью» функций может частично устранить этот недостаток.
Примечания
Литература
- Синтия Дворк, Мони Наор. Pricing via Processing or Combating Junk Mail. 1992.