На информационном ресурсе применяются рекомендательные технологии (информационные технологии предоставления информации на основе сбора, систематизации и анализа сведений, относящихся к предпочтениям пользователей сети "Интернет", находящихся на территории Российской Федерации)

SOS.MirTesen.ru

190 подписчиков

Свежие комментарии

Сколько ядер необходимо современному процессору?

Сколько ядер должно быть в современном CPU — два, четыре, восемь или даже шестнадцать? Производители постоянно увеличивают количество процессорных ядер, но насколько это хорошо для конечных пользователей?

Миф

Тенденция активного наращивания числа ядер в CPU, несомненно, имеет положительный эффект: компьютер работает тем быстрее, чем больше вычислительных возможностей в нем скрыто.

Правда

Ядра центрального процессора позволяют ПК функционировать быстрее лишь в тех случаях, когда на нем запущено сразу несколько программ. Если же активно всего одно ресурсоемкое приложение, то оно должно быть оптимизировано для работы с несколькими ядрами. В эпоху одноядерных CPU все программы исполнялись последовательно: каждый шаг следовал только после завершения предыдущего. Скорость работы увеличивалась лишь с ростом тактовой частоты процессора. Приложения, написанные с расчетом на последовательное исполнение инструкций, в редких случаях могут автоматически переключаться на режим параллельных вычислений, однако обычно программист должен внести в код существенные изменения, чтобы ускорить работу своего детища в многоядерной среде. При этом он сталкивается с тремя вариантами.

 

В первом случае имеются вычисления, которые легко распараллелить с минимальными трудозатратами, в третьем — совершенно не поддающиеся распараллеливанию (изменять такую программу нет необходимости).

Пример поддержки многоядерности Многие вычисления, например умножение, допустимо выполнять параллельно. Каждое из ядер будет умножать по два значения до тех пор, пока не получится нужный результат.

Пример поддержки многоядерности Многие вычисления, например умножение, допустимо выполнять параллельно. Каждое из ядер будет умножать по два значения до тех пор, пока не получится нужный результат.
 

Последовательное вычисление Многие вычисления должны осуществляться шаг за шагом. Так как необходимо соблюдать математические правила очередности арифметических действий, ни одна из частей приведенного ниже примера не может быть выполнена параллельно. 

Последовательное вычисление Многие вычисления должны осуществляться шаг за шагом. Так как необходимо соблюдать математические правила очередности арифметических действий, ни одна из частей приведенного ниже примера не может быть выполнена параллельно.

Во второй же ситуации программисту требуется отыскать такие участки кода, которые можно распараллелить. Для этого он должен знать, какие вычисления строятся в строго определенной последовательности, а какие выполняются независимо от результатов предыдущих. Необходимо также установить четкие правила на тот случай, если две части программы обратятся к одному и тому же ресурсу либо два или больше процессов одного приложения блокируют друг друга, из-за чего оно не сможет завершить свою работу. Подобный анализ программного кода требует огромных затрат времени и сил, поэтому разработчики берутся за него неохотно. Так что вы можете купить  дорогой восьмиядерный CPU, но использоваться будет лишь незначительная часть его потенциала.

 

 

Ускорение вычислений На первый взгляд эти вычисления, основанные на получении частичных результатов, нельзя выполнять параллельно. Однако более глубокий анализ позволяет увидеть, что и эта программа выигрывает от большого количества процессорных ядер.

Источник: ichip

Картина дня

наверх