Ядра процессора и ассемблер

Тема в разделе "WASM.ASSEMBLER", создана пользователем lorddesiz, 14 май 2008.

  1. lorddesiz

    lorddesiz New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    8
    Помогите пожалуйста найти ответ на следующий вопрос:
    Как на ассемблере можно распределять потоки по ядрам или процессорам без использования Win32? И существует ли такая возможность вообще, или этим занимается процессор сам?

    К чему относятся регистры процессора - к ядру, к физическому процессору или ко всем ядрам на одной системной шине?

    Где можно найти информацию по распределению нагрузки по ядрам, просмотрел Intelовские документы, ничего адекватного не обноружил по этому вопросу?
     
  2. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.729
    А чем тебе WinAPI32 не угодил ?

    Ну если ОС такое делает то наверняка возможно.

    Просто тебе фактически нужно писать самому планировшик тредов с учетом аффинитета к процессору.

    Едва ли тебе это по зубам ...
     
  3. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    lorddesiz
    темы зачем дублировать?
     
  4. lorddesiz

    lorddesiz New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    8
    asmlamo
    Не люблю я Win32, не люблю...

    А на счет планировщика тредов - ну так это тяжело реализовать на ассемблере, а вот алгоритм достаточно прост. Я писал симуляторы работы и планировщиков и менеджеров памяти на ЯВУ.

    Зачем все это нужно? Я пишу расчетные программы. Раньше юзал Windows и разные языкии программирования. Не вижу никакого смысла юзать ASM для работы с Win32 - неудобно (кроме писанины дров, но это не моя тема). Да и скорсть работы С++ и ASM почти одинаковая (если руки прямые), фактически все в винду упирается. Другой вариант - писать ядро самому, пусть небольшое и убогое по возможностям, но свое. Тогда легко реализовать то, что ты хочешь, не тратя аппаратные средства на всевозможную Win32 инфраструктуру.
     
  5. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    когда поток ставится на выполнение, система старается (или не очень) равномерно распределить нагрузку по ядрам/процам.
    к ядру
    Распределением нагрузки по ядрам занимается система. При чем тут Интел?
     
  6. lorddesiz

    lorddesiz New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    8
    Извините, просто сначала в новички написал, а потом подумал, что сюда лучше.
     
  7. lorddesiz

    lorddesiz New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    8
    Я имею ввиду IPI - interprocessor interupt.
     
  8. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    IPI - это средство ;)
    алгоритмы реализует ОС
    совет, не занимайся ерундой
    API предоставляет все необходимые средства привязки потока к CPU
    это будет переносимее, надежнее и скорее всего быстрее
     
  9. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.729
    Совет просто полюби а вопрос закрыт :)



    Все вполне удобно. Дело твое ...


    На каком основании ты делаеш такие выводы ?
    И с чего ты решил что твой планировщик буде эффективнее чем виндовый ?




    Глупость ...

    Нахрена свой велосипед изобретать.
    Если есть масса ОС которые пишут и отлаживают не один год.

    Людая из которых будет куда быстрее и надежнее чем твое поделие.


    Чепуха ...

    На Win32 инфраструктуру тратится 1-5% ресурсов проца (если отключить сервисы и пр.).

    А теперь вопрос нахрена городить огород ради 5% ???

    Так и твое псевдоядро будет ресурсы кушать.

    А в свете 2-4 ядерных процов загрузка 1 ядра планировшиком винды на 5% вообще чепуха ...
     
  10. lorddesiz

    lorddesiz New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    8
    А мне вам такрй вопрос: нахрена вообще юзать ассемблер? Извините, я напишу программу на C# в N раз быстрее чем на ASM. Отлажу в N+M раз быстрее. Ну подумаешь, падение производительности 30%.

    Вопрос второй: никогда не задавались мыслью, как работает процессор? Как работает ОС? Механизмы диспетчеризации? А мне вот интересно. Самый лучший вариант понять - попробовать. Я неплохо изучил принцип работы QNX в теории, хотелось бы практики.

    Ага, особенно Windows Vista. Быстре-е, надежне-е. Сколько Vista весит? 4 GB? А сколько QNX? И что из этого быстрее работает?

    Может и не будет, хотя, если ты смотрел системные библиотеки Win32, то они большей частью на С написаны, а отнюдь не на ASMe. Причем писано, переписано, переписано. Эволюцию можно проследить по заголовочным файлам. Это просто шедевр...
     
  11. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.729
    Ну если только из соображений обучения ...

    Ну и пиши под QNX нафиг самому писать ...


    Ты определись что важнее процесс или результат ...

    Т.е. если ты решаеш прикладные задачи то терять время на изучение системных тонкостей просто нет времени.

    Если просто повышаеш свой уровень в решении системных задач то пиши свой велосипед ...
     
  12. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    del, ибо слишком импульсивно.
     
  13. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    lorddesiz
    А что QNX (6.3?) и правда быстрее чем виста? Имеется ввиду под Х-ми или фотоном? (не имею сейчас ни той, ни той)
    QNX - классная ось. Говорят сорцы выложили. На ядро тоже. Это правда? Не слыхали? А где они лежат? И какая на них лицензия, если вы в курсе?
     
  14. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    lorddesiz
    для обучения пожалуйста
    для решения конкретной задачи не стОит
     
  15. lorddesiz

    lorddesiz New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    8
    Абсолютно согласен. Просто есть работа, а есть для души... Вот если бы когда-нибудь совместить :)

    Для моих целей идеально бы подошло перекинуть часть расчетов на GPU. А там хоть под винду, хоть под дос пиши... Никто не пробовал?
     
  16. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    lorddesiz
    nVIdia CUDA или шейдерами в свой текстурный render target. Как больше нравится :) Правда CUDA только с 9600 вроде поддерживается...

    UPD: "Перекинуть" можно, вопрос - есть ли смысл? время передачи по шине между CPU и GPU тоже стоит учитывать. Плюс специфика работы GPU - на нем сейчас считаю многопоточные задачи: системы частиц, AI и т.п. Если нужно перемножить 2 матрицы, то использовать GPU это как забивать гвоздь экскаватором.
    С другой стороны никто не мешает использовать программы, написанные под 4-8-16 ядерные системы. А учитывая возможности SSE4.x вообще скоро думать перестанем :)
     
  17. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    _basmp_
    Угу... расскажи это моим коллегам, которые от ее выходок на стену лазают регулярно, четыре раза в день. А компилер-то там какое загляденье! Одни сообщения об ошибках - просто тренировка для телепата! А как она RAID любит! Не-е-е, нафиг, нафиг, я срочно начинаю любить мелкософт... :):):)
     
  18. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Ustus
    Если говорить про качества именно самой оси, то QNX получше будет, хотя и не без недостатков, есно. А если брать всё в комплексе -- удобство работы в том числе, то, понятное дело, с мелкомягкими пока что соревноваться проблематично...
     
  19. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Ustus
    Не знаю в чем у них проблема. Но при разработке, вообще говоря, я воспринимаю такое поведение как норму. И под МСВ тоже.
    компилер там gcc в оболочке qcc (6-ка). оболочкой можно не пользоватся.
    С рэйдом под QNX дела не имел. Я почему-то думаю, что вы работаете с 4-кой. Это старая ось. Кроме того есть драйвера в инете. Или напишите сами. В поставке исчерпывающая дока с примерами. Видел я и переводы на руссиан по менеджерам ресурсов. Есть хорошие книги на русском (Кёртен и др). На QSSL-овском сайте - форум и QDN. Есть отличный русский форум (qnx.org.ru), там большинство вопросов уже разобрано по атомам. Они даже книжку написали по мотивам.
    Совершенно разные предназначения.

    SII
    Если говорить о десктопе, игрушках и ворде - то МСВ. Если-же говорить о разработке драйверов (менеджеров ресурсов) или удаленной отладке на встроеной системе или о создание масштабируемой дистрибуции, для чего QNX и предназначена, то МСВ тут.. как-бы помягче сказать.. и рядом не валялась. Есть гостинная, а есть гараж.

    ЗЫ есть у меня подозрение Ustus, что ваши коллеги тестят драйвера не вылезая из фотона или еще хуже, из Х-в..
     
  20. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    Ustus
    И что с того? Я связываясь с вендой на стенку лез от её выходок. И в плане программирования, и в плане установки вендовс на raid, и в плане дезинфекции этого инкубатора malware. Но, я обучаем и теперь я не связываюсь с вендой, и на стенку лезть у меня не возникает ни желания, ни необходимости. ;)
    Если же твои коллеги не могут самостоятельно придти к этой мысли, ты им порекомендуй сменить работу -- нервные клетки, говорят не восстанавливаются, а персональная несовместимость с ОСью слишком перегружает нервную систему. Никакая зарплата этого не окупит. Здоровье дороже.