Когда дело касается многоядерных процессоров, выходит, что у семерых нянек реализация вычислительного алгоритма бывает не лучше, чем у двух. По крайней мере, так следует из результатов недавнего тестирования, проведенного в известном суперкомпьютерном центре, Национальной лаборатории Сандия Министерства энергетики США.
В ходе исследования основных алгоритмов анализа больших объемов данных оказалось, что производительность вычислительных систем существенно возрастает при переходе от использования процессоров с двумя процессорными ядрами к четырем. Однако при переходе от четырех к восьми ядрам производительность почти не выросла, а еще одно удвоение количества ядер, до 16, на деле кардинально уменьшило ее до уровня двух ядер. После этого, говорится в отчете, добавление новых ядер вело только к дальнейшему ухудшению результатов.
Узким местом оказалась шина памяти. В сообщении о результатах исследования сотрудник Национальной лаборатории Джеймс Пири пояснил: «Все процессорные ядра запрашивают данные из памяти по одному и тому же межсоединению. Все равно как если бы с вами одновременно разговаривали два человека, четыре или восемь, и все требовали бы определенную информацию».
«В каком-то смысле результаты говорят об очевидном — многие приложения страдают от недостатка пропускной способности памяти даже на однопроцессорных системах», — добавляет экспериментатор Арун Родригес. Тем не менее эффективного решения проблемы, о которой хорошо известно специалистам в области параллельных вычислительных архитектур, несмотря на обилие рассматриваемых технологий, пока не найдено.
Исследователя из корпорации Intel Клея Бреширса результаты не удивили, о чем он и пишет у себя в блоге. «Я говорил об этой проблеме два года назад. Плюс ко всему напомню, что именно конкуренция за память на одной шине в конце 80-х годов и остановила развитие серверных систем с разделяемой памятью на 32 центральных процессорах».
«Сколько еще нас будет сдерживать отсутствие технологий доступа к памяти, обеспечивающих высокие требования многоядерных компьютерных систем к передаче данных? — спрашивает Бреширс. — Проблемы возникли давным-давно, и пора бы уже начать их решать».