ailev.ru

3 декабря 2009 · Комментарий

Без заголовка

Дополнительные наборы команд безусловно могут помочь. И новые архитектуры тоже. Вопрос - какие это команды и архитектуры? Это непростой вопрос. Я могу сказать с большой долей уверенности, что дешевая многоядерность с быстрым переключением контекстов - поможет. Т.е. такая как в Ниагара (возможно в Лараби), и НЕ такая как в х86 процах. Точно помогла бы возможность конструирования конвееров (реализована в некоторых типах процов). На счет остального - не уверен. Скажем - это вопрос очень серьезных исследований. А они нужны хотя бы потому, что сколько-нибудь очевидные алгоритмы СИИ не работают на обычных процессорах - они постоянно упираются в экспоненциальный рост сложности вычислений, либо в необходимость составлять излишне подробную программу (попросту перекладывая сложности на человека). А на специализированных они будут точно так же упираться в экспоненциальный рост сложности. Ибо рост производительности на порядок съедается увеличением размерности задачи на 1-2-3 единицы. Максимум что можно ожидать от железа - рост на 2-3 порядка, что дает максимум +10 битов перебираемого пространства - смешное увеличение. На фоне того, что специализированные алгоритмы перебирают пространства в миллион битов (быстро отсекая хлам разумеется). Я же почему и пишу, про важность алгоритмов - да-да, речь идет именно о перекладывании сложности на человека - потому что спциализированное железо, может сделать процесс удобнее, но не более того. Просто немного расшириться класс доступных алгоритмов. Что уже неплохо. Но все равно, основная сложность останется на человеке. Пример: автоматический прувер доказал 90% теорем возникших в процессе верификации некоторого софта, при таймауте в 3 минуты. Он сумел доказать и 10% оставшихся, при бОльшем таймауте. Если увеличить скорость работы сего прувера на порядок другой, то он будет решать большинство проблем почти что в реальном времени. Т.е. система станет существенно более юзабельной для реального инженера. Но это должен быть хорошо подготовленный инженер - чтобы разобраться с оставшимися 10% проблем.

К записи · К обсуждению