Применение суперкомпьютеров при моделировании нефтегазовых месторождений

ПРИМЕНЕНИЕ СУПЕРКОМПЬЮТЕРОВ ПРИ МОДЕЛИРОВАНИИ НЕФТЕГАЗОВЫХ МЕСТОРОЖДЕНИЙ

Е. М. Володин, А. А. Захарова

Институт кибернетики Национального исследовательского Томского политехнического университета, 634034, Томск, Россия

УДК 519.683; 519.687.4; 004.75

Рассматривается проблема оптимизации 3Б-моделирования месторождений нефти и газа с применением суперкомпьютеров. Предложено использовать типовые 3Б-симуляторы, представлена схема их применения для быстрого расчета больших моделей без загрубления.

Ключевые слова: параллельные вычисления, вычислительный кластер, суперкомпьютер, гидродинамическая модель, геологическая модель, 3Б-моделирование, разработка месторождений нефти и газа.

This article is devoted to the problem of optimization of 3D modeling of oil and gas using supercomputers. Proposed usage of typical 3D-simulators and represented the scheme of their application for fast calculation of giant models without upscaling.

Key words: parallel computing, cluster computing, supercomputer, hydrodynamic modeling, geological modeling, 3D modeling, oil and gas giant fields, upscaling.

Введение. Большинство современных нефтегазовых компаний используют цифровое 3D-моделирование при проектировании и разработке новых месторождений, определении оптимального способа извлечения ресурсов, а также применяют постоянно действующие геолого-технологические модели для управления разработкой месторождений нефти и газа [1]. Создание геологических и гидродинамических моделей - длительный процесс, занимающий от нескольких месяцев до года. Расчет моделей требует обработки большого объема информации, причем этот процесс итерационный. Число итераций может достигать нескольких сотен или тысяч, в зависимости от размеров модели каждая итерация может длиться от нескольких часов до нескольких суток, в частности, на сервере с четырехъядерным процессором Intel Xeon, 3 ГГц, ОЗУ 8 Гб.

Нередко в схеме расчета возникает несколько ветвей или так называемых вариантов, требующих многократных расчетов с целью настройки. Возникает проблема ускорения расчетов, поскольку повышение производительности компьютера в два раза обусловливает уменьшение сроков готовности модели и полученных на ее основе результатов расчетов также в 1,5-2,0 раза. Наличие суперкомпьютера позволяет значительно (в десятки раз) ускорить процесс расчета за счет выполнения параллельных вычислений. Существуют достаточно большие модели месторождений, которые без суперкомпьютера невозможно рассчитать. Необходимость создания

таких моделей с малым размером ячеек обусловлена наличием крупных месторождений с большим количеством одновременно разрабатываемых продуктивных пластов или месторождений со сложным геологическим строением. Поэтому при проектировании применяется ап-скейлинг - загрубление данных, иногда сопровождающееся существенным уменьшением точности расчетов [2]. Роль высокопроизводительных вычислений на основе детальных цифровых ЭБ-моделей в нефтегазовом секторе постоянно возрастает, поскольку средние показатели выработки месторождений снижаются, а требования к эффективности их использования становятся все более жесткими вследствие вовлечения в разработку более трудноизвлекаемых запасов.

Актуальность. В России модели нефтегазовых месторождений создаются в основном с помощью программного обеспечения - симуляторов зарубежных производителей, таких как Schlumberger, Roxar и др. [1]. Многие из них в последние годы ориентированы на развитие высокопроизводительных параллельных вычислений, что обусловлено появлением суперкомпьютеров, кластеров и просто многопроцессорных серверных систем. Например, программное обеспечение Eclipse Parallel (Schlumberger), может применяться при выполнении параллельных расчетов на суперкомпьютере. Eclipse Parallel использует оригинальную методику распараллеливания процессов расчета больших месторождений, эффективность которой оценена в различных опытах и практических работах. Основным препятствием для повсеместного внедрения этой технологии является очень высокая (даже для крупных проектирующих организаций) стоимость лицензий. В настоящее время сформировался рынок алгоритмов и методик для распараллеливания расчетов, особенно на фоне увеличения количества суперкомпьютеров в научно-исследовательских центрах, готовых оказывать услуги по расчету моделей.

Решаемые задачи. В Институте кибернетики Томского политехнического университета (ИК ТПУ) проводятся исследования методик для распараллеливания расчетов. В качестве исходной конфигурации принимаются последовательная версия симулятора Eclipse, вычислительный кластер ИК ТПУ и управляющая программа для одновременного запуска ряда потоков Eclipse на нескольких процессорах. Каждый поток рассчитывает некоторую часть всего месторождения, называемую сектором. Технология деления на секторы, описанная в [Э], основана на декомпозиции исходной модели на несколько секторных моделей и на раздельном решении задач моделирования в каждой из них. Целостность исходной полной модели обеспечивается сопряжением потоков флюидов, полей давлений и насыщенностей на границах смежных секторных моделей. Это сопряжение необходимо выполнять итерационно и повторять на каждом временном шаге моделирования. Для поддержки технологии создается специальное прикладное программное обеспечение (ПО), способное использовать гидродинамический симулятор как подпрограмму. Роль ПО заключается в независимом расчете одновременно нескольких моделей с различающимися параметрами и (или) нескольких секторов, которые затем "сшиваются" (соединение секторов модели в единую геолого-гидродинамическую ЭБ-мо-дель). Алгоритм разделения на секторы и последующего "сшивания" описан в [Э]. Следующая решаемая ПО задача состоит в повышении эффективности параллельного расчета путем оптимального разделения месторождения на секторы. Оптимальность обеспечивается непрерывной работой всех ядер суперкомпьютера при их максимальной загрузке.

Секторная модель пв=6 Оптимизированная секторная модель

1 2 3

4 5

пр - число ядер

пв - число секторов

Граничные условия

1 2 ^ /

3

4 5 6

Оптимизированные Начальные параметры параметры

пр пз = 6

Процедурный вызов управляющего кода С++

Архитектура программного обеспечения: 1 - секторная модель; 2 - библиотеки параллельного выполнения; 3 - неуправляемое программное обеспечение; 4 - хранилище данных

Алгоритм запуска параллельных расчетов. Распараллеливание расчета осуществляется одновременно двумя способами: 1) использование параллельного симулятора; 2) разделение (препроцессинг) модели месторождения на секторы с последующим параллельным расчетом этих секторов. Если используется последовательный симулятор, то распараллеливание ограничивается секторным разделением. Архитектура программного обеспечения для распараллеливания расчетов включает следующие блоки (см. рисунок):

- управляющий код для выполнения следующих функций:

- запуска библиотеки MPICH2 с параллельным кодом C++ в качестве параметра,

- обмена граничными условиями между секторами,

- сборки секторов,

- оптимизации секторной модели,

- анализа журналов работы приложений,

- статистического анализа,

- визуализации статистики и утилизации аппаратного обеспечения,

- пользовательского интерфейса,

- повторной оптимизации секторной модели для лучшего распределения нагрузки

между процессорами;

- оптимизатор модели для пре- и постпроцессинга модели, дополнительного разделения на секторы, выполнения подпрограмм для граничных условий;

- исполнитель параллельного кода C++ с библиотекой MPICH2 для выполнения параллельного кода с разделением расчета на ns/2 отдельных потоков;

- анализатор журналов для проведения анализа информации, содержащейся в журналах Eclipse, суперкомпьютере и исполняемом коде C++, и генерации управляющих сообщений;

- параллельный код C++, запускающий Eclipse Parallel с помощью библиотеки MPI/Pro и разделяющий расчет еще на np потоков (общее количество потоков становится равным np*ns/2);

- обмен граничными условиями - информационный обмен для секторов, между которыми существуют граничные условия;

- симулятор Eclipse Parallel с библиотекой MPI/PRO;

- анализатор загрузки суперкомпьютера C++;

- хранилище данных, содержащее ns каталогов по количеству секторов модели;

- управляющий код C++;

- параллельный код C++ с библиотекой MPICH2;

- симулятор Eclipse Parallel с библиотекой MPI/PRO;

- анализатор загрузки суперкомпьютера C++;

- хранилище данных.

Управляющий код C++ отвечает за запуск всех остальных блоков (исполнителя параллельного кода - оптимизатора модели с пост- и препроцессорами, анализатора журнала, обмена граничными условиями, анализатора загрузки суперкомпьютера), а также имеет пользовательский интерфейс. Оптимизатор модели разделяет ее на секторы (их число равно ns), а затем объединяет в целую модель. Разделение осуществляется в шахматном порядке, так чтобы расчет одного сектора не зависел от расчета другого, т. е. не имел граничных условий. Моделирование

сектора зависит от результатов моделирования соседних секторов, поэтому по мере готовности результатов расчета смежных секторов происходит обмен граничными условиями. Каждый сектор имеет собственный каталог для хранения исходных, расчетных и граничных данных.

Исполнитель параллельного кода осуществляет запуск расчета секторов, т. е. отдельных потоков Eclipse Parallel. Симулятор Eclipse Parallel использует для запуска параллельного режима стандартную библиотеку MPI/Pro. Число параллельных потоков Eclipse задается параметром np и может составлять от единицы (последовательный расчет) до значения, равного числу процессоров, на которое рассчитана лицензия или возможности версии симулятора. Данный программный код не подлежит редактированию, поскольку является лицензионным продуктом, поэтому возможно управление параметрами, такими как np, а также создание каталога, в котором содержатся исходные и расчетные данные. Запуском симулятора с параметрами управляет "параллельный код C++", который осуществляет запуск симулятора с заданными входными параметрами.

После достижения заданной точности расчета осуществляется слияние секторов в целую модель (постпроцессинг).

Анализатор загрузки осуществляет непрерывный мониторинг утилизации аппаратных ресурсов суперкомпьютера (загрузка процессоров, ОЗУ, жесткого диска и др.) и записывает измерения в журнал. Этот и другие журналы (журнал Eclipse, журнал всех кодов C++) обрабатываются анализатором журналов, по результатам такого анализа генерируются управляющие сообщения. На эти сообщения пользователь может отреагировать и вмешаться в процесс расчета, например, проведя дополнительное разделение сектора или остановив поток с неудовлетворительными параметрами расчета.

Заключение. В работе рассмотрены подходы к геолого-гидродинамическому ЭБ-моде-лированию с помощью высокопроизводительной вычислительной техники, поддерживающей параллельные вычисления. Описана технология проведения таких расчетов и предложен алгоритм распараллеливания вычислений, в том числе за счет создания секторных моделей.

Список литературы

1. ЗАХАРОВА А. А., ЯМПОЛЬСКИЙ В. З. Оптимизация технологии моделирования нефтегазовых месторождений на основе цифровых геологических и гидродинамических ЭБ-моделей // Пробл. информатики. 2009. № 2. С. 38-42.

2. ЗАХАРОВА А. А. Минимизация размерности трехмерных моделей нефтегазовых месторождений // Изв. ТПУ. 2006. Т. 309, № 7. С. 57-59.

3. КОСТЮЧЕНКО С. В., БОРДЗИЛОВСКИЙ А. С., ИГНАТОВ И. С., ШАПИЕВА Е. И. Принцип итерационного сопряжения секторных моделей для полномасштабного моделирования больших и гигантских пластовых систем // Нефт. хоз-во. 2009. № 8. С. 42-46.

Володин Евгений Михайлович - асп. Института кибернетики Томского политехнического университета; тел. (382-2) 42-05-40; e-mail: evgeny.volodin@gmail.com;

Захарова Алена Александровна - зав. лаб. Института кибернетики Томского политехнического университета; тел. (382-2) 42-06-98; e-mail: zaa@tpu.ru

Дата подачи - 01.11.11