Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 5 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 25.12.2005
Откуда: Даальний восток
Написана расчётная программа, достаточно ресурсоёмкая.
Обрабатывает много цифр с постоянным обращением к ОЗУ, занимает около 500мб.

Расчёты (должны продлиться несколько мес) выполняются на I7 930@4400 с включённым НТ, чтобы одновременно запускать 8 копий программы.
Как только копия заканчивает расчёт, запускается новая с другими начальными данными итп

Чем больше потоков запускается, тем больше времени каждому из них требуется на расчёт (даже без включения НТ)
Тестили скорость на мелком отрезке - получилось следующее(копий/секунд):
1-105
2-125
3-143
4-162
5-175
6-193
7-218
8-244

По памяти, но суть понятна.

Из за чего такое может происходить?
1я копия занимает весь кеш, а последующие копии его забирают обратно под себя?
Он ведь не разделяемый у I7...
Но тогда 5-8 потоки не должны увеличивать время расчёта.
Или системной шины QPI не хватает и ядра перекрывают друг друга?

У кого какие версии?

PS
Программа написана на делфи 7.
ОСь - ХП Х64.

Пробовали прогонять на висте и других процессорах - повторяется падение скорости от кол-ва потоков.



Партнер
 

Member
Статус: Не в сети
Регистрация: 07.01.2010
блокировки есть? любые: мьютекы, блокировки кусков памяти, семафоры и т.д. на сколько активно ведётся работа с памятью? часто ли идёт запись по одним и тем же адресам?

мб есть смысл переписать под gpu?


 

Member
Статус: Не в сети
Регистрация: 25.12.2005
Откуда: Даальний восток
ToSHiC

Да не должно накладок быть, каждая копия отводит себе по 500мб памяти, с ними и работает.
Работа с ОЗУ - очень интенсивная.
Скоро отпишусь подробнее.

Под ГПУ... Да мысль-то хорошая, только на CUDA с С++ хорошо переходить, а не с делфи.
Брать для изучения CUDA именно здесь и сейчас смысла нет - не ясно, насколько затянется разработка, а через ~2-3 мес на том, что есть получим расчёты.


 

Member
Статус: Не в сети
Регистрация: 07.01.2010
если уверен, что потоки друг друга не блокируют - то бери профайлер и смотри, где тормозить начинает
http://offline.computerra.ru/offline/20 ... index.html

но вообще начни с профилирования методом пристального просмотра кода :)


 

Member
Статус: Не в сети
Регистрация: 07.01.2010
вот, нашёл отличную серию статей
http://habrahabr.ru/blogs/hi/107620/


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 5 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan