mapreducer

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

Синтаксис

mapreducer
mapreducer(0)
mapreducer(poolobj)
mapreducer(hadoopCluster)
mapreducer(mr)
mr = mapreducer(___)
mr = mapreducer(___,'ObjectVisibility','Off')

Описание

пример

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

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

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

Примечание

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

См.: mapreducer в документации MATLAB или mapreducer в документации 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 является параллелью. Объект 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, то необходимо явным образом запустить пул, если вы хотите использовать параллельные ресурсы. Смотрите Задают Ваши Параллельные Настройки для деталей.

Следующий код показывает, как можно использовать 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

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

свернуть все

Объедините для параллельного выполнения, заданного как параллель. Объект 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