PARALLEL.RU

Дискуссионный клуб по параллельным вычислениям
Текущее время: 24 окт 19 1:36

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: 23 июл 05 2:43 
Не в сети

Зарегистрирован: 12 май 05 20:56
Сообщения: 3
Стараниями Intel и AMD двухядерные процессоры появились на свет и если они сегодня еще не массовый продукт, то завтра неприменно им станут. Довольно смешно видеть на страницах журналов и web-ресурсов фразы, что "теперь можно без потерь производительности играть и кодировать видео одновременно". Шутки шутками, но суть ясна: пользовательского ПО для работы на 2 ядрах (да что уж там, пусть будет N) нет. Якобы через некоторое время прикладные программисты "научатся" использовать многоядерность.
Вопрос: какие средства предпочтет индустрия для разработки ПО? оптимизирующие компиляторы? как Вы считаете?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 июл 05 16:33 
Уважаемый коллега.
Мне не понятен пафос Вашего сообщения.
Двухпроцессорные системы существует уже несколько
десятилетий и успешно работают. Тот факт, что два процессора
"запихнули" в один кристалл ровным счетом ничего не меняет.
ПО для многопроцессорных систем как развивалось, так и будет
развиваться. Поставленные Вами вопросы возникли не вчера и
не позавчера. С большим или меньшим успехом они решаются
уже много десятилетий.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июл 05 0:31 
Не в сети

Зарегистрирован: 12 май 05 20:56
Сообщения: 3
victord писал(а):
Уважаемый коллега.
Мне не понятен пафос Вашего сообщения.
Двухпроцессорные системы существует уже несколько
десятилетий и успешно работают.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июл 05 9:53 
Не в сети

Зарегистрирован: 20 мар 05 22:41
Сообщения: 12
Откуда: Караганда, Казахстан
Evgeniy(R) писал(а):
...
Я имел ввиду тех, кто пишет например игры: развлекательное ПО дня сегодняшнего двухпроцессорность не используют.
...


Предположим, есть игра c N потоками для однопроцессорной системы с ОС разделения времени. Параллельные части игры исполняются каждая в своем потоке. Взаимодействие между потоками синхронизировано с помощью примитивов ОС.

На однопроцессорной системе ОС создает видимость параллельного выполнения потоков: поток, выбраный планировщиком на исполнение, вытесняет предыдущий, т.е. в каждый момент времени исполняется один поток.

Теперь эта игра запускается на двухпроцессорной системе. Что изменилось с точки зрения игры? Мне кажется - ничего. Игра создает те же N потоков, которые синхронизируются между собой теми же примитивами ОС. То, что теперь два потока могут действительно выполняться параллельно, на саму игру это никак не влияет (хотя игрок возможно заметит повышение производительности). Т.е. программы пишутся в терминах ОС (процессы, потоки, файлы и т.д.), а не в терминах "железа" (кол-во процессоров, дисков и пр.). В принципе, ОС тем и занимается, что виртуализирует реальное оборудование для каждого исполняемого процесса (ОС должна знать что теперь в системе есть N процессоров).

Получается, что N-процессорность не играет роли при написании программ. Как Вы считаете? Как программа могла бы вообще явно испозовать N-процессорность?

_________________
Наличие определяет все, отсутствие не определяет ничего


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июл 05 14:49 
Не в сети

Зарегистрирован: 12 май 05 20:56
Сообщения: 3
m-n писал(а):
Теперь эта игра запускается на двухпроцессорной системе. Что изменилось с точки зрения игры? Мне кажется - ничего.
....
Получается, что N-процессорность не играет роли при написании программ. Как Вы считаете? Как программа могла бы вообще явно испозовать N-процессорность?


DOOM3:
Pentium 4 Extreme Edition 3,73 GHz (одно ядро) - 106 fps
Pentium 4 Extreme Edition 840 3,2 GHz (два ядра) - 88 fps

Athlon 64 3800+ 2,4 GHz (одно ядро) - 78 fps
Athlon 64 X2 4800+ 2,4 GHz (два ядра) - 108 fps

все данные взяты из одного еженедельного компьютерного издания. Для P4 переход к двухядерному процессору привел к снижению производительности системы, для CPU Athlon - рост, но всего на 28%.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 июл 05 10:20 
Не в сети

Зарегистрирован: 20 мар 05 22:41
Сообщения: 12
Откуда: Караганда, Казахстан
Evgeniy(R) писал(а):
...
DOOM3:
Pentium 4 Extreme Edition 3,73 GHz (одно ядро) - 106 fps
Pentium 4 Extreme Edition 840 3,2 GHz (два ядра) - 88 fps

Athlon 64 3800+ 2,4 GHz (одно ядро) - 78 fps
Athlon 64 X2 4800+ 2,4 GHz (два ядра) - 108 fps
...


Цитата:
То, что теперь два потока могут действительно выполняться параллельно, на саму игру это никак не влияет (хотя игрок возможно заметит повышение производительности).


Ваши данные говорят, что игрок заметил изменения. Увеличение (согласно Вашим данным правильней сказать изменение) fps - это и есть изменение производительности, результат того, что мнимая параллельность стала реальной. Смею думаю, что один и тот же билд DOOM3 запускался на одно- и двух- процессорной системах (или для двухпроцессорной системы DOOM3 перекомпилировали для оптимизации под два ядра?).

Ваш изначальный вопрос касался разработки и возможной оптимизации для двухпроцессорных систем. Если DOOM3 не перекомпилировался специально для двухпроцессорной системы, то получается, что специальные методы разработки для таких систем не нужны (DOOM3 писали ведь без предположений о двухядерных процессорах). Параллельные части программы помещаются в отдельные потоки, ОС планирует эти потоки по процессору(ам). Пользователь заметит изменение производительности (и видимо только производительности). Сама программа ничего не знает о том, по скольким процессорам планируются ее потоки (если она не решит использовать какой-нибудь хронометраж).

Мне кажется, что двухядерные процессоры задуманы именно (только?) с целью увеличения производительности. Методы (параллельной) разработки останутся теми же.

_________________
Наличие определяет все, отсутствие не определяет ничего


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


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

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


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

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