Скорость работы 4-х поточного приложения на 4-х ядерном CPU
От: rondonand  
Дата: 01.11.10 20:06
Оценка:
Подскажите, пожалуйста, ответ на следующий вопрос. Выполняю определеные расчеты. Для этого общий диапазон обрабатываемых данных разбил на 4 поддиапазона и каждый из этих поддиапазонов обрабатываю в отдельном потоке. Все поддиапазоны обрабатываются независимо, по одиннаковому алгоритму. Всего создаю 4 потока и запускаю на 4-х ядерном процессоре. Так вот не совсем понятно, почему, когда каждый поток выполняется по отдельности (загружено только одно ядро), время обработки фиксированного объема данных составляет 10 секунд, когда 2 потока одновременно — то уже 18 секунд, а когда все 4 потока — то около 30 секунд. Хотя казалось бы, что должно быть все равно около 10 секунд, т.к. потоки выполняются параллельно и независимо (у каждого потока индивидуальный набор данных в одиннаковом количестве). Конечно все равно быстрее, чем на одном ядре, но все же казалось, что независмые потоки могут выполняться и побыстрее, при параллельной работе. Процессор Core i5 750. ОС Windows XP.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.