Как я могу поделиться памятью для параллельных вычислений в Mathematica?

можно ли использовать оперативную память других компьютеров для параллельных вычислений Mathematica Light Grid Server 7? Если да, то как?

13
задан slhck
30.11.2022 21:07 Количество просмотров материала 2538
Распечатать страницу

1 ответ

Mathematica реализует параллельные вычисления с помощью нескольких ядер (нескольких процессов), которые могут даже выполняться на разных машинах. Существует одно основное ядро, с которым вы взаимодействуете напрямую, и несколько подядер (контролируемых главным ядром), которые выполняют эту работу.

короче говоря: вы не можете иметь прямые доступ к памяти других машин, но вы можете полностью использовать его, запустив subkernel на каждой машине.

вы не упомянули конкретную проблему вы пытаетесь решить, но если вам нужно обработать большой набор данных, который не помещается в память одной машины параллельно, вы можете сделать следующее:

  1. сначала разделите данные на управляемые блоки.
  2. пусть каждый из подядер загружает кусок и обрабатывает его, получая результат, который не занимает много памяти.

    несколько путей контролировать subkernels от полностью ручного к полностью автоматическому. ParallelEvaluate[] даст вам мелкозернистый контроль над каждым ядром. Вы также можете использовать $KernelID$ переменная, чтобы решить, какая часть набора данных должна быть загружена в каждое ядро. См.документация для сведения.

  3. наконец, результаты будут либо собраны в главном ядре (если результат не занимает много памяти), либо будут записаны на диск из каждого подядра (если результат такой же большой, как и входные данные data)

один важный момент: для того, чтобы некоторые переменные не были автоматически разделены между ядрами (и занимали ценную память), вам нужно поместить их в отдельный контекст,как описано здесь и в нем ссылки.

1
отвечен Szabolcs 2022-12-02 04:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх