Параллельные вычисления

Тема в разделе "WASM.HEAP", создана пользователем SnugForce, 11 мар 2006.

  1. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    Хочу организовать параллельные вычисления, к примеру расчет определенного многомерного интеграла. Какие соображения будут у знатоков? Вроде понятно, что нужно создавать потоки и в них считать, а как оптимально распределить расчеты между потоками?

    Ах да, проц как минимум с Hyper-Treading.
     
  2. aSL

    aSL New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    43
    Адрес:
    Russia
    Если считать интеграл методом Монте-Карло (т.е. вводить заряд на траекториях марковской цепи, и его считать), то глубоко наплевать, как эти вычисления организовывать: каждый поток просто обсчитывает свою реализацию случайной величины, а потом результаты усредняются.



    PS:

    Другие варианты подсчета я не рассматриваю, т.к. интеграл предполагается многомерным.
     
  3. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898


    не совсем понятно, что имеется в виду.



    Если ты про простаиващий поток, которому вдруг повезло и он сосчитал быстрее, то надо разбить область интегрирования на... ну скажем 100*n_threads кусков. Чтобы каждый поток, обсчитав один кусок, брал следующий, до тех пор пока все куски не будут обсчитаны. Как разбить тебе виднее, а коэффициент 100 взят с потолка, имеет смысл поиграться с ним, когда оно будет работать.



    А если ты про уменьшение общения HT процессора с памятью, то, как бы тут на синхронизации не потерять больше, чем можно сэкономить.