FERRA.RU РАМБЛЕР

Перейти к содержимому


Фотография

Как должен работать двуядерник ?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 47

#1 Da on samiy

Da on samiy

    Постоянный пользователь

  • Пользователи
  • PipPip
  • 670 сообщений
  • Город:Москва
  • Интересы:Тяжёлая атлетика, хорошая музыка, интернет/компьютеры.

Отправлено 02 Январь 2007 - 10:59

Назрел у меня такой вопрос.
Все пишут про то, что 1 поток - одна игра следовательно работать над одной игрой будет одно ядро второе типа простаивать ? Так это или нет ?
Я вот например - включаю Диспечер задач Windows. запускаю игру какую нибудь поиграю несколько десятков минут выхожу - и вижу на графике следующее, процессор (AMD Athlon 64 X2 4800+ без разгона) нагружаеться на два ядра поровну, пример - Oblivion ~ скачут от 0%-до 80% в среднем по 50-60% каждое ядро. тогда почему пишут что игра запустица на одном ядре , упрется в него, а второе будет выполнять другие запущенные программы ?

P.S: Для полноты - Видеокарта MSI NX7900GT VT2D256-E @ 590/1800 Что бы сильно ненагружать видяху игру запускаю в разрешении 1280*1024 без всяких АА . AF. и HDR всё остальное на максимум. FPS "на глаз" точно больше 40.
Память 4Gb DDR-400 (3-3-3-8 2T), Диспечер показывает, что максимум было задействовано ~1200MB.

Сообщение отредактировал LeKToR: 02 Январь 2007 - 11:04

Core 2 Duo E-8400 @ 4000mhz , Gigabyte 780i SLI-DS5, OCZ 2*2048mb DDR2-1066, 2*XFX 8800GT 512mb XXX - Sli, 2*Seagette Baracuda SATA2 320gb 16mb NCQ - Raid0, Creative X-Fi Fatal1ty, Termaltake 850W.

#2 DeBOBAHer

DeBOBAHer

    Гуру

  • Модераторы
  • PipPipPipPip
  • 5 041 сообщений
  • Город:)
  • Интересы:SithAdmin

Отправлено 02 Январь 2007 - 11:04

На самом деле, одно приложение (игра, например) может создать более одного потока. И каждый поток можно вынести на отдельное ядро. Это вопрос оптимизации конкретного приложения...
Какой же русский не любит быстрой езды - бессмысленной и беспощадной!
Нет такой чистой и светлой мысли, которую бы русский человек не смог бы выразить в грязной матерной форме.
Еще никто так, как русские, не глушил рыбу! (в Тихом океане - да космической станцией!)

#3 Da on samiy

Da on samiy

    Постоянный пользователь

  • Пользователи
  • PipPip
  • 670 сообщений
  • Город:Москва
  • Интересы:Тяжёлая атлетика, хорошая музыка, интернет/компьютеры.

Отправлено 02 Январь 2007 - 11:10

На самом деле, одно приложение (игра, например) может создать более одного потока. И каждый поток можно вынести на отдельное ядро. Это вопрос оптимизации конкретного приложения...

<{POST_SNAPBACK}>


Поровну во схех этих играх - :
NFS-U, NFS-U2, NFS-MW, NFS-C, CSS, Oblivion, Gotika-3, FiFA-07, NHL-07, NBA-07, Cronicle of the riddik, The Battle for Middle-earth ™ II, GTA San Andreas, GTA Vice City, Splinter Cell Double Agent.
P.S:- Прошу прощения за сокращения.
P.S.S:- FEAR забыл.

Сообщение отредактировал LeKToR: 02 Январь 2007 - 12:54

Core 2 Duo E-8400 @ 4000mhz , Gigabyte 780i SLI-DS5, OCZ 2*2048mb DDR2-1066, 2*XFX 8800GT 512mb XXX - Sli, 2*Seagette Baracuda SATA2 320gb 16mb NCQ - Raid0, Creative X-Fi Fatal1ty, Termaltake 850W.

#4 DeBOBAHer

DeBOBAHer

    Гуру

  • Модераторы
  • PipPipPipPip
  • 5 041 сообщений
  • Город:)
  • Интересы:SithAdmin

Отправлено 02 Январь 2007 - 11:23

Поровну во схех этих играх - :
NFS-U, NFS-U2, NFS-MW,  NFS-C, CSS, Oblivion, Gotika-3, FiFA-07, NHL-07, NBA-07, Cronicle of the riddik, The Battle for Middle-earth ™ II, GTA San Andreas, GTA Vice City, Splinter Cell Double Agent.
P.S:- Прошу прощения за сокращения.

<{POST_SNAPBACK}>

Значит все эти игры хорошо оптимизированы :)
Какой же русский не любит быстрой езды - бессмысленной и беспощадной!
Нет такой чистой и светлой мысли, которую бы русский человек не смог бы выразить в грязной матерной форме.
Еще никто так, как русские, не глушил рыбу! (в Тихом океане - да космической станцией!)

#5 Da on samiy

Da on samiy

    Постоянный пользователь

  • Пользователи
  • PipPip
  • 670 сообщений
  • Город:Москва
  • Интересы:Тяжёлая атлетика, хорошая музыка, интернет/компьютеры.

Отправлено 02 Январь 2007 - 12:58

Значит все эти игры хорошо оптимизированы :)

<{POST_SNAPBACK}>


:huh: Особенно GTA Vice city :blink: начала 2003 года, если неошибаюсь. кстати когда менял AMD Athlon 64 3200+ на двуядерный было забавно играть в GTA VC и GTA SA , скорость игрового процесса была в 2 раза быстрее, пришлось переустонавливать игры чтобы это исправить.

Сообщение отредактировал LeKToR: 02 Январь 2007 - 02:45

Core 2 Duo E-8400 @ 4000mhz , Gigabyte 780i SLI-DS5, OCZ 2*2048mb DDR2-1066, 2*XFX 8800GT 512mb XXX - Sli, 2*Seagette Baracuda SATA2 320gb 16mb NCQ - Raid0, Creative X-Fi Fatal1ty, Termaltake 850W.

#6 DeBOBAHer

DeBOBAHer

    Гуру

  • Модераторы
  • PipPipPipPip
  • 5 041 сообщений
  • Город:)
  • Интересы:SithAdmin

Отправлено 02 Январь 2007 - 01:18

Ну ладно. Значит процессы ОС потребляют достаточно много процессорного времени. У тебя по-любому не один процесс в системе запущен. Может это, кстати, антивирь "кушает" процессорное время. А может подсистема работы с жёстким диском :) А может дрова под видяху...
Что ж если ты отрицаешь оптимизацию некоторых игр, значит у тебя оптимизированные винды.
Круто я загнул :)
Какой же русский не любит быстрой езды - бессмысленной и беспощадной!
Нет такой чистой и светлой мысли, которую бы русский человек не смог бы выразить в грязной матерной форме.
Еще никто так, как русские, не глушил рыбу! (в Тихом океане - да космической станцией!)

#7 Da on samiy

Da on samiy

    Постоянный пользователь

  • Пользователи
  • PipPip
  • 670 сообщений
  • Город:Москва
  • Интересы:Тяжёлая атлетика, хорошая музыка, интернет/компьютеры.

Отправлено 02 Январь 2007 - 03:06

После смены процессора (особенно после смены с одноядерного на двуядерный) надо ли мне было , что то переустонавливать ? Дрова ? Винду ?(хм... больше полугода, как поставил- и не одна двушка была (был ешё X2 3800+) а вот вопрос появился токо сейчас).
А пишу всё это, потому что много читал, про то что, неоптимизированная игра под двушки запустится только на одном ядре так сказать... и игре- типа ;) всё равно сколько ядер , она упрётся в мощьность одного ядра, а на втором будут исполняться запущенные приложения, антивирус там и прочее. А вот проверив это у себя, я вижу совсем иное, что ядра распределяют нагрузку ~ поровну и при играх и даже при архивирование/разорхивировании, при том, что на обзорах процессоров X2, показывали совсем иное, у них там при архивировании работало токо одно ядро :huh: ?. :unsure:

P.S:- Может быть это как то связано с версией биоса материнской платы Asus A8N-SLI Premium, а биос тот что у меня - 1011-005 я ни на одном сайте Asus ненашёл, там токо 1009 и уже 1302. ? :unsure: ? Кстати в обзорах процев X2 на такой же плате как у меня, стояла версия биоса - 1009 ?
Core 2 Duo E-8400 @ 4000mhz , Gigabyte 780i SLI-DS5, OCZ 2*2048mb DDR2-1066, 2*XFX 8800GT 512mb XXX - Sli, 2*Seagette Baracuda SATA2 320gb 16mb NCQ - Raid0, Creative X-Fi Fatal1ty, Termaltake 850W.

#8 DeBOBAHer

DeBOBAHer

    Гуру

  • Модераторы
  • PipPipPipPip
  • 5 041 сообщений
  • Город:)
  • Интересы:SithAdmin

Отправлено 02 Январь 2007 - 04:15

Скорее это связано с оптимизацией софта и драйверов процессора. А так же ОС.
Софт разделяется на несколько потоков, что даёт возможность ОС распихать эти потоки на множество ядер.
Какой же русский не любит быстрой езды - бессмысленной и беспощадной!
Нет такой чистой и светлой мысли, которую бы русский человек не смог бы выразить в грязной матерной форме.
Еще никто так, как русские, не глушил рыбу! (в Тихом океане - да космической станцией!)

#9 Loco.

Loco.

    Гуру

  • Гуру
  • PipPipPipPip
  • 6 274 сообщений
  • Пол:Мужчина

Отправлено 03 Январь 2007 - 05:02

Назрел у меня такой вопрос.
Все пишут про то, что  1 поток - одна игра  следовательно работать над одной игрой будет одно ядро второе типа простаивать ? Так это или нет ?

Вопрос хороший, здравый. Для полноты картины разделим все приложения(в данном случае - игры) на две категории:
1. не поддерживающие многопоточность
2. поддерживающие многопоточность
и поговорим о 1-ой категории(со 2-ой ведь и так все ясно, наверное). Ты как раз правильно описал, что когда однопоточная игра запущена, то в диспетчере задач задействованы якобы два ядра на 50-60%(чаще всего примерно по 50 на каждом ядре показана нагрузка). На самом деле все дело в том, что игра задействует только одно ядро, а диспетчер задач только трактует это таким образом, что загружены оба но понемногу, то есть это просто "обман зрения".
Игры которые умеют задействовать оба ядра грузят их по 80% минимум, обычно, да и то если бы была надобность, то грузили бы их на все 100%, но сейчас таких игр нет.

#10 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 04 Январь 2007 - 02:03

Кстати, не стоит забывать, что процесс и поток - вещи разные. Диспетчер показывает один процесс - но это не значит что процесс использует только один поток. Это легко узнать - достаточно в настройках диспетчера задач поставить галку показа потоков и тогда на против каждого процесса будет выводиться кол-во порожденных им потоков. Вряд ли дистетчер будет заниматься "обманом зрения" (хотя неточность его индикации допускаю).

Думаю практически все современные игры идут многопоточно. Врядли программисты например расчет графики и работу AI пустят на один поток.

Сообщение отредактировал v_user: 04 Январь 2007 - 02:09

Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#11 Da on samiy

Da on samiy

    Постоянный пользователь

  • Пользователи
  • PipPip
  • 670 сообщений
  • Город:Москва
  • Интересы:Тяжёлая атлетика, хорошая музыка, интернет/компьютеры.

Отправлено 04 Январь 2007 - 02:33

Кстати, не стоит забывать, что процесс и поток - вещи разные. Диспетчер показывает один процесс - но это не значит что процесс использует только один поток. Это легко узнать - достаточно в настройках диспетчера задач поставить галку показа потоков и тогда на против каждого процесса будет выводиться кол-во порожденных им потоков. Вряд ли дистетчер будет заниматься "обманом зрения" (хотя неточность его индикации допускаю).

Думаю практически все современные игры идут многопоточно. Врядли программисты например расчет графики и работу AI пустят на один поток.

<{POST_SNAPBACK}>


Что то я ненашёл в диспечере задач, галку показа потоков.
Core 2 Duo E-8400 @ 4000mhz , Gigabyte 780i SLI-DS5, OCZ 2*2048mb DDR2-1066, 2*XFX 8800GT 512mb XXX - Sli, 2*Seagette Baracuda SATA2 320gb 16mb NCQ - Raid0, Creative X-Fi Fatal1ty, Termaltake 850W.

#12 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 04 Январь 2007 - 02:35

Открывешь диспетчер. В меню выбираешь Вид --> Выбрать столбцы. Там ставишь галку на "Счетчик потоков".
Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#13 Loco.

Loco.

    Гуру

  • Гуру
  • PipPipPipPip
  • 6 274 сообщений
  • Пол:Мужчина

Отправлено 04 Январь 2007 - 06:09

Думаю практически все современные игры идут многопоточно. Врядли программисты например расчет графики и работу AI пустят на один поток.

Такие игры можно посчитать на пальцах одной руки.
А программистов, которые умеют писать такой код, чтобы расчеты разбивались на несколько потоков, еще очень мало даже среди тех, кто пишет игры.

#14 Dblma

Dblma

    Постоянный пользователь

  • Пользователи
  • PipPip
  • 387 сообщений
  • Пол:Мужчина
  • Город:Москва, блЫн!

Отправлено 05 Январь 2007 - 01:32

Вспоминаю из курса "Операционные системы" и книги Таненбаума "Современные операционные системы". Виндовс и линух у нас многопроцессные системы. Т.е. на одном процессоре (рассмотрим пока так) происходит выполнение нескольких процессов. Как это происходит? Есть некоторый диспетчер процессов/потоков (для него на самом деле между процессом и потоком разницы нет) который каждому процессу (в дальнейшем под словом процесс будем понимать так же и поток) выделяет процессорное время. Очерёдность и количество этого процессорного времени выбирается из каких-то соображений, например ставятся приоритеты. Так вот процесс i выполняется на процессоре, и его процессорное время кончилось... Этот процесс переходит в состояние ожидания, записывая все нужные ему данные в память, и ждёт освобождения любого из процессов... Не обязательно это будет тот же процессор, на котором он работал до этого. Т.е. теоретически получается, что даже программа не оптимизированная на многопоточность будет выполняться на обоих процессорах и причем примерно поровну... Просто при одинаковых задачах свободный процессор будет появляться (теоретически) в 2 раза чаще.

Всё вышесказанное - моё воспоминание... Т.ч. на 100% достоверность я не претендую.

Кстати, отсюда возникает вопрос - почему же 2хядерник работает не в 2 раза быстрее - ответ прост. Ядра то у на 2, а все остальные ресурсы в одном экземпляре, как то память, видюха, жесткий - отсюда возникают конфликты за ресурсы (причем довольно часто) и один процессор зачастую может простаивать в ожидании какого-либо ресурса. Для решения этой проблемы и используют оптимизацию на многопроцессорность - т.е. синхронизацию потоков для равномерного распределения ресурсов.

Сообщение отредактировал Dblma: 05 Январь 2007 - 01:38

Добродетель вознаграждается, а порок приятен сам по себе.

#15 DeBOBAHer

DeBOBAHer

    Гуру

  • Модераторы
  • PipPipPipPip
  • 5 041 сообщений
  • Город:)
  • Интересы:SithAdmin

Отправлено 05 Январь 2007 - 09:27

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

#16 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 05 Январь 2007 - 05:42

Есть некоторый диспетчер процессов/потоков (для него на самом деле между процессом и потоком разницы нет) который каждому процессу (в дальнейшем под словом процесс будем понимать так же и поток) выделяет процессорное время.

<{POST_SNAPBACK}>


Если рассматривать Линух - то да. А с виндами - фик то вам. Вспомним тут (на форуме) недавнее обсуждение кол-ва памяти. Винда под процесс может выделить только 2 Гига оперативы (при определенных условиях 3ГБ). Но это именно на процесс!! Процесс может пародить сколь угодное количество потоков (чтоб их можно было бы раскидать по процессорам), но все эти потоки будут ворочаться в рамках тех 2гигов, которые дали процессу. В линухе же новому потоку выдается новая область памяти.
Так что в случае виндов процесс не равно поток.
Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#17 Dblma

Dblma

    Постоянный пользователь

  • Пользователи
  • PipPip
  • 387 сообщений
  • Пол:Мужчина
  • Город:Москва, блЫн!

Отправлено 05 Январь 2007 - 07:58

Если рассматривать Линух - то да. А с виндами - фик то вам. Вспомним тут (на форуме) недавнее обсуждение кол-ва памяти. Винда под процесс может выделить только 2 Гига оперативы (при определенных условиях 3ГБ). Но это именно на процесс!! Процесс может пародить сколь угодное количество потоков (чтоб их можно было бы раскидать по процессорам), но все эти потоки будут ворочаться в рамках тех 2гигов, которые дали процессу. В линухе же новому потоку выдается новая область памяти.
Так что в случае виндов процесс не равно поток.

<{POST_SNAPBACK}>

Ну по определению (не вдаваясь в терминологию Виндовса и Линуха) поток - это выполнение программного кода, процесс - это один или более потоков, плюс память, плюс ресурсы (короче окружение). И в Линухе и в Виндовсе у потока НЕТ своего адресного пространства по определению!

А для диспетчера процессов пофих на процессы и потоки. Он не разбирается особенно с памятью, а лишь выбирает поток (процесс) для выполнения на свободном процессоре. Этот диспетчер - некая програмка, которая обязана быть маленькой и быстрой - дабы самой не сильно загружать процессор(ы)!

Сообщение отредактировал Dblma: 05 Январь 2007 - 08:01

Добродетель вознаграждается, а порок приятен сам по себе.

#18 DeBOBAHer

DeBOBAHer

    Гуру

  • Модераторы
  • PipPipPipPip
  • 5 041 сообщений
  • Город:)
  • Интересы:SithAdmin

Отправлено 05 Январь 2007 - 09:58

Ну по определению (не вдаваясь в терминологию Виндовса и Линуха) поток - это выполнение программного кода, процесс - это один или более потоков, плюс память, плюс ресурсы (короче окружение). И в Линухе и в Виндовсе у потока НЕТ своего адресного пространства по определению!

А для диспетчера процессов пофих на процессы и потоки. Он не разбирается особенно с памятью, а лишь выбирает поток (процесс) для выполнения на свободном процессоре. Этот диспетчер - некая програмка, которая обязана быть маленькой и быстрой - дабы самой не сильно загружать процессор(ы)!

<{POST_SNAPBACK}>

Каждому процессу выделяется своё виртуальное пространство.
Какой же русский не любит быстрой езды - бессмысленной и беспощадной!
Нет такой чистой и светлой мысли, которую бы русский человек не смог бы выразить в грязной матерной форме.
Еще никто так, как русские, не глушил рыбу! (в Тихом океане - да космической станцией!)

#19 Dblma

Dblma

    Постоянный пользователь

  • Пользователи
  • PipPip
  • 387 сообщений
  • Пол:Мужчина
  • Город:Москва, блЫн!

Отправлено 05 Январь 2007 - 10:37

Каждому процессу выделяется своё виртуальное пространство.

<{POST_SNAPBACK}>

Я про что и говорю! А вот потоку своё адресное пространство не выделяется - он использует адресное пространство процесса, в котором он создан.
Добродетель вознаграждается, а порок приятен сам по себе.

#20 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 09 Январь 2007 - 10:38

Да, действительно. Уточнил у знающих. Перепутал. Сказали по линухом надобностю создания потоков не пользуются, т.к. там работает функция создания новых процессов с использованием расшареной памяти.

Сообщение отредактировал v_user: 09 Январь 2007 - 10:40

Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей

Rambler's Top100