Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 1072
от 27.09.2008, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 298, Экспертов: 18
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 144671: Инструкции SSE и многопроцессорность (многоядерность). Уважаемые господа, помогите пожалуйста разобраться в проблеме. Есть процессор с 4-мя ядрами. Программа запускает 4 потока заставляя каждый поток работать только на одном процессоре (Process...

Вопрос № 144.671
Инструкции SSE и многопроцессорность (многоядерность).
Уважаемые господа, помогите пожалуйста разобраться в проблеме.
Есть процессор с 4-мя ядрами. Программа запускает 4 потока заставляя каждый поток работать только на одном процессоре (ProcessorAffinity). Программа производит вычисления (в данном случае ищет максимум по массиву float). Итак 4 потока работающие на соответствующем номере процессора, каждый считает максимум в массиве при помощи инатрукций SSE (массивы не пересекаются), Результат 2800 мсек.
Объем данных небольшой, а время выполнения получается очень большое. По этому я решил потестировать и вместо метода с использованием SSE1, вызываю метод FPU в нескольких потоках прикрепленных к определенному процессору, результат получился 250 мсек (разница на порядок).
Я снова включил метод SSE1 но убрал процессорные потоки, и все выполняю в одном потоке без привязки к ядру, результат: 500 мсек.
Я включил FPU и все выполняю в одном потоке без привязки к ядру, результат: 600 мсек.
Получается что SSE не может одновременно работать на нескольких ядрах (разница с FPU на порядок), однако время выполнения в одном потоке не привязанном к процессору при помощи SSE получается выше чем время выполнения в одном потоке при помощи FPU. А время работы на нескольких ядрах при помощи SSE непомерно велико (блокировок нет).
Поясните мне пожалуйста, неужели нельзя работать с SSE на нескольких ядрах одного процессора одновременно? Или в чем причина такого странного поведения системы? Может что-то с кэшированием?
Отправлен: 22.09.2008, 16:29
Вопрос задал: Andrik77 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 10)

Отвечает: Airyashov
В данном случае причина: либо логика вашей программы, либо неправильно используете SSE. Без кода труно что-то комментировать, но fpu явно медленнее работает. Мне интересна ваша задача, если нужен результат вот координаты.

airyashov@inbox.ru
icq: 317748666


Ответ отправил: Airyashov (статус: 8-ой класс)
Ответ отправлен: 22.09.2008, 16:47


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.3 RC 2 от 09.09.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное