mapreducer

Задайте окружение параллельного выполнения для mapreduce и длинные массивы

Описание

пример

mapreducer задает окружение выполнения для mapreduce или длинные массивы. Используйте mapreducer функция для изменения окружения выполнения, чтобы использовать другой кластер или переключаться между последовательной и параллельной разработками.

В окружение выполнения по умолчанию используется либо локальный MATLAB® сеанс или параллельный пул, если у вас есть Parallel Computing Toolbox™. Если у вас установлен Parallel Computing Toolbox, когда вы используете tall или mapreduce functions, MATLAB автоматически запускает параллельный пул рабочих, если вы не изменили настройки по умолчанию. По умолчанию в параллельном пуле используются локальные рабочие, обычно по одному рабочему для каждого ядра на вашем компьютере. Если вы отключите опцию Automatically create a parallel pool, необходимо явно запустить пул, если хотите использовать параллельные ресурсы. См. Раздел «Задание параллельных настроек»

При работе с длинные массивы используйте mapreducer для настройки окружения выполнения перед созданием длинный массив. Длинные массивы связаны с текущим глобальным окружением выполнения, когда они созданы. Если впоследствии вы измените глобальное окружение выполнения, то длинный массив является недопустимым, и вы должны воссоздать его.

Примечание

В MATLAB вам не нужно задавать настройки строения, используя mapreducer потому что mapreduce алгоритмы и вычисления длинный массив автоматически выполняются только в локальном сеансе работы с MATLAB. Если у вас также есть Parallel Computing Toolbox, то можно использовать дополнительный mapreducer опции строения, перечисленные на этой странице для параллельного выполнения. Если у вас есть MATLAB Compiler™, то можно использовать отдельно mapreducer опции строения для выполнения в развёрнутых окружениях.

См.: mapreducer в документации MATLAB, или mapreducer (MATLAB Compiler) в документации MATLAB Compiler.

mapreducer без входных параметров создает новый mapreducer окружение выполнения со всеми значениями по умолчанию и устанавливает ее в текущую mapreduce или окружение выполнения длинный массив. Вы можете использовать gcmr для получения текущего строения mapreducer.

  • Если у вас есть настройки по умолчанию (Automatically create a parallel pool включена), и вы не открыли параллельный пул, то mapreducer открывает пул, используя профиль кластера по умолчанию, устанавливает gcmr на mapreducer, основанный на этом пуле, и возвращает этот mapreducer.

  • Если вы открыли параллельный пул, то mapreducer наборы gcmr на mapreducer, основанный на текущем пуле, и возвращает этот mapreducer.

  • Если вы отключили Automatically create a parallel pool, а не открыли параллельный пул, то mapreducer наборы gcmr на mapreducer, основанный на локальном сеансе работы с MATLAB, и mapreducer возвращает этот mapreducer.

пример

mapreducer(0) задает, что mapreduce или tall вычисления массивов выполняются в клиентском сеансе MATLAB без использования параллельных ресурсов.

mapreducer(poolobj) задает параллельный пул для параллельного выполнения mapreduce или длинные массивы. poolobj является parallel.Pool объект. Пул по умолчанию является текущим пулом, который возвращается или открывается gcp.

mapreducer(hadoopCluster) задает Hadoop® кластер для параллельного выполнения mapreduce или длинные массивы. hadoopCluster является parallel.cluster.Hadoop объект.

mapreducer(mr) устанавливает глобальное окружение выполнения для mapreduce или длинные массивы, с использованием ранее созданного объекта MapReducer, mr, если его ObjectVisibility свойство 'On'.

mr = mapreducer(___) возвращает объект MapReducer, чтобы задать окружение выполнения. Можно задать несколько объектов MapReducer, что позволяет вам обменять окружения выполнения путем передачи одного в качестве входного параметра на mapreduce или mapreducer.

mr = mapreducer(___,'ObjectVisibility','Off') скрывает видимость объекта MapReducer, mr, с использованием любого из предыдущих синтаксисов. Используйте этот синтаксис для создания новых объектов MapReducer, не влияя на глобальное окружение выполнения mapreduce.

Примеры

Разрабатывайте последовательно, а затем используйте локальные рабочие места или кластер

Если вы хотите развиваться последовательно и не использовать локальные рабочие места или указанный кластер, введите:

mapreducer(0);
Если вы используете mapreducer чтобы изменить окружение выполнения после создания длинного массива, тот длинный массив недействителен и необходимо его воссоздать. Чтобы снова использовать локальные работники или указанный кластер, введите:
mapreducer(gcp);

mapreducer с Automatically Create a Parallel Pool выключением

Если вы отключили Automatically create a parallel pool опции, необходимо явно запустить пул, если хотите использовать параллельные ресурсы. Для получения дополнительной информации см. раздел «Задайте Настройки Parallel».

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

>> mapreducer
>> parpool('local',1);
Starting parallel pool (parpool) using the 'local' profile ... connected to 1 workers.
>> gather(min(tall(rand(1000,1))))
Evaluating tall expression using the Local MATLAB Session:
Evaluation completed in 0 sec

ans =

   5.2238e-04

Входные параметры

свернуть все

Пул для параллельного выполнения, заданный как parallel.Pool объект.

Пример: poolobj = gcp

Кластер Hadoop для параллельного выполнения, заданный как parallel.cluster.Hadoop объект.

Пример: hadoopCluster = parallel.cluster.Hadoop

Выходные аргументы

свернуть все

Окружение выполнения для mapreduce и длинные массивы, возвращенные как объект MapReducer.

Если на ObjectVisibility свойство mr установлено в 'On', затем mr задает окружение выполнения по умолчанию для всех mapreduce алгоритмы и вычисления длинный массив. Если на ObjectVisibility свойство 'Off', можно пройти mr как входной параметр для mapreduce явное определение окружения выполнения для этого конкретного вызова.

Можно задать несколько объектов MapReducer, что позволяет вам обменять окружения выполнения путем передачи одного в качестве входного параметра на mapreduce или mapreducer.

Совет

Одно из преимуществ разработки алгоритмов с длинные массивы в том, что вам нужно только один раз записать код. Вы можете разработать свой код локально, затем использовать mapreducer масштабирование и использование возможностей, предлагаемых Parallel Computing Toolbox, MATLAB Parallel Server™ или MATLAB Compiler, без необходимости переписывать алгоритм.

Введенный в R2014b