С большими объёмами данных и на высоких скоростях

Как правило, современные суперкомпьютеры представляют собой большое число высокопроизводительных серверов, объединённых высокоскоростной сетью. Каждый сервер содержит в себе набор процессоров с вычислительными ядрами. Для эффективного использования всей мощи суперкомпьютера современное программное обеспечение должно реализовывать как минимум две модели распараллеливания вычислительных задач: во-первых, распределение вычислений по нескольким серверам и, во-вторых, распараллеливание внутри одного сервера по вычислительным ядрам процессоров.

Что касается геофизического ПО, то на сегодняшний день к нему можно отнести огромное количество самых разных программных продуктов, решающих самые разные задачи по обработке и интерпретации геофизической информации. Решение многих из этих задач, в частности, предполагающих работу только со скважинами или суммарными сейсмическими разрезами, не нуждается в использовании больших объёмов данных, поэтому соответствующие программные продукты не требуют использования суперкомпьютеров и могут быть установлены на обычный ПК или ноутбук. С другой стороны, большинство задач обработки сейсмических данных, таких как подавление кратных волн, волн-спутников, миграция, регуляризация и даже обычная пересортировка, на сегодняшний день могут потребовать использования суперкомпьютеров в силу того, что объёмы сейсмических измерений на современных проектах достигают десятков, а то и сотен терабайт. Без использования алгоритмов распараллеливания простая сортировка такого объёма данных займёт несколько суток. В связи с этим любой современный программный комплекс по обработке сейсмических данных обязан уметь использовать все новейшие возможности суперкомпьютеров, причём использовать их наиболее эффективным образом. Любой современный суперкомпьютер работает в режиме 24/7 и, следовательно, потребляет большое количество электроэнергии, а также требует определенных затрат на его обслуживание. В связи с этим при реализации программных продуктов следует уделять особое внимание эффективности использования ресурсов суперкомпьютера, в частности, равномерности загрузки его серверов и отказоустойчивости каждой процедуры обработки.

В настоящее время на рынке геофизического ПО существует несколько программных продуктов, как зарубежного, так и отечественного производства, позволяющих в разумные сроки выполнять проекты по обработке сейсмических данных объёмом в десятки терабайт. Тем не менее, прогресс не стоит на месте, в частности, совершенствуется оборудование для сейсмических наблюдений, и не за горами тот день, когда объёмы измерений начнут превышать петабайты информации. Современные суперкомпьютеры уже сейчас способны работать с такими объёмами данных, но далеко не все программные решения (даже лидеры сегодняшнего рынка) смогут использовать их возможности, когда речь пойдёт о петабайтах сейсмических трасс. Поэтому уже сейчас стоит обратить внимание на пока ещё не столь востребованные в геофизике, но активно развивающиеся в других областях, технологии распределённых вычислений и анализа «больших данных», такие, например, как MapReduce.

В 2004 году инженеры компании Google опубликовали статью о разработанной ими модели распределённых вычислений, используемой для параллельной обработки очень больших (порядка нескольких петабайт) наборов данных в компьютерных кластерах. С тех пор появилось множество реализаций этой модели, в том числе – в 2006-м году был представлен первый прототип MapReduce от компании «Яндекс», названный YAMR (Yet Another MapReduce). Пожалуй, наиболее известной и распространённой на сегодняшний день реализацией модели MapReduce является проект Apache Hadoop — бесплатная реализация MapReduce с открытым исходным кодом на языке Java.

В 2011 году, проанализировав все преимущества и недостатки YAMR, а также имеющихся на тот момент открытых реализаций MapReduce, компания «Яндекс» решила разработать новую, более надёжную и масштабируемую платформу распределённых вычислений, названную YT. Данная платформа – это, прежде всего, среда вычислений и распределённое хранилище больших объёмов данных. Она предоставляет возможность загружать разного рода данные в распределённое хранилище и организовывать их в виде таблиц. Над таблицами можно производить различные процедуры обработки, используя, как базовые вычислительные примитивы map и reduce, так и специфические для YT операции sort, join и некоторые другие.

В компании «Яндекс.Терра» платформа YT используется для выполнения ресурсоёмких задач обработки больших объёмов сейсмических данных. Подобного рода обработка осуществляется в три этапа. На первом этапе сейсмические данные преобразуются из внутреннего формата системы интерпретационной обработки Prime в табличный формат платформы YT. На втором этапе выполняется цикл необходимых процедур обработки, и на третьем этапе полученные результаты обработки преобразуются из табличного формата YT обратно во внутренний формат системы Prime. Любой сейсмический файл (сейсмограмма, разрез, куб…) можно организовать в виде таблицы по следующей схеме: выбрать поля заголовка трасс, необходимые для дальнейшей обработки (например, NCDP, NSP, NRP…), добавить к ним поле (TRACE) тела трассы и назначить их в качестве столбцов таблицы. Далее, в процессе чтения сейсмического файла, каждая трасса превращается в строку таблицы, столбцы которой заполняются конкретными значениями выбранных полей. После этого над таблицами можно выполнять как простейшие процедуры обработки, такие как сортировка, редакция полей заголовков, одноканальная фильтрация (частотная фильтрация, передискретизация трасс, коррекция амплитуд, сдвиг по времени…), так и более сложные процедуры многоканальной фильтрации, регуляризации, подавления кратных волн, поднятия/погружения волновых полей и даже миграции. Результатом каждой выполненной процедуры является таблица, поэтому для визуального анализа качества как промежуточных, так и конечных результатов необходимо выгрузить данную таблицу (целиком или выборку) из YT и преобразовать её в сейсмический файл. Для этой цели используется специальная программа-конвертор, преобразующая данные из формата таблицы YT во внутренний формат системы Prime, который затем легко можно преобразовать в любой стандартный формат сейсмической записи, например, SEG-Y.

В зарубежных изданиях можно найти множество статей, посвящённых примерам использования другой реализации MapReduce – ApacheHadoop для обработки геофизических данных. Большинство из них носят скорее академический характер и пока не претендуют на звание производственных стандартов. Скорее всего, это связано с тем, что проектов с такими объёмами данных, где действительно имеет смысл использовать MapReduce, пока что крайне мало. Однако, учитывая темпы совершенствования оборудования для сейсмической съёмки, весьма вероятно, что с каждым годом таких проектов будет становиться все больше и больше.

Литература:

[1]    «Mapreduce: Simplified data processing on large clusters» Jeffrey Dean, Sanjay Ghemawat, OSDI’04: Sixth Symposium on Operating System Design and Implementation, San Francisco, CA, December, 2004.

Поделиться:

Обсудим? Оставить комментарий:

Email не будет опубликован. Обязательные для заполнения поля помечены *