Тестирование на одноядерном ПК с гиперпоточностью - PullRequest
0 голосов
/ 04 декабря 2010

Если многопоточная программа безопасно работает на одноядерном процессоре с гиперпоточностью, будет ли она безопасна на двухъядерном процессоре с гиперпоточностью? Относительно безопасности нитей и т. Д.

EDIT

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

Итак, может быть, 1-ядерный htt "лежит", предотвращая мертвые блокировки, сбои, скачки ЦП или все, что мой код вызывает на 2-ядерном компьютере. Я не уверен, насколько точно 2 (логических) процессора htt ПК отличаются от двух процессоров двухъядерного ПК, насколько прозрачен htt. Если есть какие-то проблемы, я, вероятно, куплю для этого второй компьютер, поэтому я и спросил.

1 Ответ

1 голос
/ 04 декабря 2010

Вы должны быть более точными со своими вопросами;просто выбрасываю "потокобезопасность и т. д."в конце вопрос не убеждает меня, что вы знаете, что означает использование потоков.На каком языке даже написано многопоточное приложение, какую версию ОС вы используете, какой набор микросхем вы рассматриваете?

В любом случае, ответ таков: гиперпоточность «лжет» ОС и убеждает ее в том, что существует больше физическихядер в машине больше, чем есть на самом деле.С точки зрения ОС, нет никакой разницы между одноядерной конфигурацией с гиперпоточностью и двухъядерной конфигурацией без гиперпоточности.Расширение двухъядерного Hyper-Threading, в свою очередь, просто удваивает число видимых физических ядер.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...