Удомельский форум   ◊
www.udomlya.ru | Медиа-Центр | Удомля КТВ | Старый форум

Вернуться   Удомельский форум > Hard&Soft > Hardware
Справка Пользователи Календарь Сообщения за день
Hardware Обсуждение компьютерного "железа"

 
 
Опции темы Опции просмотра
Старый 08.04.2008, 19:50   #51
Pitty
Местный
 
Регистрация: 26.04.2006
Адрес: Удомля, гдежещё
Сообщений: 1,986
Вы сказали Спасибо: 676
Поблагодарили 257 раз(а) в 167 сообщениях
По умолчанию

Цитата:
Сообщение от Messiah Посмотреть сообщение
Вопрос не в этом. Он ГАРАНТИРОВАНО загрузит проц. Пробуй..отпишись. А про оптимизацию цикла на то и задание. Если выбросит, пусть довесят строку лапшой кода. Чё мало у нас её написано? Впрочем уже пошли подсказки.
Даже если не будет оптимизации, будет банальный jmp, что не так уж и сложно для современных процессоров, с их кэшами, спекулятивным выполнением, предвыборками данных и предсказанием ветвления. А тесты обычно запускают несколько процессов (Или хотя бы потоков), обеспечивают случайный доступ к памяти, загрузку (равномерную) всех устройств процессора... И кстати, 3DMark очень неплохо грузит все ядра в режиме теста CPU. Проверено на феноме.
__________________
I never saw a wildthing sorring for itself.
A small bird will drop frozen dead without ever felt sorry for itself.
Pitty вне форума  
Старый 08.04.2008, 20:02   #52
Pitty
Местный
 
Регистрация: 26.04.2006
Адрес: Удомля, гдежещё
Сообщений: 1,986
Вы сказали Спасибо: 676
Поблагодарили 257 раз(а) в 167 сообщениях
По умолчанию

Цитата:
Сообщение от Messiah Посмотреть сообщение
Видимо рамки затронутой мною темы стали расширяться и начинают где то затрагивать не только хардвер, но и основы программирования. Тем не менее продолжим изыски, в рамках приведённой вчера строки кода по 100% загрузке проца. Отличительной особенностью x86 является набор команд, количество которых в старших моделях Pentium'ов достигает пятисот, что значительно превышает количество команд во всех остальных популярных процессорах вместе взятых! Само по себе число поддерживаемых команд ни о чем не говорит, напротив, даже вызывает сомнения в их элегантности. После употребления пива (применение его опционально, когда надо порассуждать) сделаем небольшой экскурс «внутрь» и вспомним, что процессор (за редкими исключениями) исполняет не программы, написанные на языке программирования, а некий «машинный код». Какой бы крутой не был проц, это всё равно набор транзисторов (хоть 2000, хоть 20000000) и не более того, поэтому командами для него являются последовательности байтов, находящихся в памяти. Иногда команда может быть равна одному байту, иногда она занимает несколько байт. Там же, в памяти находятся и данные. Они могут находиться в отдельной области, а могут и быть «перемешаны» с кодом. Различие между кодом и данными состоит в том, что данные — это то, над чем процессор производит какие-то операции. А код — это команды, которые ему сообщают, какую именно операцию он должен произвести. Для упрощения представим себе программу и ее данные в виде последовательности байтов некой конечной длины, располагающуюся непрерывно в общем массиве памяти. Например, есть массив памяти длиной в 1’000’000 байт, а программа (вместе с данными) — это байты с номерами от 1000 до 20’000. Для того чтобы исполнить команду, процессор должен прочитать ее из памяти. Для того чтобы произвести операцию над данными, процессор должен прочитать их из памяти и после произведения над ними действия, записать их обратно в обновленном виде. Команды и данные идентифицируются с их адресом, который, по сути, представляет собой порядковый номер ячейки памяти. Вот собственно на этом и всё. Если перечитать ещё и ещё раз изложенное, мысленно представить себе происходящие процессы, то можно самому смоделировать ситуацию, которая позволит загрузить процессор простым набором кода без всяких там ухищрений. Во вложении скомпилированная вчерашняя строка кода нулевого цикла, размер которой 24 кБ.!!! (в архиве 7 кБ.) И скриншот загрузки ею 2-х "яйцевого" проца. Первый слева 100, второй сачкует, общая загрузка 50. Не верите? Проверьте.
В общем - правильно, но не надо забывать, что существует 4 "кольца" или режима работы процессора, существуют приоритеты, прерывания, в том числе и немаскируемые. Если в DOS данный код реально загружал процессор (хотя бы его декодер и АЛУ) на 100%, то в Win и nix это уже может быть и не так. Кстати, показания диспетчера задач,они тоже "приблизительные": например, сейчас у меня загрузка процессора 5% по данным ОS, а вот более глубокий анализ показывает, что загружен он на 20%.... И опять же, что считать загрузкой процессора... Ведь в нём много устройств, которые могут работать параллельно, а могут и простаивать из-за перезагрузки конвейера... или могут быть вообще не задействованы (как раз именно те транзисторные устройства, которые оперируют битиками: сумматоры, умножители и другие монстры). Насколько я знаю, виндовс считает загрузку процессора по соотношению времени нахождения процессора в потоке idle и во всех остальных потоках. При этом idle
__________________
I never saw a wildthing sorring for itself.
A small bird will drop frozen dead without ever felt sorry for itself.
Pitty вне форума  
Старый 08.04.2008, 20:08   #53
Pitty
Местный
 
Регистрация: 26.04.2006
Адрес: Удомля, гдежещё
Сообщений: 1,986
Вы сказали Спасибо: 676
Поблагодарили 257 раз(а) в 167 сообщениях
По умолчанию

Цитата:
Сообщение от Messiah Посмотреть сообщение
Видимо рамки затронутой мною темы стали расширяться и начинают где то затрагивать не только хардвер, но и основы программирования. Тем не менее продолжим изыски, в рамках приведённой вчера строки кода по 100% загрузке проца. Отличительной особенностью x86 является набор команд, количество которых в старших моделях Pentium'ов достигает пятисот, что значительно превышает количество команд во всех остальных популярных процессорах вместе взятых! Само по себе число поддерживаемых команд ни о чем не говорит, напротив, даже вызывает сомнения в их элегантности. После употребления пива (применение его опционально, когда надо порассуждать) сделаем небольшой экскурс «внутрь» и вспомним, что процессор (за редкими исключениями) исполняет не программы, написанные на языке программирования, а некий «машинный код». Какой бы крутой не был проц, это всё равно набор транзисторов (хоть 2000, хоть 20000000) и не более того, поэтому командами для него являются последовательности байтов, находящихся в памяти. Иногда команда может быть равна одному байту, иногда она занимает несколько байт. Там же, в памяти находятся и данные. Они могут находиться в отдельной области, а могут и быть «перемешаны» с кодом. Различие между кодом и данными состоит в том, что данные — это то, над чем процессор производит какие-то операции. А код — это команды, которые ему сообщают, какую именно операцию он должен произвести. Для упрощения представим себе программу и ее данные в виде последовательности байтов некой конечной длины, располагающуюся непрерывно в общем массиве памяти. Например, есть массив памяти длиной в 1’000’000 байт, а программа (вместе с данными) — это байты с номерами от 1000 до 20’000. Для того чтобы исполнить команду, процессор должен прочитать ее из памяти. Для того чтобы произвести операцию над данными, процессор должен прочитать их из памяти и после произведения над ними действия, записать их обратно в обновленном виде. Команды и данные идентифицируются с их адресом, который, по сути, представляет собой порядковый номер ячейки памяти. Вот собственно на этом и всё. Если перечитать ещё и ещё раз изложенное, мысленно представить себе происходящие процессы, то можно самому смоделировать ситуацию, которая позволит загрузить процессор простым набором кода без всяких там ухищрений. Во вложении скомпилированная вчерашняя строка кода нулевого цикла, размер которой 24 кБ.!!! (в архиве 7 кБ.) И скриншот загрузки ею 2-х "яйцевого" проца. Первый слева 100, второй сачкует, общая загрузка 50. Не верите? Проверьте.
В общем - правильно, но не надо забывать, что существует 4 "кольца" или режима работы процессора, существуют приоритеты, прерывания, в том числе и немаскируемые. Если в DOS данный код реально загружал процессор (хотя бы его декодер и АЛУ) на 100%, то в Win и nix это уже может быть и не так. Кстати, показания диспетчера задач,они тоже "приблизительные": например, сейчас у меня загрузка процессора 5% по данным ОS, а вот более глубокий анализ показывает, что загружен он на 20%.... И опять же, что считать загрузкой процессора... Ведь в нём много устройств, которые могут работать параллельно, а могут и простаивать из-за перезагрузки конвейера... или могут быть вообще не задействованы (как раз именно те транзисторные устройства, которые оперируют битиками: сумматоры, умножители и другие монстры). Насколько я знаю, виндовс считает загрузку процессора по соотношению времени нахождения процессора в потоке idle и во всех остальных потоках. При этом idle это ведь тоже поток... и он тоже может что-то делать.
Кстати, для любопытных есть такая веселенькая программка: perfmon
Во вложении архив, расширение которого надо поменять на rar.
Эта программа задействует аппаратные счетчики производительности, которые встраиваются во все процессоры, начиная с Pentium и Athlon XP.
ПОэкспериментируйте со счётчиками, интерсные штуки получаются... на моём компьютере при обычной работе в виндовс эффективность кэш 1го уровня - более 90%.... Это следствие, как я полагаю, большой зацикленности кода.
Вложения
Тип файла: m3u PerfMonitor.m3u (213.0 Кб, 5 просмотров)
__________________
I never saw a wildthing sorring for itself.
A small bird will drop frozen dead without ever felt sorry for itself.
Pitty вне форума  
Старый 08.04.2008, 20:11   #54
T-Mac
Местный
 
Аватар для T-Mac
 
Регистрация: 26.04.2006
Адрес: Европа
Сообщений: 1,247
Вы сказали Спасибо: 24
Поблагодарили 122 раз(а) в 62 сообщениях
Отправить сообщение для T-Mac с помощью ICQ
По умолчанию

Собсна фигня ваши коды имхо) Есть проги способные загрузить проц куда сильнее,одна из них ОССТ.Скрин теста собственного процессора прилагается.
__________________
T-Mac вне форума  
Старый 08.04.2008, 20:12   #55
slonik
Пользователь
 
Аватар для slonik
 
Регистрация: 26.04.2006
Сообщений: 97
Вы сказали Спасибо: 10
Поблагодарили 28 раз(а) в 11 сообщениях
По умолчанию

Цитата:
Сообщение от Pitty Посмотреть сообщение
Даже если не будет оптимизации, будет банальный jmp, что не так уж и сложно для современных процессоров, с их кэшами, спекулятивным выполнением, предвыборками данных и предсказанием ветвления. А тесты обычно запускают несколько процессов (Или хотя бы потоков), обеспечивают случайный доступ к памяти, загрузку (равномерную) всех устройств процессора... И кстати, 3DMark очень неплохо грузит все ядра в режиме теста CPU. Проверено на феноме.
[флуд]
По-моему нормальный тест на проц практически невозможно написать, иначе бы не выпускались проци с глюками(постоянно случается), причём глюки не сразу замечали. Я тоже считаю, что если винда пишет "100%" - то это не значит что проц польностью загружен(типа если станция на 100% мощности работает, то это не значит, что все работники в этот момент вкалывают на полную).
[/флуд]
C 3DMark-ом проблема - если на нём вылетает, не значит что проц, может быть что угодно(от памяти до плохого электричества в розетке и плохой кармы).
slonik вне форума  
Старый 08.04.2008, 20:26   #56
Messiah
Местный
 
Аватар для Messiah
 
Регистрация: 20.09.2007
Сообщений: 4,226
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
По умолчанию

Цитата:
Сообщение от T-Mac Посмотреть сообщение
Собсна фигня ваши коды имхо) Есть проги способные загрузить проц куда сильнее,одна из них ОССТ.Скрин теста собственного процессора прилагается.
Я тебе таких скринов работы разного утиля приведу за день не пересмотришь. Почитай пост внимательно. Тред завёлся на сравнении размеров тестовых пакетов, плавно перешёл в русло как сделать это самому и сразу было оговорено, что никакой цели не преследует, кроме одной. НА ОЧЕНЬ ПРОСТОМ и наглядном ПРИМЕРЕ объяснить всем КАК ЭТО РАБОТАЕТ!!!
Messiah вне форума  
Старый 08.04.2008, 20:31   #57
T-Mac
Местный
 
Аватар для T-Mac
 
Регистрация: 26.04.2006
Адрес: Европа
Сообщений: 1,247
Вы сказали Спасибо: 24
Поблагодарили 122 раз(а) в 62 сообщениях
Отправить сообщение для T-Mac с помощью ICQ
По умолчанию

Понятно,а я думал вы процессоры поубивать пытаетесь ))
__________________
T-Mac вне форума  
Старый 08.04.2008, 20:32   #58
Pitty
Местный
 
Регистрация: 26.04.2006
Адрес: Удомля, гдежещё
Сообщений: 1,986
Вы сказали Спасибо: 676
Поблагодарили 257 раз(а) в 167 сообщениях
По умолчанию

Цитата:
Сообщение от T-Mac Посмотреть сообщение
Понятно,а я думал вы процессоры поубивать пытаетесь ))
Для современных процессоров проще взять паяльную лампу В)) В них ведь Throttling есть... или как там оно зовется... Кстати, а в AMD есть?
Добавлка: имеется ввиду температурный тротлинг
__________________
I never saw a wildthing sorring for itself.
A small bird will drop frozen dead without ever felt sorry for itself.
Pitty вне форума  
Старый 08.04.2008, 20:34   #59
Messiah
Местный
 
Аватар для Messiah
 
Регистрация: 20.09.2007
Сообщений: 4,226
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
По умолчанию

Цитата:
Сообщение от Pitty Посмотреть сообщение
В общем - правильно, но не надо забывать, что существует 4 "кольца" или режима работы процессора, существуют приоритеты, прерывания, в том числе и немаскируемые. Если в DOS данный код реально загружал процессор (хотя бы его декодер и АЛУ) на 100%, то в Win и nix это уже может быть и не так. Кстати, показания диспетчера задач,они тоже "приблизительные": например, сейчас у меня загрузка процессора 5% по данным ОS, а вот более глубокий анализ показывает, что загружен он на 20%.... И опять же, что считать загрузкой процессора... Ведь в нём много устройств, которые могут работать параллельно, а могут и простаивать из-за перезагрузки конвейера... или могут быть вообще не задействованы (как раз именно те транзисторные устройства, которые оперируют битиками: сумматоры, умножители и другие монстры). Насколько я знаю, виндовс считает загрузку процессора по соотношению времени нахождения процессора в потоке idle и во всех остальных потоках. При этом idle это ведь тоже поток... и он тоже может что-то делать.
Кстати, для любопытных есть такая веселенькая программка: perfmon
Во вложении архив, расширение которого надо поменять на rar.
Эта программа задействует аппаратные счетчики производительности, которые встраиваются во все процессоры, начиная с Pentium и Athlon XP.
ПОэкспериментируйте со счётчиками, интерсные штуки получаются... на моём компьютере при обычной работе в виндовс эффективность кэш 1го уровня - более 90%.... Это следствие, как я полагаю, большой зацикленности кода.
И ты туда же "Брут"! Давайте околонаучные изыски оставим в стороне от простого пользователя. Если вам не перебороть желания продемонстрировать преимущества чего_то_там, пред чем_то_там, продемонстрировать знание процессов и т.д., давайте откроем отдельный топик на строго специфичную тему и я с вами там пообщаюсь отдельно. Здесь речь о другом. Я стараюсь просто и понятно изложить прописные истины и вижу что многим это интересно (судя по письмам в личку и вопросам в асю). Спросите себя, многим интересно читать ваши посты? Мне не интересно, потому что я это знаю! Остальным не интересно, потому что они этого не понимают!
Messiah вне форума  
Старый 08.04.2008, 20:50   #60
Hameleon
Местный
 
Аватар для Hameleon
 
Регистрация: 27.11.2007
Адрес: В удомле
Сообщений: 841
Вы сказали Спасибо: 97
Поблагодарили 90 раз(а) в 68 сообщениях
По умолчанию

Цитата:
Сообщение от T-Mac Посмотреть сообщение
Собсна фигня ваши коды имхо) Есть проги способные загрузить проц куда сильнее,одна из них ОССТ.Скрин теста собственного процессора прилагается.
Разогнан только по шине? Сейчас выпускают процы с открытой шиной и множителем для разгона?
Hameleon вне форума  
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 19:15. Часовой пояс GMT +3.


Для улучшения работы сайта и его взаимодействия с пользователями мы используем файлы cookie. Продолжая работу с сайтом, Вы разрешаете использование cookie-файлов. Вы всегда можете отключить файлы cookie в настройках Вашего браузера.
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot