Настройте Datastore для обработки на различных машинах или кластерах

Можно создать и сохранить datastore на платформе, которая загружает и работает беспрепятственно над другой платформой путем подготовки свойства 'AlternateFileSystemRoots' datastore. Используйте это свойство когда:

  • Вы создаете datastore на локальной машине, и должны получить доступ и обработать данные на другой машине (возможно запускающий различную операционную систему).

  • Вы обрабатываете свой datastore с параллельными и распределенными вычислениями, включающими другие платформы, облако или кластерные машины.

Этот пример демонстрирует использование свойства 'AlternateFileSystemRoots' для TabularTextDatastore. Однако можно использовать тот же синтаксис для любого из этих хранилищ данных: SpreadsheetDatastore, ImageDatastore, ParquetDatastore, FileDatastore, KeyValueDatastore и TallDatastore. Чтобы использовать функциональность 'AlternateFileSystemRoots' для пользовательских хранилищ данных, смотрите matlab.io.datastore.DsFileSet и Разработайте Пользовательский Datastore.

Сохраните Datastore и нагрузку на различную платформу файловой системы

Создайте datastore в одной файловой системе, которая загружает и работает беспрепятственно над различной машиной (возможно различной операционной системы). Например, создайте datastore на машине Windows®, сохраните его, и затем загрузите его на машине Linux®.

Во-первых, прежде чем вы создаете и сохраняете datastore, идентифицируете корневые пути для своих данных по другим платформам. Корневые пути будут отличаться на основе машины или файловой системы. Например, если вы имеете данные по своей локальной машине и копии данных по кластеру, затем получаете корневые пути для доступа к данным:

  • "Z:\DataSet" для вашей локальной машины Windows.

  • "/nfs-bldg001/DataSet" для вашего кластера Linux.

Затем сопоставьте эти корневые пути при помощи параметра 'AlternateFileSystemRoots' datastore.

altRoots = ["Z:\DataSet","/nfs-bldg001/DataSet"];
ds = tabularTextDatastore('Z:\DataSet','AlternateFileSystemRoots',altRoots);

Исследуйте свойство Files datastore. В этом экземпляре свойство Files содержит местоположение ваших данных, как получено доступ вашей машиной Windows.

ds.Files
ans =

  5×1 cell array

    {'Z:\DataSet\datafile01.csv'}
    {'Z:\DataSet\datafile02.csv'}
    {'Z:\DataSet\datafile03.csv'}
    {'Z:\DataSet\datafile04.csv'}
    {'Z:\DataSet\datafile05.csv'}
Сохраните datastore.
save ds_saved_on_Windows.mat ds
Загрузите datastore на платформе Linux и исследуйте свойство Files. Поскольку корневой путь, 'Z:\DataSet' не доступен на кластере Linux, во время загрузки, функция datastore автоматически, обновляет корневые пути на основе значений, заданных в параметре 'AlternateFileSystemRoots'. Свойство Files datastore теперь содержит обновленные корневые пути для ваших данных по кластеру Linux.
load ds_saved_on_Windows.mat
ds.Files
ans =

  5×1 cell array

    {'/nfs-bldg001/DataSet/datafile01.csv'}
    {'/nfs-bldg001/DataSet/datafile02.csv'}
    {'/nfs-bldg001/DataSet/datafile03.csv'}
    {'/nfs-bldg001/DataSet/datafile04.csv'}
    {'/nfs-bldg001/DataSet/datafile05.csv'}
Можно теперь обработать и анализировать этот datastore на машине Linux.

Datastore процесса Используя параллельные и распределенные вычисления

Чтобы обработать ваш datastore с параллельными и распределенными вычислениями, которые включают другие платформы, облако или кластерные машины, необходимо предопределить параметр 'AlternateFileSystemRoots'. Этот пример демонстрирует, как создать datastore на вашей локальной машине, анализировать небольшую часть данных, и затем использовать Parallel Computing Toolbox™ и MATLAB® Parallel Server™, чтобы увеличить анализ к целому набору данных.

Создайте datastore и присвойте значение свойству 'AlternateFileSystemRoots'. Чтобы установить значение для свойства 'AlternateFileSystemRoots', идентифицируйте корневые пути для своих данных по другим платформам. Корневые пути отличаются на основе машины или файловой системы. Например, идентифицируйте корневые пути для доступа к данным от вашей машины и вашего кластера:

  • "Z:\DataSet" от вашего локального Windows Machine.

  • "/nfs-bldg001/DataSet" от кластера Linux MATLAB Parallel Server.

Затем сопоставьте эти корневые пути с помощью свойства AlternateFileSystemRoots.

altRoots = ["Z:\DataSet","/nfs-bldg001/DataSet"];
ds = tabularTextDatastore('Z:\DataSet','AlternateFileSystemRoots',altRoots);

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

tt = tall(partition(ds,100,1)); 
summary(tt); 
% analyze your data                        
tt = rmmissing(tt);               
plot(tt.MyVar1,tt.MyVar2)     

Увеличьте свой анализ к целому набору данных при помощи кластера MATLAB Parallel Server (кластер Linux). Например, запустите пул рабочего с помощью кластерного профиля, и затем выполните анализ целого набора данных при помощи возможностей параллельных и распределенных вычислений.

parpool('MyMjsProfile') 
tt = tall(ds);          
summary(tt);
% analyze your data
tt = rmmissing(tt);               
plot(tt.MyVar1,tt.MyVar2)

Смотрите также

| | | | | |

Похожие темы