Ускорить выполнение алгоритма используя дополнительные треды и 2 ядра

Тема в разделе "WASM.BEGINNERS", создана пользователем 01478520, 1 окт 2007.

  1. 01478520

    01478520 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2007
    Сообщения:
    39
    Увеличится ли скорость выполнения алго если для каждой идентичной задачи создавать новый тред?
    2 ядра - AMD -> если создать 2 треда то они будут выполняться со скоростью одного на одноядерном процессоре? (те в 2 раза быстрее?)
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    В общем случае на 40% :) Цифра взята из какой-то книги о многопоточном программировании, если вспомню, то приведу цитату.
     
  3. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    насколько увеличится - зависит от типа задачи.
     
  4. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Зависит от задачи. Не забывай, что на создание треда время тоже тратится. Где-то в сети я читал о "пуле потоков" - создается сразу кипа тредов и они выделяются по мере необходимости. Примерно так, к примеру, работают сервера баз данных.
     
  5. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    - смотря какой проц... На коре2 - не знаю, но на Pentium D (у меня) - заметно скорее. (имею в веду в некоторых Грамотных многопоточных программах... )

    !!! смотря как ты ети свои потоки синхронизируеш... и незабудь Affinity mask - очень важно чтобы рулили на обеих ядрах одновременно ;)

    Хотя выиграш на 50% скорости врятли выйдет, но стремится к етому надо...
     
  6. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    У Рихтера хорошо описано, даже свой пример есть.