Предположим, у меня есть веб-приложение, работающее на S-серверах со средним количеством C-ядер каждый. Мое приложение обрабатывает в среднем R запросов в любой момент. Предполагая, что R примерно в 10 раз больше, чем S * C, выгоды от распространения работы запроса через несколько ядер не будут минимальными, поскольку каждое ядро уже обрабатывает около 10 запросов?Является ли параллельное вычисление важным для веб-разработки?
Если я прав, почему this guy говорит, что параллелизм настолько важен для будущего Python, как язык для веб-разработки?
Я вижу много причин, почему мой аргумент был бы неправильным. Возможно, приложение получает несколько очень сложных запросов, которые превосходят число доступных ядер. Или, может быть, существует большая вариация в сложности запросов, поэтому одному ядру может быть не повезло и ему даются 10 последовательных сложных запросов, в результате некоторые из них занимают гораздо больше времени, чем это разумно. Учитывая, что парень, который написал вышеупомянутое эссе, гораздо более опытным, чем я, я думаю, что есть большой шанс, что я ошибаюсь в этом, но я хотел бы знать, почему.
Err, вы всегда хотите параллелизм для веб-серверов по своей природе - и параллелизм * легко * для веб-серверов на основе FCGI/SCGI, так как вы просто запускаете несколько бэкэнд-процессов. Его аргумент, похоже, является проблемой памяти при использовании процессов вместо потоков (как я описал ранее). –
Ваш аргумент о серверах среднего класса сейчас верен, но его аргумент - и это разумно, по моему мнению, в том, что он не скоро. Четырехъядерные системы превратились из высокопроизводительного серверного оборудования в дешевое стандартное настольное оборудование почти за одну ночь, и разумно ожидать, что тенденция к увеличению количества ядер продолжится. Таким образом, «средние серверы» будут * сами * иметь гораздо больше ядер и нуждаться в параллелизме для соответствия. –