Треды и многопроцессорность ?

Тема в разделе "WASM.BEGINNERS", создана пользователем asmlamo, 12 июл 2007.

  1. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    Есть процесс который порождает 2 треда . Каждый из тредов что то активно считает.
    Будет ли на двухядерном процессоре баланс нагрузки.
    В том смысле что бы один тред исполнялся на одном ядре а второй тред на другом.
    OS Windows XP SP2.

    Или не все так просто ?
     
  2. TheDeath

    TheDeath New Member

    Публикаций:
    0
    Регистрация:
    20 июл 2003
    Сообщения:
    66
    Адрес:
    Russia,Новосибирск
    В идеале - да.Но если хочешь быть уверенным на все 100%,SetThreadAffininty[кажетцо так] тебе поможет.
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    asmlamo
    не обязательно. Может твои 2 треда на одном ядре, а какие-толевый 2 треда в противовес на другом.
     
  4. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    n0name
    не обязательно, но, как правило, обычно распределяется.
    С другой стороны, если присмотреться в таскменеджере
    на загрузку ядер (процов), то она будет ровнее после SSetThreadAffinityMask().

    Для наглядности можно погонять JtR (SetProcessAffinityMask() ибо он однопоточный) ;)
     
  5. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    Аффинитет (сродство) треда к какому то процессору я правильно понял ?
     
  6. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    Ну если мои два треда ресурсоемкие и левый тред не ресурсоемкий.
    Будет ли баланс нагрузки.
    Ядро Windows отслеживает это ?
     
  7. bugaga

    bugaga New Member

    Публикаций:
    0
    Регистрация:
    1 июл 2007
    Сообщения:
    361
    В первую очередь надо разработать механизм точного определения, одновременного выполнения кода, двумя ядрами. А то без этого что либо заявлять- ничем не подкрепленое голословие (да и когда дяди-пиндусы из м$, все по уму делали?). А так, в системе и без того дохрена левых потоков, да и ядро перидически дергает проц, летая туда-сюда из к-моде в пользовательский режим, со всеми вытекающими промахами кэша, и обломами мультипотоковости. Так что всё это бабко надвое сказала.