Настройте 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' параметр. The 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.

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

Затем связайте эти корневые пути с помощью 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)

См. также

| | | | | |

Похожие темы