вторник, 4 мая 2010 г.

"Симметричность" в симметричной многопроцессорности действительно означает "симметричность"

Это перевод The "symmetric" in symmetric multiprocessing really means "symmetric". Автор: Реймонд Чен.

Семейство операционных систем Windows NT поддерживает SMP - симметричную многопроцессорность. И "симметричную" здесь означает именно симметричность. Все процессоры обязаны иметь одинаковую скорость, одинаковый множитель и одинакового производителя. Они должны быть идентичными друг другу по всем параметрам. Это логичный вывод из взаимозаменяемости процессоров при переключении потоков с одного процессора на другой.

Если вы нарушите это правило, то будете получать очень странные результаты. Странный вывод от QueryPerformanceCounter будет наименьшей из ваших проблем. Код, который проверяет, имеет ли процессор определённые возможности, получит возможности того процессора, на котором он выполняется. Если один ваш процессор поддерживает SSE, а другой - нет, то может получиться так, что код проверки определит наличие поддержки SSE (он запустился на процессоре с поддержкой SSE), а чуть позже ваш рабочий код вылетит (когда он попытается выполнить SSE-команды на процессоре без поддержки SSE).

Спокойствие, только спокойствие. Устанавливайте себе идентичные процессоры и всё будет отлично.

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.