Разделение програмы в многоядерных процесорах

Тема в разделе "WASM.OS.DEVEL", создана пользователем DimaNS, 3 фев 2012.

  1. DimaNS

    DimaNS New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2012
    Сообщения:
    42
    Здравствуйте!

    у меня имеется двухядерный процессор..
    Подскажите пожалуйста как разделить программу чтоб одна часть программы исполнялась на одном ядре а вторая на втором??

    допустим у меня есть программа...
    Код (Text):
    1. ...
    2. A:
    3.   mov cx,5
    4.   @@:
    5.   loop @b
    6. B:
    7.   mov cx,5
    8.   @@:
    9.   loop @b
    10. C:
    11. ...
    как мне сделать чтоб код с A по В віполнялся на одном ядре а код с В по С віполнялся на втором??
     
  2. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    А Вы это на каком уровне хотите? какая операйионка? ring3?
     
  3. DimaNS

    DimaNS New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2012
    Сообщения:
    42
    на уровне инструкций

    на чистом железе.. в защищенном режиме...

    что такое ring3? и где про него можно почитать?
     
  4. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Куски кода должны быть в разных тредах.
    Тред можно привязать к процессору (ядру) -> SetThreadAffinityMask
     
  5. DimaNS

    DimaNS New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2012
    Сообщения:
    42
    насколько я понимаю то таким способом это реализуется в windows??

    а мне это нужно реализовать вне какой либо ОС...
     
  6. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Таким способом это реализуется во всех ОС.

    Тогда вам придется реализовать какое-то подобие механизма тредов.
     
  7. samuraishowdown

    samuraishowdown New Member

    Публикаций:
    0
    Регистрация:
    6 мар 2011
    Сообщения:
    70
    DimaNS
    >в защищенном режиме...
    >что такое ring3?

    Про защищённый режим слышали, а про ring3 нет. Странно...
    Со старта комп в реальном режиме и в защищённый его перевести это уже не мало кода. Не говоря уже про потоки.
    Всё таки интересно - а для чего?
     
  8. DimaNS

    DimaNS New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2012
    Сообщения:
    42
    Как перевести комп в защищённый режим я знаю..
    А от как реализовать параллельность вычислений еще не освоил.
    Уже неделю роюсь в нете и никак не могу найти примеры как это реализуется в ASMе нахожу только теорию:dntknw:

    >Всё таки интересно - а для чего?
    Я пишу БД вот и при линейной организации проги не хватает скорости вычислений...
     
  9. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    DimaNS
    Ух, сколько вам прийдется всего изучить, чтоб понять что к чему.
    Начните с Local APIC.
    А если по теме, то гуглите MultiProcessor Specification, а так же INIT IPI
    Для начала этого вам хватит, чтоб понять, всю глубину этой темы, и что ее не опишешь 1 постом, так как вы хотели
     
  10. DimaNS

    DimaNS New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2012
    Сообщения:
    42
    MultiProcessor Specification есть на русском языке??
     
  11. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Не видел. Учите инглиш.
     
  12. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    DimaNS
    Учите английский и переводите. Тогда и будет на Русском языке.
     
  13. DimaNS

    DimaNS New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2012
    Сообщения:
    42
    б*я:dntknw:( с инглешом у меня туго:dntknw:
     
  14. DimaNS

    DimaNS New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2012
    Сообщения:
    42
    может приведете пример реализации параллельности на уровне инструкций в ASMe...?
    или это нужно ковырять исходники Linux...?
     
  15. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
  16. DimaNS

    DimaNS New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2012
    Сообщения:
    42
    TermoSINteZ
    спасибо!! сейчас почитаю...
     
  17. sender0

    sender0 New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2011
    Сообщения:
    25
    OpenMP/MPI
     
  18. Incidence

    Incidence New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2011
    Сообщения:
    236
    Адрес:
    Kiev, UA
    Так может написать свою БД с использованием потоков и синхронизации, чем изобретать велосипед заново?
     
  19. totimoud

    totimoud New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2012
    Сообщения:
    78
    TermoSINteZ
    Товарищ авер, не вводите людей в заблуждение!
    IPI это способ(механизм) выполнить код атомарно, относительно других камней. К планированию сие отношения не имеет.
     
  20. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    totimoud
    Это вы заблуждаетесь, при чем в обоих ваших тезисах.