Может ли пул потоков .NET использовать преимущества многоядерных процессоров, а не только многоядерных? - PullRequest
1 голос
/ 21 декабря 2010

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

Приложение в настоящее время разворачивается, и местные ИТ-специалисты рассматривают возможность собрать машину с двумя ЦП по 4 ядра в каждом. Это приложение .NET 4. Как вы думаете, я мог бы по существу использовать 8 процессоров или только 4?

Спасибо.

Ответы [ 4 ]

6 голосов
/ 21 декабря 2010

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

Каркас не различает многоядерные и физические процессоры.

3 голосов
/ 21 декабря 2010

Восемь.Каждое ядро ​​является логическим процессором.Фреймворк мало знает, есть ли у вас один восьмиъядерный процессор или два четырехъядерных процессора.

1 голос
/ 09 марта 2011

Вы не упомянули, какой конкретный чип Core i7 вы используете, но afaik core i7 существует с моделями с двумя сокетами, и в этом случае это фактически два двухъядерных процессора, что делает его общим числом 4 ядер. Да, любая реализация, написанная с использованием .Net Framework, может использовать все доступные ядра (даже гиперпоточность), так как она контролируется ОС автоматически (если и до тех пор, пока ваше приложение не укажет, как ядра прикреплены к процессорам, и не использует маску процессора). на основе физического идентификатора процессора).

0 голосов
/ 21 декабря 2010

Разве не единственное отличие заключается в физическом расположении процессора - что они находятся на одном и том же кусочке кремния?

Это может различаться, если используется гиперпоточность (гдеЧетырехъядерный процессор имеет гиперпоточность и, таким образом, выставляет 8 "процессоров"), но даже тогда я сомневаюсь, что фреймворк, вероятно, просто увидит 8 процессоров.

Двухъядерная система с гиперпоточностью,поэтому потенциально может выставить 16 процессоров.

...