Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Технический флейм »   Практическое применение многопроцессорных 586/686
RSS

Практическое применение многопроцессорных 586/686

<<Назад  Вперед>> Страницы: 1 2 3 * 4
Печать
 
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
BreakPoint, на практике, к сожалению, приоритет не всегда можно установить - у антивируса, например, или у системных процессов, т.к. запрещён доступ. Кроме того, ведь постоянно запускаются разные программы, для каждой вручную ставить приоритеты... Конечно, есть сторонние утилиты, которые облегчают всё это дело, но всё равно два процессора или ядра намного комфортнее в работе.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
BreakPoint написал:
[q]
так а чем второй проц в ПИО поможет?
[/q]
Один процессор будет занят обработкой прерываний (прерываний/секунду в PIO режиме больше
чем в DMA) от диска и программным обменом с к диском, а второй свободен для остального. Это сильно
упрощенно, на самом деле функции процессоров могут периодически меняться, и не такое четкое разделение.

Можете проверить сами - переключите диск (лучше не-системный) в PIO, а потом примерно так:
dd if=/dev/dev_name of=/dev/null bs=1m
На двухпроцессорной машине лишь небольшое торможение, на одном процессоре невозможно работать
DMA собственно в какой-то степени тоже второй процессор, для этого и придумали, чтобы разгрузить
main CPU.
BreakPoint
Гость

Ссылка

Rio444 написал:
[q]
И незаметные 1-2% выливаются в 10-20% и больше.
[/q]
откуда инфа? напишите простенькое приложение, и запустите его под дос и под винду. и посмотрите какая будет разница. уж тожно не 10-20%

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

это во первых. во вторых в контексте многопроцессорных систем все становится еще хуже. планировщик потоков в винде не гарантирует, что поток будет всегда исполнятся на каком то процессоре. то есть исполнялся поток на процессоре 1, и тут вдруг планировщику что то стрельнуло, и он этот поток на проц 2 отправил. а все данные и код остались в кэше процессора 1. и вот проц 2 загружает в кэш код и данные. исполняет поток отведенный квант. и тут планировщику опять "стреляет" и поток перепланируется на проц 1.

естесвенно планировщик потоков не дураки делали, и он такие ситуации старается разруливать. но тем не менее такое случается. конечно поток можно "руцями" пригвоздить к определенному процессору. но гайд майкрософта по многопоточным приложениям этого крайне не рекоммендует.

более того, можно написать простую многопоточную программу, которая на системе с одним процом будет работать в несколько раз быстрее чем на системе с одним процом :biggrin:

По поводу отзывчивости ничего сказать не могу, т.к. это чисто субъективная оценка
Сейчас на форуме
aleksvolgin
Advanced Member


Всего сообщений: 2123
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
21 нояб. 2010
[q]
конечно поток можно "руцями" пригвоздить к определенному процессору
[/q]
Бздуны так и делают, в роутерах.
Rio444
Гость


Откуда: Ростов-на-Дону
Всего сообщений: 8632
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
14 сен. 2014
BreakPoint написал:
[q]
откуда инфа? напишите простенькое приложение, и запустите его под дос и под винду. и посмотрите какая будет разница. уж тожно не 10-20%
[/q]
В DOS процессор тоже постоянно "отвлекается" на прерывания. Прогоните тесты на слабой машине, уровня 386, с отключенной и включенной мышью. А ведь прерывания мыши - далеко не единственные.
10-20% - экспертная оценка. Относится к не очень мощному процессору, до 1 ГГц.


BreakPoint написал:
[q]
то во первых. во вторых в контексте многопроцессорных систем все становится еще хуже. планировщик потоков в винде не гарантирует, что поток будет всегда исполнятся на каком то процессоре. то есть исполнялся поток на процессоре 1, и тут вдруг планировщику что то стрельнуло, и он этот поток на проц 2 отправил. а все данные и код остались в кэше процессора 1. и вот проц 2 загружает в кэш код и данные. исполняет поток отведенный квант. и тут планировщику опять "стреляет" и поток перепланируется на проц 1.
[/q]
Году в 2006 был у меня Athlon64 x2 3600 s939. С актуальной на то время виндой (скорее всего WinXP SP2), именно так и было. Создавалось впечатление, что одно ядро полностью отдано операционке, второе - основному приложению. Переключение по Alt+Tab из Prey в Windows происходило за доли секунды. На одноядернике Athlon64 4000 2400@2880 - примерно пару секунд.
Потом мелкософт что-то докрутил в винде, и двухядерники потеряли такую отзывчивость.
Плюс сами программы стали использовать два и более ядер.
BreakPoint
Гость

Ссылка

есть у меня мамка на 440LX двухпроцессорная. если ее с одним процом запускать, то терминатор нужен?
Сейчас на форуме
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
BreakPoint написал:
[q]
есть у меня мамка на 440LX двухпроцессорная. если ее с одним процом запускать, то терминатор нужен?
[/q]
Формально нужен, но из-за невысокой FSB как правило и так работает. Во FreeBSD SMP
можно отключить kern.smp.disabled=1, и не надо вытаскивать процессоры.

Только не делайте эту проверку на версии FreeBSD 4.x, ее SMP очень сырой, используется
так называемая BIG GIANT LOCK, и выигрыш во многих задачах гораздо меньше теоретически
возможного. Иногда даже проигрыш был. Начиная с версии 5.x BIG GIANT стали дробить на
мелкие + новый планировщик - и работа SMP резко улучшилась!

Об отзывчивости - эта схема microsoft (GUI - один условный процессор, второй все
остальное) смешная и нелепая конечно, но для рабочей станции может действительно
уменьшать время реакции от user-а. Однако она плохо масштабируется, если число CPU >2.
А вот для сервера такая схема бесполезна, тк GUI там и не нужен фактически.


BreakPoint написал:
[q]
это во первых. во вторых в контексте многопроцессорных систем все становится еще хуже. планировщик потоков в винде не гарантирует, что поток будет всегда исполнятся на каком то процессоре. то есть исполнялся поток на процессоре 1, и тут вдруг планировщику что то стрельнуло, и он этот поток на проц 2 отправил. а все данные и код остались в кэше процессора 1. и вот проц 2 загружает в кэш код и данные. исполняет поток отведенный квант. и тут планировщику опять "стреляет" и поток перепланируется на проц 1.
[/q]
Я даже больше скажу - начиная с FreeBSD 8.4(именно 8.4) активный процесс периодически
меняет CPU, на котором он исполняется.

Так в версии 8.3 запускаем один экземпляр >dd if=/dev/zero of=/dev/null bs=1m> - и греется
AP CPU, BSP холодный. Запускаем второй экземпляр dd - грееются и AP, и BSP CPU.

В версии 8.4 даже один экземпляр dd "бегает" между CPU, и нагрев равномерный.

Все это видно по выводу >top -P>, переключение происходдит раз в несколько секунд.
CodeMaster
Advanced Member
Рыцарь ордена Хламовников

Откуда: Воронеж
Всего сообщений: 1655
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
27 авг. 2010
Alvares написал:
[q]
Неужели кроме Abit BP6 еще кто-то мог Celeron`ы в дуале гонять?
[/q]
Да многие, из тех что на обычных чипсетах, на ServerWorks не работали (по крайней мере на тех материнках, что были у меня). Вот только я не помню был ли у Celeron Tualatin выведен сигнал BR#1, ибо на коперах это не очень интересная конфигурация получается.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
CodeMaster написал:
[q]
Вот только я не помню был ли у Celeron Tualatin выведен сигнал BR#1, ибо на коперах это не очень интересная конфигурация получается.
[/q]
Это одно время обсуждали на rom.by, но так и не нашли мифический BR1#
на Celeron Tualatin.
BreakPoint
Гость

Ссылка

Дошли руки собрать дуал ПеньПро (200Мгц, 512КБ кеша). Память 256МБ ЕДО СДРАМ 60нс. Мать PR440FX.
Установил Вин2000.

Начал с дуал прошки ибо легким движением руки выдергиванием ШИМа одна голова отключается.
На дуал слот 1 без терминатора пока не решился.

Немного поигрался на выходных, кое какие результаты уже есть.

Диабло 2.
В двуголовой конфигурации игра загружает систему на 70%, т.е зачатки многопоточности там есть. При детальном изучении внутренностей выяснилось следующее: Во время работы игра запускает 9 потоков. Но, чего и следовало ожидать, сам движок крутится в одном потоке. Еще в одном потоке крутится storm, который динамически подгружает данные из архивов. еще один поток для звука - но он практически не загружает систему. Остальные потоки почти не живые.
Выводы:
1. Из хорошего. Из за того, что шторм вынесли в отдельный поток, движок получает в свое распоряжение целый проц. Различие между двуголовой и одноголовой конфигурацией около 20-30% (т.е. то, что отжирает шторм). (12-17ФПС против 9-15ФПС)
2. Из плохого, даже целого проца движку не хватает. Пень3 700 рвет дуал ППро как свирепый тузик.
3. Из занимательного, К6-2/500 на ВИА МВП3 умудрился показать результат хуже ППро в одноголовой конфигурации. Особенно производительность падает когда установлена ISA звуковуха ESS 1868.

Half-Life.
Запускается 8 потоков. Но движок, как и в диабле, крутится в одном потоке. Вторая голова ему как мертвому припарка.

DOOM Benchmark.
Запускался на двухголовой и одноголовой конфигурации, чтобы проверить насколько второй проц разгружает систему. Ответ, ни на сколько. Разница между одно и двухголовой конфигурацией в пределах погрешности.
Сейчас на форуме
<<Назад  Вперед>> Страницы: 1 2 3 * 4
Печать
Полигон-2 »   Технический флейм »   Практическое применение многопроцессорных 586/686
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS