Вычислительные задачи, похоже, разделены примерно на две широкие группы.
- Проблемы с ограниченными вычислительными потребностями.
- Проблемы с неограниченными вычислительными потребностями.
Большинство проблем вписывается в эту первую категорию. Например, 3D растеризация в реальном времени. В течение долгого времени эта проблема была недоступна для типичной бытовой электроники. Не было убедительных трехмерных игр или других программ, которые могли бы создавать миры в реальном времени на Apple] [. В конце концов, однако, технологии догнали, и теперь эта проблема достижима. Аналогичная проблема - симуляция сворачивания белка. До недавнего времени было невозможно преобразовать известную пептидную последовательность в полученную молекулу белка, но современное оборудование делает это возможным за несколько часов или минут обработки.
Однако существует несколько проблем, которые по своей природе могут поглотить все доступные вычислительные ресурсы. Большинство из них - это динамические физические симуляции. Очевидно, что можно выполнить вычислительную модель, скажем, погоды. Мы занимаемся этим почти столько же, сколько у нас было компьютеров. Однако такая сложная система выигрывает от повышенной точности. симуляция при более точном пространственном и временном разрешении улучшает предсказания побитно. Но независимо от того, насколько точна любая симуляция, есть место для большей точности с последующей выгодой.
Оба типа проблем имеют очень важное применение для оптимизации всех видов. Второй тип довольно очевиден. Если программа, выполняющая симуляцию, немного улучшена, то она работает немного быстрее, давая результаты чуть раньше или с большей точностью.
Первый из них немного более тонкий, хотя. В течение определенного периода никакая оптимизация не стоит, так как не существует компьютера, который был бы достаточно быстр для этого. Через некоторое время оптимизация становится несколько бессмысленной, поскольку аппаратное обеспечение, которое работает, работает во много раз быстрее, чем необходимо. Но есть узкое окно, во время которого оптимальное решение будет работать приемлемо на текущем оборудовании, но неоптимальное решение не будет. В течение этого периода тщательно продуманная оптимизация может быть разницей между первым на рынке продуктом-победителем и также запущенным.