Способ и система для создания контрольных точек во время моделирования



Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования
Способ и система для создания контрольных точек во время моделирования

 


Владельцы патента RU 2573269:

ЭКСОНМОБИЛ АПСТРИМ РИСЕРЧ КОМПАНИ (US)

Изобретение относится к средствам создания контрольных точек во время моделирования. Технический результат заключается в снижении вычислительных затрат компьютерного моделирования. Выбирают временной шаг для сохранения контрольной точки корреляции, причем контрольная точка корреляции содержит данные, используемые для корреляции значения, распространяющегося в прямом направлении, сформированного посредством компьютерного моделирования, причем компьютерное моделирование не может быть повторно начато со значений, сохраненных в контрольной точке корреляции. Причем выбор временного шага для сохранения контрольной точки корреляции предусматривает определение баланса между сохранением контрольной точки полного состояния, с которой компьютерное моделирование может быть повторно начато, и сохранением контрольной точки корреляции и сокращением требований к объему памяти компьютера. Выделяют пространство памяти для контрольной точки корреляции. Значение, распространяющееся в обратном направлении, из данных измерений коррелируют со значением, распространяющимся в прямом направлении, из компьютерного моделирования, причем прямое значение, распространяющееся в прямом направлении, сохраняется в контрольной точке корреляции. 4 н. и 24 з.п. ф-лы, 33 ил., 3 табл.

 

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ

Эта заявка испрашивает приоритет предварительной заявки США 61/346298, поданной 19 мая 2010 года, озаглавленной "СПОСОБ И СИСТЕМА ДЛЯ СОЗДАНИЯ КОНТРОЛЬНЫХ ТОЧЕК ВО ВРЕМЯ МОДЕЛИРОВАНИЯ", которая включена в настоящий документ посредством ссылки во всей своей полноте.

ОБЛАСТЬ ТЕХНИКИ

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

УРОВЕНЬ ТЕХНИКИ

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

Многие способы оценки параметров, инверсии и построения изображений выполняют вычисления прямого моделирования, применяющего последовательность шагов, которые экстраполируются в прямом направлении во времени от начального состояния. Соответствующий способ инверсии или построения изображений применяет сопряженный оператор, продвигающийся назад во времени от конечного состояния. Затем способ может сформировать информацию о системе посредством взаимной корреляции прямого моделирования с сопряженным моделированием на одинаковых временных шагах. Сформированная информация затем может использоваться для улучшения параметров моделирования, используемых для соответствия доступным данным, а также в других целях. В качестве примера информация может использоваться для формирования градиента или гессиана, связывающего изменения в целевой функции с изменениями в параметрах моделирования. В другом примере информация может использоваться для создания изображения, как это делается в глубинной миграции в обратном времени (RTM).

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

Например, глубинная миграция в обратном времени (RTM) без суммирования обычно используется для построения изображений подземных структур при выполнении нефтегазовой разведки с помощью сейсмических данных. Во время миграции RTM волновое поле приемника, зарегистрированное в сейсмическом эксперименте, распространяется в обратном временном порядке и подвергается взаимной корреляции с моделированием в прямом временном порядке волнового поля источника. Это означает, что к моделированию источника в прямом временном порядке нужно получить доступ в обратном временном порядке. Прямолинейный подход состоял бы в том, чтобы вычислить и сохранить все временные шаги распространяющегося в прямом направлении волнового поля источника во всех подземных местоположениях. Это может быть непрактично из-за огромных объемов используемых данных. В качестве примера, для стандартного тестового проекта усовершенствованного моделирования (SEAM) общества геофизиков-разведчиков (SEG) это может означать хранение 40000 временных шагов с объемом 84 гигабайта каждый, что в общей сложности составляет приблизительно 3,36 петабайт данных. Проблематичным является не только требуемый объем памяти, но и времена доступа, необходимые для перемещения этого объема данных.

Для уменьшения необходимой памяти состояние волнового поля прямого моделирования, которое называется здесь контрольной точкой с полным состоянием, может быть определено как включающее в себя всю информацию, необходимую либо для выполнения взаимной корреляции, либо для повторного начала прямого моделирования от данного временного шага. Контрольные точки с полным состоянием могут затем быть сохранены в меньшем количестве тщательно выбранных временных шагов, с тем чтобы прямое моделирование могло быть повторно начато от сохраненных контрольных точек и распространено до требуемых временных шагов. (Термин контрольная точка также может быть использован для обозначения упомянутых выше тщательно выбранных временных шагов в отличие от данных, сохраненных на таких временных шагах). Таким образом, прямое моделирование может быть при необходимости повторно вычислено на временных шагах в обратном временном порядке, начиная с сохраненных контрольных точек. Память контрольной точки повторно используется для новых контрольных точек всякий раз, когда она больше не нужна. Компромисс состоит в выполнении большего количества вычислений для минимизации требований хранения и ввода/вывода. Эта методика может быть полезна всякий раз, когда используемые размеры данных намного больше, чем доступная память.

Гриванк (Griewank) и Уолтэр (Walther) предложили "оптимальный" способ выбора, какие временные шаги должны быть отмечены контрольной точкой, при условии, что доступен указанный объем памяти, в котором можно сохранить отмеченные контрольной точкой состояния волнового поля прямого моделирования. См., например, Griewank, A., "Achieving logarithmic growth of temporal and spatial complexity in reverse automatic differentiation," 1 Optimization Methods and Software 35-54 (1992); Griewank, A., Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation, Society for Industrial and Applied Mathematics (Philadelphia, PA, 2000); Griewank, A. and A. Walther, "Algorithm 799: An implementation of checkpointing for the reverse or adjoint mode of computational differentiation," 26 ACM Transactions on Mathematical Software 19-45 (2000).

В примере моделирования SEAM можно предположить, что имеется 40000 временных шагов в прямом моделировании. С использованием хранилища или памяти для сохранения контрольных точек буфера состояния волнового поля со 100 источниками в каждый момент времени к прямому моделированию можно получить доступ в обратном порядке с использованием 114747 временных шагов прямого моделирования, используя схему создания контрольных точек Гриванка. Таким образом, коэффициент экономии пространства памяти составляет примерно 400 за счет выполнения в 2,87 раз больше вычислений для прямого моделирования. Для применения миграции RTM повторное вычисление временных шагов для прямого моделирования от контрольных точек часто может быть более быстрым, чем выполнение ввода/вывода, требуемых для доступа к сохраненным временным шагам прямого моделирования, даже если доступно достаточное дисковое пространство для хранения всех временных шагов прямого моделирования, в случае медленного диска и быстрого вычисления.

Саймз (Symes) применил оптимальное создание контрольных точек Гриванка как эффективную стратегию реализации миграции в обратном времени. Symes, W.W., 2007, Reverse time migration with optimal checkpointing, 72 Geophysics (No. 5), P.SM213-SM221. Способ создания контрольных точек может быть особенно важным для миграции RTM, которая включает в себя физику затухания волнового поля (например, построение изображений с использованием P-волн и S-волн), поскольку стратегия обращения по времени прямого моделирования с использованием создания контрольных точек волнового поля всегда является устойчивой. Для сравнения альтернативная стратегия реализации миграции RTM сохранения граничных значений и заключительного состояния волнового поля и выполнения обратной во времени экстраполяции моделирования волнового поля источника может являться нестабильной. Кроме того, нестабильность в этом методе делает ее неподходящей стратегией применения, когда затухание включено как часть физики в прямое моделирование.

Способ создания контрольных точек для выполнения обращения во времени прямого моделирования имеет намного более общее применение, чем только для миграции RTM. Применения являются довольно общими и связаны с любым продвигающимся вперед по времени средством моделирования. Они включают в себя средства моделирования коллектора, потока жидкости, теплопередачи, геологическое моделирование бассейна, а также сейсмическую полную инверсию волнового поля (FWI). См., например, Tarantola, A., 1984, Inversion of seismic reflection data in the acoustic approximation: 49 Geophysics 1259-1266; Tarantola, A., Inverse Problem Theory: Method for Data Fitting and Model Parameter Estimation, Elsevier 125-133, 144-258 (1987); Plessix, R. E., "A review of the adjoint-state method for computing the gradient of a functional with geophysical applications," 167 Geophysical Journal International 495-503 (2006). Krebs, J. R., J. E. Anderson, D. Hinkley, R. Neelamani, S. Lee, A. Baumstein, M. D. Lacasse, "Fast Full-Wavefield Seismic Inversion Using Encoded Sources," 74 Geophysics P.WCC177-WCC188 (2009). The techniques may also apply to methods of automatic differentiation. See, e.g., Griewank, A., Juedes, D., and Srinivasan, "ADOL-C, a package for the automatic differentiation of algorithms written in C/C++," Preprint MCS-180-1190, Mathematics and Computer Science Division, Argonne National Laboratory, Argonne, Illinois (1990); Griewank, A., Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation, Society for Industrial and Applied Mathematics (Philadelphia, PA, 2000).

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Иллюстративный вариант осуществления настоящей методики обеспечивает способ снижения вычислительных затрат компьютерного моделирования. Способ включает в себя выполнение стратегии создания контрольных точек, причем стратегия создания контрольных точек содержит этап, на котором сохраняют контрольную точку корреляции (иногда называемую здесь "буфером корреляции") на временном шаге, причем контрольная точка корреляции включает в себя данные, используемые для корреляции распространяющегося в прямом направлении значения, сформированного посредством компьютерного моделирования, причем компьютерное моделирование не может быть повторно начато от значений, сохраненных в контрольной точке корреляции. Стратегия создания контрольных точек также содержит этапы, на которых выделяют пространство памяти для контрольной точки корреляции и выполняют компьютерное моделирование на каждом из множества временных шагов. В каждом из множества временных шагов распространяющееся в обратном направлении значение из данных измерений коррелируется с распространяющимся в прямом направлении значением из компьютерного моделирования. Распространяющееся в прямом направлении значение сохраняется в контрольной точке корреляции.

Способ может также содержать этапы, на которых сохраняют контрольную точку с полным состоянием и повторно начинают моделирование от контрольной точки с полным состоянием. Кроме того, способ может содержать этап, на котором определяют оптимальное местоположения для сохранения контрольной точки, причем оптимальное местоположение представляет собой пространство памяти, выделенное в памяти графического процессора (GPU), оперативной памяти (RAM), на виртуальном диске в оперативной памяти (RAM-диске), на накопителе на дисках или в любой их комбинации. Определение оптимального местоположения по меньшей мере частично основано на скорости доступа к пространству памяти. Пространство памяти, используемое для контрольной точки корреляции, может быть меньше, чем пространство памяти, используемое для контрольной точки с полным состоянием. Оптимизация стратегии создания контрольных точек может содержат этап, на котором определяют вычислительные затраты, соответствующие сохранению контрольной точки корреляции. Вычислительные затраты могут быть минимизированы по меньшей мере частично на основе скорости доступа для каждого из множества блоков хранения и отношения пространства памяти, требуемого для контрольной точки с полным состоянием, к пространству памяти, требуемому для контрольной точки корреляции. Может быть сформирована таблица, которая включает в себя временные шаги и тип контрольной точки, которая должна быть сохранена, в каждом из временных шагов.

Определение вычислительных затрат может содержать этапы, на которых вычисляют максимальное количество контрольных точек корреляции, которые могут быть сохранены в блоке быстрой памяти, и вычисляют максимальное количество контрольных точек корреляции, которые могут быть сохранены в блоке медленной памяти. Если какие-либо контрольные точки корреляции могут быть сохранены в быстрой памяти, вычисляют оптимальное количество проходов, если используется только быстрая память, и добавляют его в список. Минимальное количество проходов, если используется только быстрая память, может быть вычислено и добавлено в список. Если какие-либо контрольные точки корреляции могут быть сохранены в медленной памяти, минимальное количество проходов, если используются все типы памяти, может быть вычислено и добавлено в список. Оптимальное количество проходов, если используется вся быстрая память и сохраняется по меньшей мере одна контрольная точка корреляции в медленной памяти, может быть вычислено и добавлено в список, если оно меньше последнего значения в списке. Целочисленное значение, ближайшее к каждому значению в списке, может быть добавлено в список. Могут быть вычислены затраты для каждого значения в списке, и могут быть возвращены минимальные затраты.

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

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

Способ может содержать этап, на котором сохраняют контрольную точку с полным состоянием (также называемую здесь "буфером с полным состоянием") во время моделирования, причем моделирование может быть повторно начато от контрольной точки с полным состоянием. Способ также может содержать этапы, на которых вычисляют затраты для сохранения контрольной точки с полным состоянием и определяют временной шаг для сохранения контрольной точки с полным состоянием по меньшей мере частично на основе затрат. Распространяющиеся в прямом направлении данные могут быть коррелированы с распространяющимися в обратном направлении данными на следующем временном шаге.

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

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Преимущества настоящей методики лучше понятны посредством ссылки на последующее подробное описание и приложенные чертежи.

Фиг. 1 - схема интересующей области, иллюстрирующая один сейсмический эксперимент в земной среде в соответствии с иллюстративным вариантом осуществления настоящей методики;

Фиг. 2 - схема, иллюстрирующая операцию миграции в обратном времени (RTM) в соответствии с иллюстративным вариантом осуществления настоящей методики;

Фиг. 3A - блок-схема последовательности операций, показывающая способ выполнения взаимной корреляции в обратном времени, такой как миграция RTM, в соответствии с иллюстративным вариантом осуществления настоящей методики;

Фиг. 3B - блок-схема последовательности операций, показывающая прямое распространение волнового поля для взаимной корреляции в обратном времени в соответствии с иллюстративным вариантом осуществления настоящей методики;

Фиг. 4 - схема, полезная при иллюстрировании минимальных вычислительных затрат с использованием контрольной точки с полным состоянием на временном шаге с индексом k, в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиг. 5A-B - схемы, полезные при иллюстрировании временных шагов, на которых контрольные точки с полным состоянием или контрольные точки корреляции могут быть сохранены, в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиги. 6A-C - схемы, полезные при иллюстрировании операции схемы Гриванка и оптимальной схемы создания контрольных точек упрощенного моделирования, имеющего 55 временных шагов, в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиг. 7A-C - схемы, которые сравнивают создание контрольных точек для стандартных корреляций и создание контрольных точек, когда прошлое состояние в сопряженном вычислении влияет на взаимную корреляцию с текущим состоянием при прямом вычислении, в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиг. 8A-E - схемы, полезные при иллюстрировании нескольких ситуаций, в которых объем быстрой и медленной памяти различен, в то время как пространство памяти, требуемое контрольной точкой каждого типа предполагается одинаковым, в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиг. 9A-E - схемы, полезные при иллюстрировании нескольких ситуаций, в которых объем быстрой и медленной памяти различен, причем пространство памяти, требуемое для контрольной точки корреляции, равно двум, и для контрольной точки с полным состоянием равно трем, в соответствии с иллюстративными вариантами осуществления настоящей методики;

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

Фиг. 11 - блок-схема последовательности операций способа вычисления минимальных затрат без контрольных точек в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиг. 12 - блок-схема последовательности операций способа вычисления минимальных затрат и наилучшего местоположения для взаимной корреляции n состояний в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиг. 13 - блок-схема последовательности операций, показывающая, каким образом предварительно вычислить таблицу минимальных затрат, соответствующих контрольной точке, взятой в оптимальном местоположении k, в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиг. 14 - блок-схема последовательности операций способа вычисления минимальных затрат и оптимальной стратегии создания контрольных точек для корреляции n состояний с nƒ_used буферами состояния быстрой памяти и ns_used буферами состояния медленной памяти в ситуации, в которой начальная контрольная точка находится в памяти типа StartType, в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиг. 15 - график, показывающий отношение между минимальными затратами и местоположением первой контрольной точки с полным состоянием (k) для взаимной корреляции 266 шагов с использованием четырех буферов, когда S/C=12 и Rs=Ws=Rc=Wc=0, в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиг. 16 - график, показывающий отношение между минимальными затратами и местоположением первой контрольной точки с полным состоянием для взаимной корреляции 266 шагов с использованием четырех буферов, когда S/C=12, Rs=Ws=12 и Rc=Wc=1, в соответствии с иллюстративными вариантами осуществления настоящей методики;

Фиг. 17 - график, показывающий увеличение производительности оптимальной стратегии создания контрольных точек с быстрой и с медленной памятью по сравнению с оптимальной стратегией создания контрольных точек только с быстрой памятью и по сравнению со стратегией создания контрольных точек Гриванка, в соответствии с иллюстративными вариантами осуществления настоящей методики

Фиг. 18 - блок-схема иллюстративной кластерной вычислительной системы 1800, которая может использоваться для реализации настоящей методики, в соответствии с иллюстративными вариантами осуществления настоящей методики.

ПОДРОБНОЕ ОПИСАНИЕ ИЛЛЮСТРАТИВНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

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

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

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

"Машиночитаемый носитель" или "непреходящий машиночитаемый носитель" используется здесь для обозначения любого непреходящего хранилища и/или среды передачи, которые участвуют в обеспечении команд процессору для исполнения. Такая среда может включать в себя, но без ограничения, энергонезависимые носители и энергозависимые носители. Энергонезависимые мультимедиа включают в себя, например, NVRAM или магнитные или оптические диски. Энергозависимые носители включают в себя динамическую память, такую как оперативная память. Стандартные формы машиночитаемых носителей включают в себя, например, гибкий диск, жесткий диск, массив жестких дисков, магнитную ленту или любой другой магнитный носитель, магнитооптический носитель, компакт-диск (CD-ROM), голографический носитель, любой другой оптический носитель, RAM, PROM и EPROM, EPROM FLASH-память, твердотельный носитель, такой как карта памяти, любая другая микросхема памяти или картридж, или любой другой материальный носитель, из которого компьютер может считывать данные или команды.

Используемый здесь термин "система координат" обозначает прямоугольную (Декартову) координатную область с пространственными координатами (x, y, z) и координатой t времени. Сейсмические данные обычно собираются и хранятся в системе координат. Пространственные координаты x и y могут представлять ортогональные горизонтальные координатные направления, такие как продольное и поперечное направления съемки, в котором получены данные. Пространственная координата z обычно представляет вертикальное координатное направление, такое как глубина, измеряемая как положительное значение в направлении вниз.

"Взаимная корреляция" - процесс, который измеряет, насколько два временных ряда чисел сходны друг с другом. Взаимная корреляция может быть линейной или нелинейной, может рассматривать аспекты взаимной информации (например, основанные на энтропии) или может быть выполнена любым другим методом, который считается полезным для пользователя. Здесь взаимная корреляция между импульсом возбуждения, спроецированным вперед во времени, и сейсмической записью, спроецированной назад во времени, используется для миграции принятой энергии в точку отражения в подземном пласте, и идентифицирует местоположение (см. миграция).

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

Термин "иллюстративный" используется здесь исключительно для обозначения "служащий примером, экземпляром или иллюстрацией". Любой вариант осуществления, описанный здесь как "иллюстративный", не должен рассматриваться как предпочтительный или имеющий преимущества по сравнению с другими вариантами осуществления.

"Пластом" называется масса породы или другие подземные твердые фазы, которые являются достаточно отличительным и непрерывными, и они могут быть нанесены на карту, например, сейсмическими методами. Пласт может представлять собой массу породы преимущественно одного типа или комбинации типов. Пласт может содержать одну или более нефтегазоносных зон. Следует отметить, что термины пласт, коллектор и интервал могут использоваться взаимозаменяемо, но будут обычно использоваться для обозначения последовательно уменьшающихся подземных областей, зон или объемов. Более определенно, пласт обычно будет самой большой подземной областью, коллектор обычно будет областью в пределах пласта и обычно будет представлять собой нефтегазоносную зону (пласт, коллектор или интервал, имеющий нефть, газ, сырую нефть и любую их комбинацию), и интервал обычно относится к подобласти или части коллектора. Нефтегазоносная зона может быть отделена от других нефтегазоносных зон зонами низкой проницаемости, такими как микрозернистые известняки, сланцы или подобные сланцам (сильно уплотненные) пески. В одном или более вариантах осуществления нефтегазоносная зона включает в себя сырую нефть в дополнение к песку, глине или другим пористым твердым фазам.

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

"Углеводороды" обычно определяются как молекулы, сформированные прежде всего из атомов углерода и водорода, например нефть и природный газ. Углеводороды также могут включать в себя другие элементы, такие как, но без ограничения, галогены, металлы, азот, кислород и/или сера. Углеводороды могут добываться из коллекторов углеводородов через скважины, проходящие через нефтегазоносный пласт. Углеводороды, полученные из коллектора углеводородов, могут включать в себя, но без ограничения, кероген, битум, пиробитум, асфальтен, нефть или их комбинации. Углеводороды могут быть расположены в недрах земли внутри минеральных материнских пород или смежно с ними. Материнские породы могут включать в себя, но без ограничения, осадочную породу, песок, силицилиты, карбонаты, диатомиты и другие пористые среды.

"Гидрофоном" называются активные элементы, которые чувствительны к волнам сжатия (звуковым волнам) в морской среде. Гидрофон также включает в себя поддерживающий корпус (или структуру), который содержит активные элементы. Активные элементы обычно содержат пьезоэлектрические элементы, но могут также включать в себя другие элементы обнаружения звука.

"Импеданс" представляет собой произведение сейсмической скорости на плотность. Импеданс обычно изменяется среди различных пластов породы, например противоположные стороны границы раздела имеют различные импедансы. Обычно определяются два типа импеданса, Ip и Is, - где Ip представляет собой импеданс P-волны, также называемый акустическим импедансом, и Is представляет собой импеданс S-волны, также называемый сдвиговым импедансом. Коэффициент отражения границы раздела обычно зависит от контраста этих импедансов и плотности породы по обе стороны от границы раздела. В частности, контраст этих свойств геологических слоев влияет на коэффициент отражения на границе, разделяющей эти два слоя. Один геофизический процесс для определения импеданса и/или структуры плотности подземной области, основанный на зарегистрированных сейсмических данных отражения, представляет собой сейсмическую инверсию.

"Инверсия" или "сейсмическая инверсия" представляет собой процесс, посредством которого пытаются найти модель свойств подземной среды, которая воспроизводит измеренный сейсмический ответ в пределах допуска и удовлетворяет геологическим и геофизическим ограничениям. Имеется большое количество известных способов сейсмической инверсии. Эти известные способы попадают в одну из двух категорий: итеративная инверсия и не итеративная инверсия. Не итеративная инверсия выполняется посредством применения некоторой простой фоновой модели и обновления модели на основе входных данных. Для сравнения итеративная инверсия использует обновленную модель в качестве входной информации для следующего этапа инверсии. (См. "миграция").

"Миграция Кирхгоффа" представляет собой способ инверсии с обратным рассеянием, который полагается на статистическую конструктивную интерференцию сигнала и деструктивную интерференцию шума. Это двухэтапная операция, которая сначала проецирует вверх или отслеживает пути лучей от каждой точки из глубины до поверхности и создают график времени прохождения потенциальных путей лучей до поверхностных местоположений. Затем она суммирует отсчеты для каждого окружающего пути во времени на основе местоположений их источника и приемника, заданные графиком времени. Миграция Кирхгоффа может быть основана на одностороннем волновом уравнении и может быть менее точной, чем способ с полным двухсторонним волновым уравнением, такой как обсуждаемая здесь миграция в обратном времени (RTM).

"Морской средой" называется любое местоположение в открытом море. Местоположение в отрытом море может являться мелководным или глубоководным. Морская среда может представлять собой акваторию океана, залив, большое озеро, устье, море или канал.

"Миграция" обычно выполняется во время стадии обработки данных построения сейсмических изображений, чтобы точно расположить подземные сейсмические отражатели. Потребность в сейсмической миграции возникает потому, что переменные сейсмические скорости и наклонные отражатели заставляют сейсмические отражения в не подвергнутых миграции сейсмических изображениях появляться в неправильных местоположениях. Сейсмическая миграция представляет собой операцию инверсии, в которой сейсмические отражения перемещаются или "подвергаются миграции" на их истинные позиции в подземной среде. Существует много различных методик сейсмической миграции. Некоторые из этих методик миграции применяются после суммирования по общей глубинной точке (CMP) записей данных. Как известно в области техники, суммирование по общей глубинной точке представляет собой процедуру обработки данных, при которой несколько путей сейсмических данных, имеющих одинаковую глубинную точку источника-приемника, но разные смещения, суммируются для формирования суммированной записи данных, которая моделирует запись данных с нулевым смещением для рассматриваемой глубинной точки. Такая миграция "после суммирования" может быть сделана, например, посредством интегрирования вдоль дифракционных кривых (известна как миграция Кирхгоффа), посредством численной конечной разности или нисходящего продолжения фазового сдвига волнового поля или посредством эквивалентных операций в частотно-волновочисленной области или других областях.

Другие методы сейсмической миграции могут быть применены перед суммированием записей сейсмических данных. Эти методы миграции "без суммирования" применяются к отдельным записям данных с ненулевым смещением, и подвергнутые миграции результаты затем суммируются для формирования заключительного изображения. Миграция без суммирования обычно производит более хорошие изображения, чем миграция после суммирования. Однако миграция без суммирования обычно намного более затратна (то есть требовательна в вычислительном отношении) чем миграция после суммирования. В соответствии с этим использование миграции без суммирования обычно ограничивалось ситуациями, в которых миграция после суммирования не обеспечивает приемлемый результат, например когда отражатели круто наклонены. В некоторых случаях наклон отражателя может превысить 90 градусов. Как известно в области сейсмической разведки, может быть возможно отобразить эти "опрокинутые" отражатели с использованием данных из сейсмических "лучей, меняющих направление".

Имеется два общих типа миграции без суммирования: миграция во временной области без суммирования и глубинная миграция без суммирования. Фоновая сейсмическая модель скорости распространения волны для описания скорости распространения сейсмической волны в подземной области необходима при построении сейсмических изображений. В области, где подземная скорость сейсмической волны изменяется только в вертикальном направлении, используемым способом построения сейсмических изображений является миграция во временной области без суммирования (PSTM). В области, где подземная скорость распространения волны изменяется и в вертикальном, и в боковом (или горизонтальном) направлении, должна использоваться глубинная миграция без суммирования (PSDM), чтобы дать точные результаты.

"Обменная сейсмическая волна" представляет собой отраженную P-волну или S-волну, которая имеет другой тип, отличный от типа исходной сейсмической волны. Сейсмические волны имеют два типа. В первом типе сейсмическая волна представляет собой P-волну (или волну сжатия), которая расширяется в направлении распространения сейсмической волны. Во втором режиме сейсмическая волна представляет собой S-волну (или волну сдвига), обычно ориентированную перпендикулярно направлению распространения сейсмической волны. Исходная сейсмическая волна, произведенная сейсмическим источником (например, взрывчатым веществом, пневматическим излучателем и т.д.), направлена в подземную структуру, которая может иметь подземный отражатель (например, границу раздела со слоем углеводородов, слой воды или другой интересующий слой). Сейсмическая волна отражается от подземного отражателя, причем отраженная сейсмическая волна может быть измерена сейсмическим датчиком (или несколькими сейсмическими датчиками) (например, сейсмографами или другими сейсмическими датчиками). Во многих случаях преобразование типа может произойти после отражения от подземного отражателя. Например, исходная P-волна может быть отражена как S-волна, или в качестве альтернативы, исходная S-волна может быть отражена как P-волна. Отраженная сейсмическая волна, которая имеет тип, отличающийся от типа исходной сейсмической волны, называется обменной сейсмической волной. Методика сейсмической съемки в соответствии с некоторыми вариантами осуществления оценивает параметры поглощения для обменных сейсмических волн, что позволяет методике сейсмической съемки учесть эффекты поглощения, соответствующие обменным сейсмическим волнам. Рассмотрение эффектов поглощения отраженных обменных волн, а также эффектов поглощения чистых отраженных сейсмических волн позволяет методике сейсмической съемки быть более точной, чем традиционные методики съемки (которые обычно вычисляют параметры поглощения только чистых волн).

"Многокомпонентная съемка" обозначает сейсмические съемки, которые используют многокомпонентные приемники, которые делают запись двух или более компонентов сейсмической энергии, падающей на приемник. Например, трехкомпонентный (3-C) сейсмический приемник содержит три ортогональных сейсмографа и может сделать запись x, y и z компонентов движения частицы в приемнике (движение частицы может представлять собой смещение частицы, скорость частицы или ускорение частицы или даже, в принципе, более высокую производную смещения частицы). При морской сейсмической съемке может в качестве альтернативы использоваться четырехкомпонентный (4-C) сейсмический приемник. 4-C приемник содержит датчик давления, такой как гидрофон, в дополнение к трем ортогональным датчикам и может сделать запись давления водного столба (которое является скалярной величиной) в дополнение к x, y и z компонентам движения частицы.

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

Используемые здесь термины "оптимальный", "оптимизация", "оптимизировать" и "оптимальность" (а также лингвистически связанные слова и фразы) не предназначены для ограничения в смысле требования к настоящему изобретению найти наилучшее решение или принять наилучшее решение. Хотя математически оптимальное решение может фактически достигнуть наилучшей из всех математически доступных возможностей, реальные варианты осуществления подпрограмм, способов, моделей и процессов оптимизации могут работать в направлении такой цели, фактически никогда не достигая совершенства. В соответствии с этим специалист в области техники, имеющий пользу от настоящего раскрытия, оценит, что эти термины в контексте объема настоящего изобретения являются более общими. Термины могут описывать работу в направлении решения, которое может являться наилучшим имеющимся решением, предпочтительным решением или решением, которое предлагает заданное преимущество в пределах диапазона ограничений. Кроме того, эти термины могут относиться к улучшению или усовершенствованию текущего решения. Эти термины также могут относиться к поиску наивысшей точки или максимума для целевой функции или процессу уменьшения функции потерь.

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

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

"PP" и "PS" представляют события преобразования типа, которые имеют место во время сейсмических съемок. Акустическая энергия, испускаемая сейсмическим источником, может преимущественно представлять собой волну давления (или P-волну). Когда акустическая энергия подвергается отражению от границы раздела, она может также подвергнуться частичному преобразованию типа в волну сдвига (S-волну). В результате сейсмическое волновое поле, полученное в приемниках, может содержать и P-волны, и S-волны. События, являющиеся результатом прибытия P-волн, могут упоминаться как события PP, так как они включают в себя акустическую энергию, которая и испущена как P-волна, и зарегистрирована в приемнике как P-волна. События, являющиеся результатом прибытия S-волн, могут упоминаться как события PS, так как они включают в себя акустическую энергию, которая испускается как P-волна, но подверглась преобразованию типа в S-волну после отражения, и поэтому зарегистрирована в приемнике как S-волна. События PP имеют место более заметно в вертикальных компонентах полученных сейсмических данных, тогда как события PS появляются более заметно в горизонтальных компонентах полученных сейсмических данных.

"P-волна" и "S-волна" являются типами сейсмических волн, которые возникают в подземной среде. P-волны являются продольными волны сжатия, которые распространяются с движением частиц перпендикулярно по отношению к фронтам волны как волны поочередного сжатия и разрежения. Приемники P-волн чувствительны к вертикальному движению частиц относительно поверхности земли. S-волны или поперечные волны поляризованы параллельно по отношению к фронтам волны и делятся на SH-волны и SV-волны для изотопных сред. В контексте этого раскрытия для SH-волн движение частиц является горизонтальным в плоскости, которая является поперечной относительно линии профиля. Движение частицы для SV-волны происходит в вертикальной плоскости, которая перпендикулярна по отношению к движению частиц SH-волны и параллельна линии профиля. Поперечные волны не могут распространяться в жидкости, поскольку жидкости не имеют сдвиговой прочности. Некоторые среды являются двупреломляющими для S-волн, поскольку являются анизотропными. Таким образом, акустическая энергия разбивается на обычный и экстраординарный пути луча, характеризуемые разными скоростями распространения быстрых (Sf) и медленных (Ss) волн во время прохождения через среду и разными направлениями поляризации в отличие от чистых SH или SV-волн.

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

"Приемники" представляют собой устройства, обычно помещаемые в массиве или в конфигурации в виде решетки на поверхности Земли или ниже, используемые для обнаружения отражений колебаний от пластов породы. Измерение амплитуды и времени прибытия отраженной волны в большом количестве местоположений позволяет нанести на карту пласты породы и предоставляет информацию о толщине и составе пластов породы (например, слоях). Приемники могут включать в себя сейсмографы, гидрофоны, детекторы колебаний, акселерометры или любой другой детектор, способный точно измерять амплитуды отраженных волн. Трехмерный приемник может, например, иметь акселерометры вдоль каждой из осей x, y и z для определения движения во всех трех направлениях. Четырехмерный приемник может объединять трехмерный приемник с детектором амплитуды, таким как гидрофон, для определения интенсивности P-волны. Либо трехмерные, либо четырехмерные приемники могут использоваться для обнаружения P-волн и S-волн, распространяющихся из подземной среды.

"Коллектор" или "коллектор углеводородов" определен как нефтегазопродуктивная зона (например, нефтегазоносные зоны), которая включает в себя песчаник, известняк, мел, уголь и некоторые типы сланца. Нефтегазопродуктивные зоны могут варьировать по толщине от меньше одного фута (0,3048 м) до сотен футов (сотен метров). Проницаемость пласта коллектора обеспечивает потенциал для производства.

"Свойства коллектора" и "значения свойств коллектора" определяются как величины, представляющие физические атрибуты породы, содержащей текучую среду коллектора. Термин "свойства коллектора", используемый в этой заявке, включает в себя как измеряемые, так и описательные атрибуты. Примеры измеряемых значений свойств коллектора включают в себя импеданс для p-волн, импеданс для s-волн, пористость, проницаемость, насыщенность водой и плотность трещин. Примеры описательных значений свойств коллектора включают в себя фации, литологию (например, песчаник или карбонат) и тип отложений (EOD). Свойства коллектора могут быть занесены в архитектуру коллектора из вычислительных ячеек для формирования модели коллектора.

"Физическая модель горной породы" связывает петрофизические и относящиеся к производству свойства горной породы с объемными упругими свойствами горной породы. Примеры петрофизических и относящихся к производству свойств могут включать в себя, но без ограничения, пористость, геометрию пор, объем связности пор сланца или глины, оценочное давление вышележащей породы или соответствующие данные, поровое давление, тип и содержание текучей среды, содержание глины, минералогию, температуру и анизотропию, и примеры объемных упругих свойств могут включать в себя, но без ограничения, P-импеданс и S-импеданс. Физическая модель горной породы может обеспечить значения, которые могут использоваться в качестве модели скорости для сейсмической съемки.

"Сейсмическое затухание" представляет собой зависимое от частоты сокращение амплитуды или энергии в сейсмической волне по мере того, как волна проходит дальше от источника, вследствие микроскопических сил трения и рассеивания от тонких слоев. Оно часто описывается в терминах с точки зрения сейсмической добротности Q. На сейсмическое затухание влияют насыщенности жидкостью, содержание глины и тонкая слоистость. Если происходит существенное затухание, улучшение, обеспеченное посредством увеличения пространственной дискретизации сейсмических данных (например, измерения и P и S-волн), может быть минимальным. Оценки сейсмической добротности Q являются ценными для построения сейсмического изображения, обработки и определения характеристик коллектора. Примеры таких применений включают в себя компенсацию амплитуды и фазы, обработку вэйвлетов, конфигурацию съемки и идентификацию литологии/текучих сред. Кроме того, в отличие от многих других сейсмических атрибутов, сейсмическое затухание может быть непосредственно связано с проницаемостью (например, через механизм потока). В иллюстративных вариантах осуществления настоящей методики физические модели горных пород могут быть объединены с недавними усовершенствованиями в построении изображений для определения связей между оценочными сейсмическими добротностями и параметрами коллектора.

"Сбор сейсмических данных" означает обнаружение, обработку и регистрацию сейсмических волн.

"Сейсмическая запись данных" представляет собой запись выбранного сейсмического атрибута (например, сейсмической амплитуды или акустического импеданса) в одном местоположении x-y (на карте). Сейсмическая запись может быть представлена как сумма ячеек или непрерывная кривая (известная как "запись"), амплитуды которой отражают значения атрибута в каждой точке z (или t) данных для рассматриваемого местоположения x-y. Для трехмерного или четырехмерного приемника запись собирается для каждого измерения. В соответствии с этим будет подразумеваться, что описанные ниже методики применяются к записям, собранным по всем измерениям. Однако для простоты объяснения настоящее описание сосредоточено на одной записи для каждого приемника.

"Сейсмическими данными" называется многомерная матрица, содержащая информацию, полученную о точках в подземной структуре поля с использованием сейсмических способов. По меньшей мере три измерения в сейсмических данных могут представлять местоположение каждой точки в пространстве-времени, например x, y и t, где x и y представляют местоположение точки в x-y-решетке на поверхности, и t представляет время для отраженной упругой волны для достижения поверхности. В зависимости от свойств геологических уровней t обычно может представлять глубину точки ниже поверхности земли. Многомерная матрица будет содержать по меньшей мере одно другое измерение, представляющее значения сигнала в каждом местоположении. Например, это измерение может представлять любые сейсмические данные, которые могут быть соединены с конкретной точкой в поле, в том числе такие сейсмические данные, как выборки смещений, суммы смещений, угловые выборки, угловые суммы, Ip, Is, Vp, Vs, ρ, и μ и т.д.

"Сейсмическая съемка методом отраженных волн" является наиболее распространенным типом сейсмической съемки и выполняется посредством инициирования ударной волны на поверхности земли и отслеживания в множестве местоположений на поверхности отражения этого возмущения волны от низлежащих подземных пластов. Эти отражения происходят от тех областей, в которых имеется изменение акустического импеданса земли, обычно граница раздела между смежными слоями. Устройства, используемые для отслеживания отражений, называют сейсмографами или приемниками. Сигнал, зарегистрированный каждым сейсмографом, представляет как функцию времени амплитуду отражений, обнаруженных этим сейсмографом. Для хорошего приближения отражения, обнаруженные каждым сейсмографом, происходят от точки на каждой отражающей поверхности, расположенной на вертикальной линии, проходящей через среднюю точку между источником и сейсмографом. Таким образом, для каждого сейсмического возмущения ("взрыва") каждый сейсмограф делает запись сигнала ("запись"), которая представляет признаки формаций вертикально под известной точкой на поверхности земли.

"Структурированная решетка" представляет собой решетку, в которой каждая ячейка может быть адресована индексом (i, j) в двух измерениях или (i, j, k) в трех измерениях. Все ячейки структурированной решетки имеют аналогичную форму и одинаковое количество вершин, краев и поверхностей. Таким образом, топологическая структура решетки (то есть граница и отношения смежности между ячейками, поверхностями, краями и вершинами) полностью определена индексацией (например, ячейка (i, j) является смежной с ячейкой (i+1, j)). Обычно используемые структурированные решетки являются декартовыми или радиальными, в которых каждая ячейка имеет четыре края в двух измерениях или шесть поверхностей в трех измерениях. Структурированные решетки обычно используются с сейсмическими объемами данных.

Обзор

В иллюстративном варианте осуществления настоящей методики реализована оптимальная схема создания контрольных точек, которая делает различия между местом для хранения, используемым для сохранения полного состояния прямого моделирования, которое включает в себя всю информацию, необходимую для повторного начала прямого моделирования на заданном временном шаге (контрольная точка с полным состоянием), и местом для хранения, необходимым только для вычисления корреляции (контрольная точка корреляции). Кроме того, методика делает различие между скоростями доступа и разностями емкости памяти для нескольких типов хранения, чтобы оптимизировать комбинацию сохраненных контрольных точек с полным состоянием и контрольных точек корреляции. Ускорение вычислений, соответствующее этому изобретению, по сравнению с традиционной стратегией создания контрольных точек Гриванка (Griewank) может колебаться от двадцати процентов до более чем трехсот процентов для применений сейсмической глубинной миграции в обратном времени (RTM) и полной инверсии волнового поля (FWI) в вычислительной среде с кластерами. Однако описанная здесь методика не ограничена миграцией RTM или каким-либо применением построения сейсмических изображений, а может использоваться в любых применениях, которые должны коррелировать первый поток данных, представленный в обратном временном порядке, со вторым потоком данных, представленным в прямом временном порядке.

Стратегия создания контрольных точек Гриванка не использует сохранение буферов корреляции. Стратегия Гриванка сохраняет только контрольные точки с полным состоянием. Точнее говоря, стратегия Гриванка использует контрольную точку с полным состоянием и для корреляции, и для повторного запуска моделирования. Раскрытая здесь методика имеет преимущество относительно стратегии создания контрольных точек Гриванка посредством использования того факта, что память, требуемая для выполнения корреляции, может быть меньше и по скорости доступа, и по размеру хранения, чем память, требуемая для сохранения полного состояния моделирования в прямом порядке. Например, полная запись сейсмических данных может иметь девять зарегистрированных компонентов: три представляют скорости частицы в каждом из трех измерений; и шесть полей тензора напряжения, из которых может быть извлечена информация о P-волнах и S-волнах. При сейсмическом моделировании в прямом порядке контрольные точки с полным состоянием включают в себя все параметры и переменные, необходимые для повторного запуска временных шагов моделирования в прямом порядке, что может потребовать сохранения плотных решеток многих компонентов волновых полей плюс дополнительные буферы, необходимые для реализации граничных условий. Например, см. Marcinkovich, C. and K. Olsen, "On the implementation of perfectly matched layers in a three-dimensional fourth-order velocity-stress finite difference scheme," 108 JOURNAL OF GEOPHYSICAL RESEARCH (№ B5) 2276 (2003).

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

Поскольку вычислительные ресурсы становятся более сложными, например оптимизированными для конкретного применения, настоящие методики также предусматривают вычисление оптимального баланса между сохранением контрольных точек с полным состоянием и контрольных точек корреляции. В иллюстративных вариантах осуществления настоящие методики делают различие между размером и скоростью памяти, и, таким образом, экономия по сравнению по методикой Гриванка может быть значительно больше в иерархической среде, которая включает в себя такие технологии, как графические процессоры (GPU) и накопители на твердотельных дисках (SSD), а также традиционную оперативную память (RAM) и дисковую память. В соответствии с этим прикладное программное обеспечение, разработанное с использованием этой технологии, может быть переносимым и гибким в изменяющихся компьютерных средах.

Полученная оптимальная стратегия создания контрольных точек применяется к способам с временными шагами вообще. Таким образом, она может использоваться для вычисления градиента сопряженного состояния, как требуется для выполнения полной инверсии формы волны во временной области, а также для глубинной миграции в обратном времени. Однако, как отмечено выше, настоящие методики не ограничены миграцией RTM, которая используется здесь просто в качестве примера. Миграция RTM более ясно объяснена в отношении возбуждения единственного сейсмического источника, или "эксперимента", как проиллюстрировано на фиг. 1.

Фиг. 1 представляет собой чертеж интересующей области 100, иллюстрирующий единственный сейсмический эксперимент в среде земли, в соответствии с иллюстративным вариантом осуществления настоящей методики. Специалисты в области техники поймут, что для эффективного отображения подземной структуры в интересующей области 100 будет выполняться большое количество сейсмических экспериментов. В интересующей области 100, показанной на фиг. 1, соляной купол 102 выдается по направлению к поверхности 104. Стороны соляного купола 102, например сторона 106, могут быть вертикальными или даже перевернутыми, что делает построение изображений трудным посредством многих методик.

Соляной купол 102 может захватить залежи углеводородов, такие как нефть 108, в нефтяных песках или пористой породе под слоем покрывающей породы 110, расположенном выше соляного купола 102. Другие залежи, такие как нефть и или газ 112, могут быть расположены в слоях породы 114 вдоль стороны, например стороны 106, соляного купола 102. Тем не менее другие углеводороды, такие как залежи 116, могут быть расположены в слоях породы 118, которые являются более удаленными от соляного купола 102.

Сейсмический эксперимент может быть выполнен посредством размещения одного или более источников 120 вдоль поверхности 104 интересующей области 100 вместе с одним или более приемниками 122. В вариантах осуществления каждый из приемников 122 может быть трехмерным или четырехмерным приемником для обнаружения P-волн и S-волн. После инициирования источник 120 создает импульс, который может быть проведен в подземную среду 124 как волна 126. Хотя импульсная волна 126 распространяется во всех направлениях, иллюстрация на фиг. 1 упрощена, например, для показа распространения импульсной волны 126 только по направлению к соляному куполу 102. Часть энергии импульсной волны 126 может достигнуть приемников 122 без отражения от какой-либо поверхности, проходя непосредственно через подземную среду 124 к приемникам 122, например, как прямая волна 128.

Когда импульсная волна 126 наталкивается на отражатель, например на слой с другим импедансом, такой как соляной купол 102, из волны 126 может быть создана отраженная волна 130. Отраженная волна 130 может быть частично или полностью преобразована, например падающая P-волна может иметь компоненты S-волны. Если отраженная волна 130 имеет компоненты S-волны, S-волны могут быть ослаблены породами, содержащими существенные концентрации текучих сред, например залежами 116. Это затухание можно назвать затуханием Q. Эффективное определение затухания Q S-волн может быть полезным для улучшения точности получения сейсмического изображения, что позволяет определить местоположение слоев, например слоев 118 породы, которые содержат текучие среды, такие как углеводороды, водоносные слои и т.п. Более простые методики построения изображений часто используют только отражения P-волн для построения изображения. Однако в иллюстративных вариантах осуществления настоящей методики для построения изображения используются и P-волны, и S-волны, что позволяет определить и количественно измерить затухание Q.

Использование двухсторонних волновых вычислений при миграции RTM позволяет определить другие эффекты. Например, часть импульсной волны 126 не может быть отражена на поверхности соляного купола 102, а вместо этого может быть преломлена внутрь соляного купола 102. Преломленная волна 132 может пройти через соляной купол 102 до того, как она будет преломлена обратно по направлению к приемникам 122 в виде волны 134 другой поверхностью соляного купола 102. Более простые методики построения изображений, такие как миграция Кирхгоффа или миграции на основе односторонних волновых уравнений могут быть не в состоянии учесть эту анизотропию. Таким образом, эти методы могут пропустить компоненты подземной среды 124, такие как отвесные отражатели (сторона 106), преломляющие подземные слои (соляной купол 102) и т.п.

В целях вычислений для построения сейсмических изображений интересующая область 102 может быть разделена на трехмерную решетку вычислительных ячеек. В сейсмических вычислениях решетка обычно будет представлять собой регулярную решетку, что позволяет присвоить вычислительным ячейкам координаты, которые указывают местоположение. Методы не ограничены регулярными решетками, поскольку могут использоваться неструктурированные вычислительные сетки. Однако неструктурированные вычислительные сетки могут добавить существенные накладные расходы, поскольку каждая вычислительная ячейка может содержать информацию о местоположении. Каждая вычислительная ячейка может представлять или содержать объем сейсмических данных, которые имеют соответствующие свойства, такие как скорость, импеданс и т.п. Кроме того, скорости и направления фронтов сейсмических волн, таких как P-волны или S-волны, могут быть вычислены в каждом объеме сейсмических данных с использованием свойств для этого объема сейсмических данных. Фактически процесс миграции "перемещает" источник и приемник, чтобы связать отражение с вычислительной ячейкой, в которой оно произошло. Этот метод может использоваться для формирования изображения подземной среды. Процесс миграции RTM может быть более ясно виден посредством исследования поперечного сечения интересующей области 100 вдоль сейсмического источника и приемников, как описано более подробно в отношении фиг. 2.

Фиг. 2 является схемой 200, иллюстрирующей операцию миграции в обратном времени (RTM), в соответствии с иллюстративным вариантом осуществления настоящей методики. Каждая из вычислительных ячеек может быть проиллюстрирована как вычислительные ячейки 202 на схеме 200. Вычислительные ячейки 202 могут не иметь минимальный размер, для которого собираются или моделируются сейсмические данные, а могут представлять группы меньших объемов 204, которые были объединены, например, для упрощения вычислительных затрат, или могут быть разделены для вычисления, например, для улучшения точности изображения. Размер вычислительных ячеек 202 более подробно рассматривается ниже.

В базовом виде миграция RTM обрабатывает каждый сейсмический эксперимент отдельно и выполняет миграцию данных посредством моделирования физического процесса, используемого для их сбора. Как показано на фиг. 2, алгоритм использует модель 206 скорости распространения волн отображаемой области. Модель 206 скорости обычно содержит свойства горной породы в каждой из вычислительных ячеек 202, такие как плотность, импеданс и т.п., которые могут использоваться алгоритмом распространения волны для вычисления скорости и направления волны.

Алгоритм распространения волны, обычно с конечной разностью или псевдоспектральный, может использоваться для распространения импульса от местоположения источника 208 в подземную среду. Как описано здесь, это может быть выполнено с использованием вычислительных ячеек, которые находятся в более мелком масштабе времени, чем вычислительные ячейки 202. Это распространение может обеспечить в качестве функции времени приближенное значение энергии, которая может быть отражена от каждого подземного отражателя, например соляного купола 210, и зарегистрирована в приемниках 212. Волновое поле 214 источника движется прежде всего вниз, и оно может быть помечено как D(xS, x, t), где xS - вектор в трехмерном пространстве, представляющий местоположение источника, x - вектор в трехмерном пространстве, представляющий местоположение точки 216 изображения, и t - значение, представляющее время от запуска сейсмического эксперимента (то есть для представления начального формирования импульсной волны).

Поскольку волновое поле источника распространяется в прямом временном порядке для моделирования облучения отражателей, записи 218 данных, зарегистрированные в приемниках 212, могут быть распространены в обратном направлении во времени для моделирования движения энергии от пока еще неизвестных точек отражения к приемникам 212. Обратное распространение может быть выполнено посредством сопряженного оператора, который отображает следы как волновые поля 220 в подземную среду. Волновые поля 220 приемника обычно движутся вверх, и они могут быть помечены как U(xS, xR, x, t), где xS - вектор в трехмерном пространстве, представляющий местоположение источника, xR - вектор в трехмерном пространстве, представляющий местоположение приемника, x - вектор в трехмерном пространстве, представляющий местоположение точки 216 изображения, и t - значение, представляющее время от запуска сейсмического эксперимента (tmax, представляет конец эксперимента сбора данных).

Принцип построения изображений, используемый в миграции RTM, состоит в том, что энергия, зарегистрированная приемниками 212 в момент времени, должна была быть отражена от местоположения, например от точки 216 изображения, таким образом, что волновое поле 214 источника было ненулевым, и распространенное в обратном направлении волновое поле 220 приемника было ненулевым в то же самое время распространения t. Способность миграции RTM строить изображение местоположений, которые были облучены энергией опрокинутого пласта, отличает ее от других алгоритмов миграции, основанных на волновом уравнении. Для вычисления изображения в заданном подземном местоположении x для заданного взрыва в xs должна иметься величина, отличная от нуля, когда энергия из источника, который мог отразиться от x и достичь приемников в момент времени t, когда принятое волновое поле также отлично от нуля. Полное время эксперимента равно tmax, то есть время события t находится в диапазоне от 0 до tmax. Математически это может быть выражено как взаимная корреляция волнового поля 214 источника и волнового поля 220 приемника.

В уравнении 1 I(x) - подвергнутое миграции изображение в подземном местоположении x, например точка 216 изображения. Весовая функция в уравнении 1 указывает, что волновое поле 214 источника (D) распространяется в прямом направлении вдоль времени t, и волновое поле 220 приемника (U) может быть распространено в обратном направлении от конечного времени tmax (отсюда название: миграция в обратном времени). Произведение двух волновых полей 214 и 220 (например, взаимная корреляция) может быть просуммировано в каждой точке 216 изображения (x). Это сделано для каждого местоположения источника xS и каждого местоположения приемника xR. Получающееся в результате изображение может быть просуммировано для всех местоположений источников и приемников для обеспечения заключительного изображения.

Вычисление условия построения изображений требует, чтобы значение волнового поля 214 источника и волнового поля 220 приемника были доступны в одно и то же время t. Самый прямой подход состоит в том, чтобы вычислить и сохранить одно из волновых полей (например, волновое поле 214 источника), для всех интересующих моментов времени t (например, от t0 до tmax). Другое волновое поле (например, волновое поле 220 приемника) затем может быть вычислено и перемножено с волновым полем 214 источника. Однако для большинства задач этот подход может являться непрактичным, поскольку для хранения волнового поля 214 источника потребуется большое хранилище данных. Таким образом, практическое применение миграции RTM требует периодического повторного вычисления волнового поля 214 источника.

Изображение I(x), где x - вектор местоположения (x, y, z), представляет коэффициент отражения подземной среды как функцию позиции. Коэффициент отражения является большим в местоположениях, где импеданс заметно изменяется. Однако, как может быть видно из уравнения 1, алгоритм RTM приведет к ненулевым значениям изображения в любой точке, где имеется какая-либо корреляция между волновыми полями 214 и 220 источника и приемника. Это может произойти в местоположениях, отличных от тех, которые соответствуют истинным отражениям, например в точке 216 изображения, что приводит к артефактам изображения, которые появляются как низкочастотный шум, наложенный на истинные отражатели. Для удаления этих артефактов доступны много способов, среди них фильтрация с низкочастотной границей пропускания, применение фильтров Лапласа и т.д.

Как упомянуто ранее, миграция RTM использует полное волновое уравнение для распространения энергии через подземную среду, и, таким образом, она представляет собой затратный в вычислительном отношении алгоритм миграции. Миграция RTM без суммирования, в которой индивидуальные взрывы подвергаются миграции отдельно, стала реализуемой в вычислительном отношении только в последние несколько лет благодаря появлению рентабельных вычислительных кластеров. Обычно, чтобы сформировать вычислительный кластер могут быть соединены кластеры из многих тысяч многопроцессорных узлов. Каждый взрыв, который должен быть подвергнут миграции, может быть присвоен множеству узлов в кластере, и модели свойств (скорость, плотность и т.д.) для области, окружающей взрыв, могут быть считаны в память, соответствующую присвоенным узлам. Затем взрыв может быть подвергнут миграции с использованием прямого и обратного решения волнового уравнения, описанного выше, и результат может быть сохранен на диске для суммирования с результатами других подвергнутых миграции взрывов. В иллюстративном варианте осуществления настоящей методики используется схема оптимизации для вычисления компромисса между памятью компьютера и вычислительными накладными расходами. Как рассмотрено ниже, эта схема может сохранять контрольные точки с полным состоянием (от которых может быть либо выполнена корреляция, либо возобновлена операция распространения), контрольные точки корреляции (включающие в себя только данные, необходимые для вычисления взаимной корреляции в определенное время), или их комбинация. Использование создания контрольных точек делает практическую реализацию миграции RTM выполнимой. Кроме того, создание контрольных точек является еще более важным для вариантов осуществления, которые принимают во внимание неупругие эффекты распространения ("Q") или вычисляют много компонентов волнового поля, например как поля S-волн, так и поля P-волн.

Вычислительная модель может быть разделена на вычислительные ячейки 202 или меньшие объемы 204. Интервал вычислительных ячеек является таким, что на минимальную длину волны приходится несколько блоков решетки. Для типичных моделей интервал может составлять приблизительно 25 метров. Таким образом, для моделей интересующих областей, имеющих размеры порядка десятков километров, количество ячеек решетки в каждом измерении может составлять от нескольких сотен до более одной тысячи. Таким образом, общее количество вычислительных ячеек 202 может составлять, например, более одного миллиарда. Вычисления могут быть выполнены посредством выполнения шаблона с конечной разностью по всей решетке для вычисления производных волнового поля, требуемых для моделирования волнового уравнения в каждой вычислительной ячейке 202. Таким образом, на каждом временном шаге могут выполняться много миллиардов операций с плавающей точкой.

Необходимый интервал решетки Δx, например размер для вычислительных ячеек 202 или меньших объемов 204 может быть вычислен с использованием формулы, показанной в уравнении 2.

В уравнении 2, ν min - минимальная скорость, f max - максимальная частота, и N - количество точек на минимальную длину волны, которое может составлять приблизительно 5-10 точек. Этот или меньший интервал может избежать внесения численной дисперсии в распространяемое волновое поле.

Общее количество временных шагов также быть очень большим. Сейсмические данные регистрируются в течение общего времени, составляющего приблизительно десять секунд. Данные обычно хранятся с интервалом между отсчетами 2-4 миллисекунды, это означает, что каждая запись 218 может включать в себя приблизительно 2500-5000 отсчетов. Однако решение волнового уравнения миграции RTM должно быть вычислено с намного более мелким временным шагом, заданным посредством условия устойчивости Куранта, Фридрихса и Леви (CFL), показанного в уравнении 3.

В уравнении 3 k - константа первого порядка, которая зависит от размерности и точного используемого алгоритма. Например, k может быть равна 1 2 для двумерных уравнений или 1 3 для трехмерных уравнений. Кроме того, k может быть больше, если уравнения имеют более высокий порядок во времени, или меньше, если уравнения имеют более низкий порядок во времени. Для типичных условий Δt~0,5 мс, и, таким образом, общее время распространения, составляющее десять секунд, требует 20000 отсчетов. Это указывает, что каждый затратный временной шаг должен быть вычислен очень много раз. Кроме того, с использованием уравнений 2 и 3 можно заметить, что общие вычислительные затраты пропорциональны f4max, таким образом, удвоение максимальной частоты, которая должна быть подвергнута миграции, увеличивает вычислительные затраты в 16 раз. Поскольку возможность интерпретации сейсмических изображений обычно лучше, когда полоса частот больше, зависимость затрат от частоты имеет тенденцию очень быстро увеличивать время, требуемое для получения высококачественных изображений.

Фиг. 3A является блок-схемой последовательности операций, показывающей способ выполнения взаимной корреляции в обратном времени, такой как миграция RTM, в соответствии с иллюстративным вариантом осуществления настоящей методики. В этом варианте осуществления процесс может начаться на этапе 302 с инициализации корреляционного изображения миграции в обратном времени (RTM), например, посредством обнуления всех точек в объеме изображения. На этапе 304 сопряженное волновое поле может быть инициализировано, например, посредством установления сопряженного волнового поля в соответствие волновому полю приемника в максимальное время регистрации. На этапе 306 могут быть вычислены оптимальные местоположения по времени для сохранения буферов контрольных точек и/или буферов с полным состоянием. Оптимальные местоположения по времени также могут быть вычислены до выполнения моделирования и сохранены в таблице для использования при последующих моделированиях.

Сопряженное волновое поле может затем быть вычислено на первом временном шаге j, как показано на этапе 308. Первый временной шаг j может соответствовать конечному времени при моделировании. На этапе 310 выполняется определение относительно того, существует ли прямой буфер корреляции для временного шага j. Если буфер корреляции существует, либо как независимая контрольная точка корреляции, либо как часть контрольной точки полного состояния, процесс переходит на этап 312. Если на этапе 310 определено, что буфер корреляции не существует на конкретном временном шаге j, процесс может перейти на этапы, показанные на фиг. 3B, для вычисления необходимой информации, соответствующей распространяющемуся в прямом направлении волновому полю возбуждения источника, необходимому для выполнения корреляции на этом шаге.

На этапе 312 к волновому полю в буфере корреляции получают доступ из базы данных сохраненных состояний 314 моделирования в прямом направлении, содержащейся в блоке хранения (таком как память или жесткий диск). На этапе 316 состояние волнового поля моделирования в прямом направлении подвергается взаимной корреляции с сопряженным волновым полем для временного шага j, причем результаты суммируются в объеме корреляции в пределах корреляционного изображения. Корреляционное изображение затем может быть сформировано посредством формулы: , где - операция "взаимной корреляции", и ci - подмножество информации корреляции из полного состояния si волнового поля возбуждения источника, что выражается как ci=p(si). Для некоторых приложений оператор корреляции может представлять более общий оператор, чем простая математическая взаимная корреляция. Важный отличительный признак состоит в том, что этот оператор требует в качестве входной информации подмножество состояний ci моделирования в прямом направлении и сопряженных состояний s i ¯ на одном и том же временном шаге j.

На этапе 318 сопряженное волновое поле может быть распространено в обратном направлении на один шаг во времени, то есть j=j-1. Затем другая последовательность из (n+1) сопряженных состояний s i ¯ может быть сформирована с помощью конечного состояния s n ¯ и n вызовов процедур f i ¯ в состояниях s i ¯ , которые формируют состояния в соответствии с формулой , например, распространение в обратном направлении от зарегистрированных записей. На этапе 320 временному шагу j может быть дано отрицательное приращение, и на этапе 322 может быть сделано определение относительно того, закончено ли сопряженное распространение. Если не закончено, то процесс возвращается на этап 308 для продолжения на следующем временном шаге.

Если на этапе 322 сопряженное распространение закончено, процесс переходит на этап 324, на котором может быть выполнена различная постобработка и этапы вывода. Для вариантов осуществления, которые используются для формирования сейсмических изображений, такая постобработка может включать в себя, например, формирование выборок смещений для подземных пластов из подвергнутых миграции точек. Выборки смещений могут быть преобразованы в выборки углов отражения для формирования окончательного изображения. Кроме того, для уменьшения шума могут быть реализованы вычисления фильтрации, такие как алгоритм Лапласа, как рассмотрено выше. Процесс заканчивается на этапе 326, на котором представление данных изображения выдается или сохраняется. Представление данных может включать в себя изображение подмножества результатов. Например, при построении сейсмических изображений вывод может включать в себя только выборки углов отражения. В других вариантах осуществления формирование представления данных может включать в себя другие этапы для формирования полного изображения. Например, при построении сейсмических изображений операции глушения и суммирования могут быть выполнены для формирования полного сейсмического изображения. Однако специалист в области техники поймет, что настоящие методики не ограничены построением сейсмических изображений и могут использоваться для любого другого моделирования, которое выполняет взаимную корреляцию данных моделирования в прямом направлении с данными, спроецированными в обратном временном порядке.

Фиг. 3B является блок-схемой последовательности операций, показывающей прямое распространение волнового поля для взаимной корреляции в обратном времени, в соответствии с иллюстративным вариантом осуществления настоящей методики. Этапы на фиг. 3B могут быть исполнены, если на этапе 310 буфер корреляции не найден. На этапе 328 волновые уравнения для прямого моделирования могут быть распространены через решетку. Распространение может быть выполнено как последовательность из (n+1) состояний si, начинающаяся с состояния s0, и n вызовов процедур ƒi в состояниях si формируют состояния в соответствии с формулой si+1←ƒi(si), например, распространение прямого импульса возбуждения.

Как указано в приведенных выше уравнениях, волновое поле приемника может быть распространено в обратном направлении во времени и подвергнуто взаимной корреляции в каждой вычислительной ячейке (x) с моделированием волнового поля источника в прямом времени. Это означает, что к моделированию источника в прямом времени должен быть получен доступ в обратном временном порядке. Поскольку хранение всех точек в прямом временном порядке для взаимной корреляции может быть нереализуемо из-за ограничений памяти и времени доступа, на этапе 330 волновые поля 314 моделирования в прямом порядке могут быть сохранены для различных временных шагов, как описано здесь. Эти волновые поля моделирования в прямом порядке могут рассматриваться как контрольные точки, которые содержат буферы корреляции для взаимной корреляции с проекцией данных в обратном порядке. Каждая из контрольных точек в базе 314 данных может представлять собой контрольную точку с полным состоянием, которая может использоваться для повторного запуска вычисления распространения, или только меньшую контрольную точку корреляции, используемую для определения взаимной корреляции на определенном временном шаге. На этапе 332 волновое поле источника может быть распространено на один шаг вперед во времени. На этапе 336 делается определение относительно того, закончено ли прямое распространение. Если не закончено, процесс переходит на этап 328 для продолжения вычисления. Если закончено, процесс возвращается на этап 312 (фиг. 3A), на котором возобновляется взаимная корреляция. Определение временных шагов (например, процесс создания контрольных точек на этапе 306), на которых следует сохранять контрольные точки с полным состоянием либо только контрольные точки корреляции, описано ниже.

В иллюстративных вариантах осуществления настоящей методики сделано несколько предположений для улучшения процесса создания контрольных точек, и они используются в последующем описании. В частности, предполагается, что каждая контрольная точка si с полным состоянием требует одного и того же объема памяти с размером S. Кроме того, предполагается, что каждая контрольная точка ci корреляции требует одного и того же объема памяти с размером C. Кроме того, предполагается, что каждый вызов процедуры ƒi требует одного и того же количества вычислительных затрат l, и что не требуется вычислительных затрат во время процесса или ci=p(si). Дополнительные требования к памяти во время процессов , ci=p(si), ƒi или f i ¯ не являются существенной частью ограничений памяти.

Стратегия создания контрольных точек Гриванка предполагает, что память, необходимая для хранения контрольной точки с полным состоянием (переменная S), идентична памяти, требуемой для хранения информации, необходимой для выполнения взаимной корреляции (переменная C) для шага построения изображения. Например, если выполняется миграция в обратном времени, основанная на распространении скорости-напряжения, может иметься необходимость коррелировать лишь давление вместо всех компонентов скорости и напряжения частицы. Это может легко увеличить отношение S/C до 4 или даже до 9. Если используются граничные условия идеально согласованного слоя (PML), отношение S/C может увеличиться еще в два или три раза вблизи с границей земной модели. Таким образом, распространение волн может иметь место на мелкой решетке, но построение изображений может быть выполнено на более грубой решетке. Для случая, в котором корреляция также может быть сделана на любой выборке в каждом пространственном измерении, получающееся отношение S/C будет равно восьми. Если можно пожертвовать некоторой точностью на этапе взаимной корреляции посредством хранения сжатой контрольной точки корреляции, отношение S/C может быть увеличено еще в два раза. Упомянутые здесь компоненты отношения S/C будут умножены вместе для получения отношения S/C, необходимого для этого алгоритма. Поэтому действительно может иметься существенное различие между S и C. Учитывая, что глубинная миграция в обратном времени является очень затратной в вычислительном отношении, настоящая методика может обеспечить существенное уменьшение вычислительных затрат посредством использования различия между S и C.

Оптимальная стратегия без ограничений памяти

Если нет ограничения памяти, то оптимальная стратегия (в смысле наименьшего количества вычислительных затрат) может быть следующей:

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

В последующем описании обозначение J(n, M) может использоваться для представления вычислительных затрат для корреляции n состояний (от состояния 1 до состояния n) при ограничении памяти M. В этом случае можно предположить, что сопряженное состояние n является известным, и состояние 0 всегда может быть восстановлено во время вычисления без вычислительных затрат посредством либо полного обнуления, либо загрузки состояния 0 из памяти (которая не является частью M). После вычисления используется сопряженное состояние в сопряженном состоянии 1 (а не в сопряженном состоянии 0).

Далее, обозначение Jno_cp(n, M) используется здесь для представления вычислительных затрат для корреляции n состояний при ограничении памяти M без использования контрольных точек с полным состоянием (то есть при хранении только контрольных точек корреляции). В случае, когда M велико, и имеется достаточно памяти для хранения всех контрольных точек корреляции в соответствующих буферах, это можно просто выразить как Jno_cp(n, M)=n для M≥(n-1)C.

Оптимальная стратегия с ограничениями памяти

В общем случае в одном шаге вычислений в памяти может содержаться nc=1+M/C буферов корреляции, то есть nc представляет собой количество корреляций, возможных при заданной памяти M и размере C буфера корреляции. Это предполагает, что вызов функции ƒi не налагает ограничение на память, или что результаты буфера состояния из моделирования в прямом направлении могут использоваться для выполнения корреляции. Таким образом, вычислительные затраты, требуемые при сохранении буферов корреляции, но без создания контрольных точек состояний моделирования в прямом направлении, могут быть вычислены посредством формулы, показанной в уравнении 4.

В уравнении 4 t - количество шагов, которые следует сделать с использованием всех nc буферов корреляции, и r - остаток, количество корреляций, которые необходимо сделать на последнем шаге, когда используется только часть или ни один из буферов корреляции. Следует отметить, что если r равен нулю, то этот последний частичный шаг выполнять не требуется. Следует понимать, в уравнении 4 и других подобных уравнениях используется целочисленная арифметика, а не арифметика с плавающей точкой.

Фиг. 4 является схемой, иллюстрирующей минимальные вычислительные затраты с использованием контрольной точки с полным состоянием в момент времени с индексом k в соответствии с иллюстративными вариантами осуществления настоящей методики. Если принятой здесь целью оптимизации является минимизация J(n, M) с использованием одной контрольной точки 402 на временном шаге k, то для этапа корреляции 404 на временном шаге с индексом k и до него может быть использовано k прямых шагов для достижения местоположения контрольной точки плюс J (n-k, M-S) для прямого и сопряженного продвижения, необходимого для индексов временного шага от k+1 до n. Доступная память уменьшается на S вследствие контрольной точки 402 буфера состояния на временном шаге с индексом k. Вычислительные затраты 406 для прямого и сопряженного продвижения во времени для индексов от 0 до k-1 будет равно J(k-1, M), как показано в уравнении 5.

Далее уравнение 6 учитывает минимизацию J(n, M) в условиях ограничения, состоящего в том, что нет используемой контрольной точки или имеется по меньшей мере одна контрольная точка в некотором состоянии k (состояние k находится между состоянием 0 и состоянием n).

Как можно видеть в приведенной выше формуле, размер ограничения памяти всегда изменяется кратно S, и имеется целочисленное количество ns буферов состояний контрольных точек с памятью, равной nsS. Память, соответствующая nc буферам корреляции, равна (nc-1)C. Общая память, соответствующая комбинации буферов состояния контрольных точек и буферов корреляции, показана в уравнении 7.

В иллюстративном варианте осуществления приведенное выше уравнение итерационно решается для нахождения числового решения для требуемого размера задачи и объема потребляемой памяти.

Фиг. 5A-B являются схемами, иллюстрирующими временные шаги, на которых контрольные точки с полным состоянием или контрольные точки корреляции могут быть сохранены, в соответствии с иллюстративными вариантами осуществления настоящей методики. Например, как показано на фиг. 5A, контрольные точки 502 корреляции могут быть сохранены перед контрольной точкой 504 с полным состоянием на временном шаге k. Однако для любого случая с использованием контрольной точки корреляции перед контрольной точкой с полным состоянием имеется соответствующий случай, который не использует контрольные точки корреляции перед контрольными точками с полным состоянием, который является по меньшей мере таким же эффективным. На фиг. 5A затраты 506 для достижения первой из nc контрольных точек 508 корреляции перед контрольной точки 504 с полным состоянием в момент k могут быть выражены как J=J(k-1-nc, M). Затраты контрольных точек 508 корреляции могут быть выражены как J=nc+2. Наконец, затраты 510 для достижения конечного временного шага 512 от контрольной точки 504 с полным состоянием могут быть представлены как J=J(n-k, M-S-ncC). На основе этого, если оптимальный случай хранит nc буферов перед контрольной точкой 504 с полным состоянием на некотором временном шаге k, как проиллюстрировано на фиг. 5A, то полные вычислительные затраты могут быть заданы в уравнении 8.

На фиг. 5B затраты 514 для достижения контрольной точки 516 с полным состоянием в момент в k-nc могут быть выражены как J=J(k-1-nc, M). Затраты 518 для достижения первой из nc контрольных точек 520 корреляции, сохраненных перед конечным временным шагом 522, от контрольной точки 516 с полным состоянием могут быть представлены как J=J(n-k, M-S). Таким образом, в случае, в котором контрольные точки корреляции не сохранены перед контрольной точкой 516 с полным состоянием, полные вычислительные затраты показаны в уравнении 9.

Как можно видеть из уравнений 8 и 9, последний случай по меньшей мере так же хорош, как предыдущий случай (в котором хранятся контрольные точки корреляции перед контрольной точкой с полным состоянием). Таким образом, в иллюстративных вариантах осуществления нужно рассматривать только последний случай.

Оптимальное создание контрольных точек против создания контрольных точек Гриванка

Отношение объема памяти (S/C) контрольных точек с полным состоянием к объему памяти контрольных точек корреляции часто может быть приблизительно равно 10, таким образом, это обеспечивает удобное отношение для использования для сравнения вычислительных затрат для описанного здесь оптимального создания контрольных точек и создания контрольных точек Гриванка. В приведенной ниже таблице 1 n представляет количество временных шагов, требуемых для прямых и сопряженных вычислений. Столбец с заголовком "Идеал" представляет вычислительные затраты для продвижения во времени с возможностью корреляции прямого и сопряженного моделирования в среде, в которой имеется с избытком память, и стоимость минимальна, насколько возможно. Столбец с заголовком "Схема Гриванка" предполагает, что доступны ns=M/S буферов состояния, и контрольные точки корреляции не используются. Столбец с заголовком "Оптимальная схема" показывает результаты, полученные с использованием контрольных точек с полным состоянием и контрольных точек корреляции. Столбец с заголовком "отношение" вычисляется как результаты вычислений по схеме Гриванка, разделенные на результаты по оптимальной схеме, и предоставляет ускорение, возможное с помощью этого нового способа по сравнению с использованием только оптимальной стратегия создания контрольных точек Гриванка.

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

Кроме того, можно заметить, что типичные параметры, которые применяются к общим кластерным приложениям системы Linux трехмерной миграции в обратном времени могут соответствовать линии с 4000 временными шагами, 10 буферами состояний и M=100, причем отношение (увеличение скорости) составляет примерно 1,28. Если бы компания должна была иметь компьютерную систему за 20 миллионов долларов, работающую исключительно над миграцией в обратном времени, то экономический эффект этого изменения алгоритма составил бы порядка 5,6 миллионов долларов.

Таблица 1
Затраты для Оптимального создания контрольных точек против создания контрольных точек Гриванка
Полные вычислительные затраты (прямые и сопряженные) Идеал Схема Гриванка Оптимальная схема Отношение
n=55, 2 буфера состояния (M=20) 109 264 156 1,6923
n=1000, 2 буфера состояния (M=20) 1999 13171 9901 1,3303
n=1000, 10 буферов состояния (M=100) 1999 4548 3392 1,3408
n=2000, 10 буферов состояния (M=100) 3999 10184 7545 1,3501
n=4000, 10 буферов состояния (M=100) 7999 22184 17311 1,2815
n=1000, 100 буферов состояния (M=1000) 1999 2898 1999 1,4497
n=2000, 100 буферов состояния (M=1000) 3999 5898 4998 1,1801
n=4000, 100 буферов состояния (M=1000) 7999 11898 11025 1,0792

Фиг. 6A-C являются схемами, иллюстрирующими работу схемы Гриванка и оптимальной схемы создания контрольных точек для упрощенного моделирования, имеющего 55 временных шагов, в соответствии с иллюстративными вариантами осуществления настоящей методики. Для каждого из примеров количество шагов (55) и объем пространства памяти (20) одинаковы. Фиг. 6A иллюстрирует стратегию создания контрольных точек Гриванка, имеющую затраты J=210 для случая n=55, M=20, S=10 (то есть нет контрольных точек корреляции). Фиг. 6B иллюстрирует оптимальную стратегию создания контрольных точек с J=102 для случая n=55, M=20, C=1, S=10. Фиг. 6C иллюстрирует оптимальную стратегию создания контрольных точек с J=148 для случая n=55, M=20, C=2, S=10 (середина). В алгоритме создания контрольных точек Гриванка, показанном на фиг. 6A, сохраняются только полные состояния (обозначены горизонтальными линиями), что дает возможность полного повторного начала алгоритма распространения из каждого сохраненного состояния. При работе алгоритм выполняет несколько итераций прямого моделирования. Например, на первом проходе 602 полные состояния сохраняются во время распространения импульса возбуждения в прямом направлении на временном шаге 35 (606) и на временном шаге 50 (604). Это полностью использует доступную память M=20. Затем алгоритм продвигает шаги распространения в прямом направлении до временного шага 55 и выполняет взаимную корреляцию с распространяющимся в обратном направлении волновым полем от приемников. Затем распространяющееся в обратном направлении волновое поле переходит на один временной шаг назад до временного шага 54. Распространяющееся в прямом направлении волновое поле восстанавливается на временном шаге 50 (64) и продвигается до временного шага 54, и взаимная корреляция выполняется снова. Эта процедура повторяется для временных шагов 53, 52, 51, и корреляция выполняется с использованием контрольной точки с полным состоянием непосредственно на временном шаге 50 (604).

Память, используемая для временного шага 50, затем высвобождается, и взаимная корреляция продолжается с прямыми моделированиями, выполненными от временного шага 35 (606). Высвобожденная память используется для сохранения контрольных точек от временного шага 35 (606), таких как контрольная точка на временном шаге 45 (608). Контрольная точка на временном шаге 45 (608) используется для выполнения прямого моделирования для временных шагов с 49 по 46, причем на каждом временном шагу распространяющееся в прямом направлении волновое поле подвергается взаимной корреляции с распространяющимся в обратном направлении волновым полем от приемника. После того, как взаимная корреляция выполнена с использованием контрольной точки с полным состоянием на временном шаге 45 (608), память высвобождается и используется для другой контрольной точки на временном шаге 41 (610). Процедура повторяется, пока взаимная корреляция не будет выполнена для всех временных шагов. Можно отметить, что интервал между контрольными точками не является однородным на фиг. 6A; в первом пробеге, например, контрольные точки находятся на шагах 50, 45, 41, 38 и 36, а не на шагах 50, 45, 40 и 36. Это происходит потому, что номера, показанные в чертеже, были определены как оптимальные с использованием алгоритма оптимизации (оптимизация Гриванка в случае фиг. 6A), тогда как другие возможные варианты местоположения контрольных точек могут являться или не являться оптимальными. Хотя используемый объем памяти уменьшается, можно заметить, что количество вычислений в значительной степени увеличивается. Поскольку объем памяти и время доступа для памяти часто ограничены, процедура может в значительной степени улучшить время выполнения, делая полную миграцию RTM выполнимой. Однако количество вычислений и объем памяти, используемые при создании контрольных точек Гриванка, по-прежнему могут представлять собой проблему для сложных вычислений построения сейсмических изображений, таких как миграция RTM.

В иллюстративном варианте осуществления настоящей методики сохраняются контрольные точки двух различных типов, контрольная точка с полным состоянием, от которой может быть повторно начато моделирование (или может быть выполнена взаимная корреляция), и меньшая контрольная точка, которая содержит только данные волнового поля, необходимые для взаимной корреляции. Это может предоставить существенные преимущества и для вычислений, и для памяти. Например, в результате может быть оптимальное использование памяти, показанное на фиг. 6B, если предполагается, что память, используемая для хранения контрольной точки корреляции, составляет 1/10 от размера памяти, используемой для хранения контрольной точки с полным состоянием. При этом условии может потребоваться гораздо меньше полных проходов моделирования. На фиг. 6C более длинные линии указывают контрольные точки с полным состоянием, в то время как более короткие линии указывают контрольные точки корреляции. Во время первого прохода на фиг. 6B полный проход 612 моделирования начинается с нулевой точки 614. Во время полного прохода 612 моделирования контрольная точка корреляции (или буфер корреляции) сохраняется в каждой точке от временного шага 35 (616) до временного шага 54, тем самым исчерпывая доступную память M=20 двадцатью буферами корреляции. Нет необходимости хранить информацию корреляции на этапе 55, поскольку информация содержится непосредственно в данных прямого моделирования. Затем может быть выполнена взаимная корреляция с распространяющимся в обратном направлении волновым полем от приемника в каждой из этих точек. Как только взаимная корреляция завершена для временных шагов с 55 до 35, второй проход 620 из полного моделирования выполняется от нулевого временного шага. Во время второго прохода 620 полного моделирования контрольная точка корреляции сохраняется на каждом временном шаге от временного шага 14 (622) до временного шага 33 (624), снова исчерпывая память M=20. Взаимная корреляция повторяется на каждом из этих временных шагов с использованием контрольной точки корреляции на этом временном шаге, и затем процедура повторяется для третьего прохода 626 полного моделирования. Как можно заметить, при равных ресурсах оптимальная стратегия создания контрольных точек обеспечивает существенную экономию времени вычисления, когда выполняется лишь 101 шаг прямого распространения волны по сравнению с 209 шагами прямого распространения волны для процедуры создания контрольных точек Гриванка.

В сводке на фиг. 6B оптимальная стратегия настоящего изобретения для C=1, которая может быть определена посредством испытания всех комбинаций и nS и nC, которые удовлетворяют уравнению 7, и выбора одной (или одной из нескольких) комбинации, которая дает самое низкое значение для J, с использованием уравнения 6, оказывается удовлетворительной при не использовании буферов с полным состоянием вообще, а при использовании доступной памяти M=20 полностью для буферов корреляции. Как будет видно далее в описании фиг. 6C, оптимальная стратегия большего значения C (C=2) включает в себя использование одного буфера с полным состоянием и пяти буферов корреляции одновременно.

Даже если пространство памяти для контрольной точки корреляции ближе по размеру к пространству, требуемому для контрольной точки с полным состоянием, оптимальная процедура создания контрольных точек может обеспечить существенную экономию. Например, фиг. 6C показывает оптимальное создание контрольных точек, выполненное в таком же объеме памяти, как на фиг. 6A и 6B, но с отношением 5 к 1 для размера между контрольной точкой с полным состоянием и контрольной точкой корреляции. Процедура в общем является такой же, как на фиг. 6B, но контрольная точка 628 с полным состоянием сохраняется во время первого полного прохода 630 моделирования. Во время первого полного прохода моделирования контрольные точки корреляции сохраняются между временным шагом 49 (632) и временным шагом 54 (634). Затем может быть выполнена взаимная корреляция на временном шаге 55 и затем с каждым из значений между временными шагами 54 и 49. Полный проход моделирования повторяется от временного шага 31 (628) еще три раза, как обозначено номером 636, и взаимная корреляция выполняется на каждом временном шаге. Память освобождается, и три заключительных полных прохода 638 моделирования выполняются от нулевого временного шага с взаимными корреляциями, выполняемыми для каждой из сохраненных контрольных точек корреляции. Как может быть видно из фиг. 6C, в этой ситуации имеется всего 147 шагов прямого распространения волны 147, что по-прежнему значительно меньше, чем 209 шагов прямого распространения волны создания контрольных точек Гриванка.

Оптимальная технология создания контрольных точек может обеспечить от 10 процентов до более чем 400 процентов ускорения миграции RTM по сравнению с более ранней стратегией создания контрольных точек Гриванка в зависимости от среды компьютерного оборудования и размера задачи для заданного приложения миграции RTM. Кроме того, описанная здесь стратегия создания контрольных точек не ограничена прямыми корреляциями, но может использоваться для корреляций, в которых текущее состояние зависит от прошлого состояния, как это может быть необходимо относительно некоторых вычислений градиента FWI и некоторых формул автоматического дифференцирования.

Фиг. 7A-C являются схемами, сравнивающими создание контрольных точек для стандартной корреляции и создание контрольных точек, когда прошлое состояние в сопряженном вычислении влияет на взаимную корреляцию с текущим состоянием в прямом вычислении, в соответствии с иллюстративными вариантами осуществления настоящей методики. Фиг. 7A иллюстрирует условия стандартной корреляции, в то время как фиг. 7B иллюстрирует условия стандартной корреляции в дополнение к условиям смещенной корреляции, например, при выполнении моделирования коллектора, в котором прошлые условия влияют на текущие условия. Фиг. 7C иллюстрирует применение оптимальной стратегии создания контрольных точек для случая, имеющего 12 этапов, память 6, и в которой C=2 и S=3. На фиг. 7A-C направленная вверх стрелка 702 представляет прямое вычисление, и направленная вниз стрелка 704 представляет сопряженное моделирование, например, в котором значения, вычисленные на предыдущем временном шаге, влияют на значения, вычисленные на более позднем временном шаге. Горизонтальная двунаправленная стрелка 706 представляет условие стандартной корреляции, и диагональная двунаправленная стрелка 708 представляет условие смещенной корреляции. Кроме того, сплошная горизонтальная линия 710 представляет контрольную точку с полным состоянием с размером S, и пунктирная горизонтальная линия 712 представляет контрольную точку корреляции с размером C.

Для многих применений (например, миграции в обратном времени или некоторых из алгоритмов вычисления градиента) требуется коррелировать только соответствующие состояния (то есть , как показано в Фиг. 7A). Однако в некоторых случаях (например, для некоторых алгоритмов вычисления градиента, используемых при моделированиях коллектора), нам необходимо коррелировать не только соответствующее состояние, но также и соседнее состояние (то есть , как показано на фиг. 7B). В иллюстративных вариантах осуществления настоящей методики оптимальная стратегия создания контрольных точек модифицирована для работы в последнем случае, как продемонстрировано на фиг. 7C.

Реализация оптимальной стратегии создания контрольных точек, описанная на фиг. 7C, обеспечивает минимальное использование памяти. Однако используются три типа корреляции (то есть корреляция сопряженного волнового поля с прямым волновым полем, корреляция сопряженного волнового поля с буфером "снимка" в памяти и корреляция сопряженного волнового поля с буфером корреляции в памяти). Это можно лучше понять, рассматривая задачу взаимной корреляции как задачу с инверсией цепочки. Варианты осуществления настоящей методики могут обеспечить более эффективный способ инверсии цепного вычисления, которое коррелирует результаты прямого моделирования с результатами обратного, или сопряженного, моделирования, например, инвертированной цепочки. Это может быть применено для стандартной взаимной корреляции, как проиллюстрировано на фиг. 7A. Это также может быть применено к модифицированной взаимной корреляции, как проиллюстрировано на фиг. 7B и более подробно на фиг. 7C. Другие условия взаимной корреляции также могут извлечь выгоду из настоящего метода, если реализация основана на использовании инвертированной цепочки.

Расширение оптимального создания контрольных точек до двух уровней памяти с разными скоростями доступа

В дополнение к памяти либо для контрольных точек с полным состоянием, либо для контрольных точек корреляции, иллюстративные варианты осуществления настоящей методики также могут оптимизировать хранение контрольных точек на основе скорости доступной памяти. В настоящих вычислительных архитектурах обычно имеются несколько уровней памяти с разными скоростями доступа. Например, вычисления могут выполняться на графических процессорах (GPU) с использованием памяти графического процессора (самая быстрая память) или памяти центрального процессора, памяти твердотельного диска и дисковой памяти (самая медленная память). Для упрощения объяснения этого понятия можно рассмотреть два уровня памяти, например память центрального процессора и диск.

При определении оптимального распределения контрольных точек могут быть сделаны два предположения. Во-первых, можно предположить, что быстрая память с размером MF требует затрат WSF, WCF для записи контрольной точки с полным состоянием или контрольной точки корреляции соответственно и затрат RSF, RCF для считывания контрольной точки с полным состоянием или контрольной точки корреляции соответственно. Во-вторых, можно предположить, что медленная память (с размером MS) требует затрат WSS, WCS для записи контрольной точки с полным состоянием или контрольной точки корреляции соответственно и затрат RSS, RCS для считывания контрольной точки с полным состоянием или контрольной точки корреляции соответственно. Кроме того, можно предположить, что вычислительные затраты для развития любого состояния до следующего состояния составляют единицу, контрольная точка с полным состоянием имеет размер S, и контрольная точка корреляции имеет размер C.

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

В уравнении 10 знак "*" может быть заменен на F или S, чтобы указать, находится ли начальная контрольная точка в быстрой памяти или медленной памяти. Таким образом, JF(n, MF, MS) представляет собой стоимость взаимной корреляции n состояний с быстрой памятью MF и медленной памятью MS для случая, в котором первое состояние находится в быстрой памяти (то есть если первое состояние должно быть восстановлено для повторного вычисления, эта информация находится в быстрой памяти). Выражение JS(n, MF, MS) является аналогичным за исключением того, что первое состояние в медленной памяти JFno_cp(n, MF, MS), и JFno_cp (n, MF, MS) следует таким же определениям с ограничением, что не разрешены контрольные точки с полным состоянием, и, таким образом, сохраняются только контрольные точки корреляции. Кроме того, можно отметить, что во второй и третьей строках вместо RSF или RSS для четвертого выражения используются RCF или RCS, поскольку даже если в памяти находится контрольная точка с полным состоянием, считывается только часть для буфера корреляции из контрольной точки с полным состоянием, если цель не состоит в том, чтобы повторно начать моделирование. Однако это может зависеть от фактических затрат реализации восстановления буфера корреляции сохраненной контрольной точки с полным состоянием.

Вычисление функции затрат J*no_cp (n, MF, MS) является более сложным, чем для явной формы Jno_cp(n, Μ), используемой в случае с одной памятью. Однако оно может быть выполнено с использованием аналогичной методики рекурсии, как показано в уравнении 11.

В уравнении 11 i и j - количество буферов корреляции, которые мы хотим использовать. Формула упрощена и не отражает тот факт, что n-1-i-j≥0. Кроме того, для случая n-1-i-j=0 вторая строка в уравнении минимума не должна учитываться. Как описано ниже, J*no_cp(n, MF, MS) может быть оценено явным образом вместо того, чтобы полагаться на приведенную выше рекурсивную формулу.

Результаты определения оптимальных контрольных точек в памяти, имеющей две разные скорости доступа, показаны на фиг. 8 и 9. Для примера, показанного на фиг. 8 и 9, затраты на доступ к быстрой памяти предполагаются равными нулю (то есть WcF=RcF=WsF=RsF=0) для простоты объяснения. Однако описанные здесь методы работают для любых реализаций, имеющих ненулевые затраты доступа к быстрой памяти. Кроме того, длинная горизонтальная линия представляет контрольную точку с полным состоянием, короткая горизонтальная линия представляет контрольную точку корреляции, и любая линия, имеющая ромб в конце, обозначает сохранение в медленной памяти.

Фиг. 8A-E являются схемами, иллюстрирующими несколько ситуаций, в которых объем быстрой и медленной памяти варьирует, в то время как пространство памяти, используемое для каждого типа контрольной точки, остается одинаковым, в соответствии с иллюстративными вариантами осуществления настоящей методики. На фиг. 8A-E скорость для медленной памяти предполагается равной WcS=RcS=WsS=RsS=0,2. Объем пространства памяти, который использует контрольная точка каждого типа, предполагается равным C=S=2 (соответствует предположению схемы Гриванка). На фиг. 8A объем памяти составляет MF=3 и MS=0. На фиг. 8B MF=2 и MS=3. На фиг. 8C MF=2 и MS=12. На фиг. 8D MF=14 и MS=0. Наконец, на фиг. 8E MF=3 и MS=20. Как можно видеть на фиг. 8A-E, объем и типы имеющейся памяти могут иметь существенный эффект для результата оптимизации. Например, на фиг. 8C и 8D объем всей памяти является одинаковым, но различие в скорости памяти приводит к различию в полученной оптимальной стратегии создания контрольных точек.

В общем случае затраты на доступ к памяти (то есть время для ввода-вывода) будут отличаться в зависимости от размера информации. Например, как описывается здесь, память, используемая для контрольной точки с полным состоянием, может быть в значительной степени больше, чем память, используемая для контрольной точки корреляции, в случае, когда S в значительной степени больше, чем C.

Фиг. 9A-E являются схемами, иллюстрирующими несколько ситуаций, в которых объем быстрой и медленной памяти различен, причем пространство памяти, используемое для контрольной точки корреляции, равно двум, а для контрольной точки с полным состоянием равно трем, в соответствии с иллюстративными вариантами осуществления настоящей методики. Таким образом, на фиг. 9A-E WcS=RcS=1,0, WsS=RsS=1,5, C=2 и S=3. На фиг. 9A объем памяти составляет MF=3 и MS=0. На фиг. 9B MF=2 и MS=3. На фиг. 9C MF=2 и MS=12. На фиг. 9D MF=14 и MS=0. Наконец, на фиг. 9E MF=3 и MS=20. Можно отметить, что объемы памяти, используемые на каждой из фиг. 9A-E, соответствуют объему памяти, используемому на каждой из фиг. 8A-E, и показывают изменение в стратегии, которое происходит, когда использование памяти отличается для контрольных точек с полным состоянием по сравнению с контрольными точками корреляции.

Сравнение фиг. 8E и 9E иллюстрирует, что потери от использования медленной памяти могут полностью изменить стратегию, даже если вся память является достаточно большой для обоих случаев. Таким образом, выполнение миграции RTM с созданием контрольных точек на очень большом диске может быть медленнее, чем миграция RTM с созданием контрольных точек с использованием намного меньшего количества распределенных буферов оперативной памяти на параллельном компьютере.

Таблица 2 представляет сравнение времени решения (включающего в себя и прямое, и сопряженное вычисление) между раскрытой здесь оптимальной методикой создания контрольных точек и стратегией создания контрольных точек Гриванка. В этом примере выполняется взаимная корреляция 1000 состояний, C=1 Гб и S=10 Гб. Кроме того, показаны различные комбинации памяти, и затраты на доступ предполагаются WcS=RcS=2 с и WsS=RsS=5 с.

Таблица 2
Решение сравнения затрат между оптимальным созданием контрольных точек и созданием контрольных точек Гриванка при (WcS=RcS=2 с, WsS=RsS=5 с), C=1 Гб, S=10 Гб и n=1000
Аппаратная память Стратегия создания контрольных точек Время моделирования
20 Гб памяти Гриванк 3,66 часов
20 Гб памяти Оптимальная 2,75 часов
200 Гб на диске Гриванк 3,47 часов
200 Гб на диске Оптимальная 1,89 часов
20 Гб памяти и 200 Гб на диске Оптимальная 1,07 часов
200 Гб памяти Гриванк 1,04 часов
200 Гб памяти Оптимальная 47 минут
Бесконечная память 33 минуты

Явная оценка затрат

Вместо использования рекурсивной формулы выражение J*nocp(n, MF, MS) может быть определено явно. Для достижения решения рассмотрим выражение J*nocp(n, m, MF, MS), которое представляет собой затраты на взаимную корреляцию n шагов по m прямых проходов без использования контрольных точек с полным состоянием с состоянием 0 в памяти "*" (либо F, либо S) и с ограничением памяти MF, MS. Таким образом, процедура, показанная в уравнении 12, может использоваться для определения затрат с сохранением контрольных точек с полным состоянием.

Затем может быть определен минимум из формул, показанных в уравнении 13

Чтобы минимизировать выражение J*nocp (n, m, MF, MS), можно рассмотреть три случая. В первом случае не может использоваться никакая память, причем m=n. Во втором случае может использоваться только быстрая память, что представляет формулу в уравнении 14.

В третьем случае используется и быстрая память, и медленная память, и В этом случае скорость увеличивается посредством использования как можно большего количества быстрой памяти (иначе нет необходимости использовать медленную память). Этот случай представляет формулу в уравнении 15.

На основе этих случаев m можно искать около пяти критических значений, показанных в уравнении 16.

Уравнение 16 может использоваться для получения наилучшего значения m и соответствующего J*nocp(n, MF, MS). При применении этих приведенных выше формул должны учитываться надлежащие границы. Например, если mFopt не находится между и n, то его не нужно рассматривать.

Эффективное вычисление оптимальной стратегии создания контрольных точек.

Хотя выражение J*no_cp(n, MF, MS) может быть определено явно, рекурсивная формула по-прежнему используется, чтобы найти J*(n, MF, MS). С использованием рекурсивной формулы затраты на корреляцию n состояний с использованием nF буферов быстрой памяти (nF=MF/S) и ns (ns=Ms/S) буферов медленной памяти могут быть предварительно определены как затраты ~n2×nF×nS. Здесь символ "~" используется для обозначения "порядка". Эти предварительно сведенные в таблицу данные требуют памяти с размером ~n×nF×nS. Как только мы имеем предварительно сведенные в таблицу данные о затратах, нам требуются только затраты ~n2 для вычисления оптимальной стратегии создания контрольных точек с двумя уровнями памяти для заданных ограничений объемов двух типов памяти. Самый интенсивный с точки зрения вычислений этап представляет собой предварительное вычисление таблицы затрат J*(n, MF, MS) (для корреляции до n состояний с ограничениями памяти MF, MS) с затратами ~n2×nF×nS. Хотя это лишь единовременные затраты, имеет значение сделать этот этап эффективным. В иллюстративном варианте осуществления это может быть выполнено с использованием дополнительного табулирования значения k (местоположения первой контрольной точки с полным состоянием). После дополнительного табулирования значения k фактическое определение стратегии создания контрольных точек приведет к затратам ~n вместо ~n2. Рассмотренные выше методики и формулы могут использоваться для определения оптимальных количеств и местоположений контрольных точек, как описано в отношении способов, показанных на фиг. 10-14.

Фиг. 10 является блок-схемой последовательности операций для реализации моделирование, которое использует контрольные точки корреляции, в соответствии с иллюстративными вариантами осуществления настоящей методики. Процесс начинается на этапе 1002 с вычисления оптимальной стратегии создания контрольных точек. Это вычисление может быть выполнено с использованием описанных выше формул. На этапе 1004 выделяется необходимая память. Она может быть ограничена доступной памятью, размером контрольных точек с полным состоянием и контрольных точек корреляции и т.п. На этапе 1006 реализуются стратегия создания контрольных точек и вычисления корреляции, например, посредством прохода через последовательность команд создания контрольных точек.

Например, стратегия создания контрольных точек может быть выражена в форме упорядоченного списка команд. Приведенная ниже таблица 3 представляет пример системы команд, которая может использоваться для реализации стратегии создания контрольных точек. В этом примере "номер команды" соответствует последовательности операций, которые должны быть выполнены, когда встречается этот "номер команды". Может существовать несколько способов задать такую систему команд, но наличие одной версии, представленной ниже, достаточно для реализации технологии.

Таблица 3
Иллюстративные команды для реализации стратегии создания контрольных точек
Номер команды Команда
-1 Выйти из командного цикла. Все выполнено.
0 Выполнить временной шаг в прямом направлении N раз и затем сохранить буфер состояния в памяти указанного типа.
Например, (0 74 S) предписывает выполнить команду типа 0 и 74 временных шага в прямом направлении и затем сохранить буфер состояния в медленной памяти.
1 Выполнить сопряженный временной шаг в обратном направлении и корреляцию с корреляционной частью информации состояния прямого моделирования, которая находится в памяти указанного типа. Высвободить пространство памяти этого типа. Перезагрузить состояние прямого моделирования из памяти указанного типа.
Например, (1 S F) означает выполнить сопряженный временной шаг и корреляцию. Затем высвободить пространство памяти из медленной памяти из последнего сохраненного в ней буфера состояния. Затем перезагрузить прямое моделирование из последнего буфера состояния, сохраненного в быстрой памяти.
2 Выполнить временной шаг в прямом направлении N раз и сохранить указанное количество буферов в быстрой и медленной памяти, выбирая интервалы в конце временных шагов прямого моделирования. Затем выполнить сопряженные временные шаги и корреляцию информации для каждого из сохраненных буферов корреляции. Затем высвободить пространство памяти для сохраненных буферов корреляции.
Например, (2 55 10F 4S) означает прямое вычисление 55 временных шагов и сохранение буферов корреляции для шагов 45-54 в быстрой памяти и сохранение буферов корреляции для шагов 41-44 в медленной памяти. Следует отметить, что информация корреляции для шага 55 доступна в данных прямого моделирования для шага 55, и ее не нужно сохранять отдельно.
3 Перезагрузить прямое волновое поле из последнего сохраненного буфера состояния в памяти указанного типа.
Например, (3 F) перезагружает состояние прямого волнового поля из последнего буфера состояния в быстрой памяти.

Пример использования команд для реализации процедуры создания контрольных точек представлен ниже. В этом случае корреляция имеет 266 временных шагов, S=12, C=1, MF=10, Ms=40, затраты доступа Rs=Ws=2 и Rc=Wc=0,6 для медленной памяти и нулевые затраты доступа для быстрой памяти.

(0 74 S), (0 71 S), (0 66 S), (2 55 10F 4S), (3 S), (2 40 10F 4S), (3 S), (2 25 10F 3S), (3 S), (2 11 10F 0S), (1 S S), (2 65 10F 16S), (3 S), (2 38 10F 16S), (3 S), (2 11 10F 0S), (1 S S), (2 70 10F 28S), (3 S, 2 31 10F 9S), (3 S), (2 11 10F 0S), (1 S F), (2 73 10F 40S), (3 F), (2 22 10F 0S), (3 F), (2 11 10F 0S), Приложения А и В являются листингами исходного кода двух примеров компьютерной программы, которая может быть использована для формирования оптимальной стратегии контрольных точек, которая реализуется посредством вышеуказанных инструкций, которые заданы только вышеуказанными параметрами, т.е. S и C, и т.д. Программы в приложениях А и В используют стратегию контрольных точек настоящего изобретения, однако программа будет выбирать схему контрольных точек Гриванка, где это будет оптимально.

Фиг. 11 является блок-схемой последовательности операций способа вычисления минимальных затрат без контрольных точек с полным состоянием в соответствии с иллюстративными вариантами осуществления настоящей методики. Способ начинается на этапе 1102 с инициализации пустого списка для сохранения потенциального оптимального количества проходов. На этапе 1104 первое значение этого списка инициализируется и устанавливается равным n, количеству временных шагов в прямом моделировании.

На этапе 1106 максимальное количество буферов корреляции, которые могут быть сохранены в быстрой памяти и медленной памяти, вычисляются посредством формул На этапе 1108 выполняется определение относительно того, доступен ли по меньшей мере один быстрый буфер контрольной точки корреляции, то есть nCF≥1. Если быстрые буферы контрольной точки корреляции не доступны, процесс переходит на этап 1118.

Если имеется по меньшей мере один быстрый доступный буфер корреляции, то на этапе 1110 вычисляется минимальное требуемое количество проходов, если используются только быстрые буферы корреляции, с помощью формулы mF=|n/(nCF+1)|. На этапе 1112 вычисляется оптимальное количество проходов, если используются только быстрые буферы корреляции, с помощью формулы m o p t F = ( R S * + n n C F + ( W C F + R C F ) ) / ( 1 + 1 n C F ) . На этапе 1114 значение mFopt добавляется в список, если и только если mF<mFopt<n. На этапе 1116 mF добавляется в список.

На этапе 1118 выполняется определение относительно того, доступен ли по меньшей мере один медленный буфер контрольной точки корреляции, то есть ncs≥1. Если медленные буферы контрольной точки корреляции не доступны, процесс переходит на этап 1128.

Если имеется по меньшей мере один медленный доступный буфер корреляции, на этапе 1120 вычисляется минимальное требуемое количество проходов с использованием всех типов буферов корреляции с помощью формулы mF&S=|n/(nCF+nCS+1)|. На этапе 1122 вычисляется оптимальное количество проходов, если используются все быстрые буферы корреляции и по меньшей мере один буфер корреляции, с помощью формулы На этапе 1124 mF&Sopt добавляется в список, если и только если mF&S<mF&Sopt<последнее значение в списке. На этапе 1126 mF&S добавляется в список.

На этапе 1128 список повторно формируется для включения в него ближайших целых чисел в пределах того же самого диапазона. Например, если первоначальный список представляет собой (17, 10, 1), то новый список должен представлять собой (17, 16, 11, 10, 9, 2, 1). Это может помочь учесть округление действительных чисел до целых чисел.

На этапе 1130 вычисляются соответствующие затраты каждого потенциального оптимального количества проходов с использованием следующих формул.

где mF&S используется для определения MF и MS перед использованием предыдущих формул. На этапе 1132 возвращаются минимальные затраты.

Фиг. 12 является блок-схемой последовательности операций способа вычисления минимальных затрат и наилучшего местоположение для выполнения взаимной корреляции n состояний в соответствии с иллюстративными вариантами осуществления настоящей методики. Способ предполагает, что nf_used буферов состояния контрольной точки быстрой памяти и ns_used буферов состояния контрольной точки медленной памяти уже используются, и что начальная контрольная точка с полным состоянием сохранена в памяти типа StartType, и первая контрольная точка с полным состоянием сохранена в памяти типа KType. (Набранные курсивом выражения в реализациях на C и C++ способа настоящего изобретения и снова появляются в приведенных ниже уравнениях) StartType обозначает тип хранения, быстрый или медленный, соответствующий контрольной точке с полным состоянием, от которой инициируется прямое моделирование. KType обозначает тип хранения, быстрый или медленный, соответствующий контрольной точке с полным состоянием, которая будет сохранена на временном шаге с индексом k. StartType может принимать два значения, F для быстрой памяти или S для медленной памяти, nf_used представляет собой количество использующихся в настоящее время буферов состояния контрольной точки быстрой памяти. Доступная в настоящий момент быстрая память для новых контрольных точек информации состояния или корреляции не включает в себя пространство для использующихся в настоящее время буферов состояния контрольной точки быстрой памяти. Аналогичным образом, ns_used представляет собой количество использующихся в настоящее время буферов состояния контрольной точки медленной памяти, и доступная в настоящий момент медленная память не включает в себя пространство для использующихся в настоящее время буферов состояния контрольной точки медленной памяти.

На этапе 1202 выполняется определение относительно того, возможна ли ситуация. Если ситуация не возможна, процесс переходит на этап 1204, на котором возвращаются очень большие затраты (например, 1e10) для идентификации того, что вычисление невозможно.

На этапе 1206 выполняется определение относительно того, что n=2. Если это так, то наилучшее местоположение первой контрольной точки с полным состоянием должно быть 1, и соответствующие затраты возвращаются на этапе 1208.

На этапе 1210 предыдущий наилучший шаг k получается из предварительно вычисленной таблицы. Это значение в таблице вычислено для корреляции n-1 состояний с одинаковым ограничением памяти и одной и той же начальной контрольной точкой с полным состоянием и первым требованием типа хранения контрольной точки с полным состоянием.

На этапе 1212 для каждого шага k в пределах некоторого расстояния, например S/C+1, от предыдущего наилучшего k вычисляются соответствующие затраты, которые должны быть в первой контрольной точке с полным состоянием в местоположении k. Если первая контрольная точка с полным состоянием должна находиться в быстрой памяти (то есть KType=F), затраты задаются формулой:

Если первая контрольная точка с полным состоянием не должна находиться в быстрой памяти, затраты задаются формулой:

В приведенных выше уравнениях следующее определение:

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

Фиг. 13 является блок-схемой последовательности операций, показывающей, каким образом предварительно вычислить таблицу минимальных затрат, соответствующих контрольной точке с полным состоянием, взятой в оптимальном местоположении k, в соответствии с иллюстративными вариантами осуществления настоящей методики. Способ начинается на этапе 1302 с выделения массивов для хранения таблицы. Например, два пятимерных массива J_with_cp[2][2][n][nfMax][nsMax] и BestK[2][2][n][nfMax][nsMax] могут быть выделены для отслеживания минимальных затрат и наилучшего местоположения первой контрольной точки. Как часть выделения все значения в массиве инициализируются и устанавливаются равными -1. В обоих массивах первая размерность представляет тип хранения для навальной контрольной точки. Вторая размерность представляет тип хранения для первой контрольной точки. Третья размерность представляет количество состояний, которые должны быть коррелированы. Четвертая размерность представляет максимальное количество контрольных точек в быстрой памяти. Пятая размерность представляет максимальное количество контрольных точек в медленной памяти.

На этапе 1304 отслеживается счетчик для цикла I от 2 до n, где I представляет количество состояний, которые должны быть коррелированы. На этапе 1306 отслеживается другой счетчик для цикла J от 0 до nfMax, где nfMax - количество буферов состояния быстрой памяти, которые были использованы. На этапе 1308 отслеживается третий счетчик для цикла K от 0 до nSMax, где nsMax - количество буферов состояния медленной памяти, которые были использованы.

На этапе 1310 вычисляются минимальные затраты и наилучшее местоположение первой контрольной точки для выполнения перекрестной корреляции I состояний с уже использованными J буферами контрольной точки с полным состоянием быстрой памяти и с K буферами контрольной точки с полным состоянием медленной памяти для 4 случаев: 1) Начиная с контрольной точки с полным состоянием в быстрой памяти, вычислить затраты для первой контрольной точки с полным состоянием в медленной памяти. 2) Начиная с контрольной точки с полным состоянием в быстрой памяти, вычислить затраты для первой контрольной точки с полным состоянием в медленной памяти. 3) Начиная с контрольной точки в медленной памяти, вычислить затраты для первой контрольной точки с полным состоянием в быстрой памяти. 4) Наконец, начиная с контрольной точки с полным состоянием в медленной памяти, вычислить затраты для первой контрольной точки с полным состоянием в медленной памяти. Полученные результаты используются для обновления соответствующей записи таблицы для массивов J_with_cp и BestK. Каждый из этих четырех шагов для этапа 1304 может быть вычислен с использованием способа, показанного на фиг. 12. Вычисление затрат 1212 требует знания затрат памяти полного состояния для указанного типа хранения, количества восстановлений для заданной контрольной точки с полным состоянием на указанном временном шаге и затрат восстановления полного состояния для указанного типа хранения. Когда nS≥2, описанный выше процесс может быть применен рекурсивно, чтобы оптимально определить местоположение дополнительных контрольных точек с полным состоянием.

Фиг. 14 является блок-схемой последовательности операций способа вычисления минимальных затрат и оптимальной стратегии создания контрольных точек для корреляции n состояний с nƒ_used буферами состояния быстрой памяти и nf_used буферами состояния медленной памяти в ситуации, когда начальная контрольная точка находится в памяти типа StartType, в соответствии с иллюстративными вариантами осуществления настоящей методики. Способ начинается на этапе 1402, на котором затраты, соответствующие первой контрольной точке с полным состоянием в быстрой памяти, получаются из таблицы J_with_cp, и соответствующее наилучшее местоположение контрольной точки с полным состоянием из таблицы BestK. На этапе 1404 затраты с первой контрольной точкой с полным состоянием в медленной памяти получаются из таблицы J_with_cp, и соответствующее наилучшее местоположение контрольной точки получается из таблицы BestK. Таблицы, сформированные с помощью способа фиг. 13, могут использоваться и на этапе 1402, и на этапе 1404. На этапе 1406 определяются затраты без использования контрольных точек и соответствующее оптимальное количество проходов (см. фиг. 11). На этапе 1408 согласно тому, какие затраты (из шагов 1, 2 или 3) являются минимальными, рекурсивно выдается оптимальная стратегия создания контрольных точек.

Идентификация минимальных затрат при вычислениях для создания контрольных точек

Фиг. 15 представляет собой график, показывающий отношение между минимальными затратами и местоположением первой контрольной точки с полным состоянием (k) для взаимной корреляции 266 шагов с использованием четырех буферов, когда S/C=12 и Rs=Ws=Rc=Wc=0, в соответствии с иллюстративными вариантами осуществления настоящей методики. В особом случае S/C=1 и Rs=Ws=Rc=Wc=0 местоположение оптимальной первой контрольной точки имеет явную форму (как определено стратегией создания контрольных точек Гриванка). Однако, как только мы имеем S>C, местоположение оптимальной первой контрольной точки становится сложным даже в простом случае, когда по прежнему сохраняются условия Rs=Ws=Rc=Wc=0. В примере, показанном на фиг. 15, имеется три локальных минимума 1502 для выбора первой контрольной точки. Когда Rs, Ws, Rc и Wc больше не равны нулю, поведение становится еще более нелинейным, как показано на фиг. 16.

Фиг. 16 представляет собой график, показывающий отношение между минимальными затратами и местоположением первой контрольной точки с полным состоянием для взаимной корреляции 266 шагов с использованием четырех буферов, когда S/C=12, Rs=Ws=12 и Rc=Wc=1 в соответствии с иллюстративными вариантами осуществления настоящей методики. В этом примере график был сформирован в предположении, что восстановление с нулевого состояния прямого моделирования не требует никаких затрат. Как можно видеть из графика на фиг. 16, идентификации минимума 1602 могут усложниться. Одно важное наблюдение на основе числовых экспериментов с рекурсивной формулой состоит в том, что при (1) сохранении одинаковой доступной памяти (то есть MF и MS одинаковы) и (2) одинаковых типах начальной контрольной точки с полным состоянием и первой контрольной точки с полным состоянием (то есть в быстрой или медленной памяти) второй локальный минимум постепенно становится глобальным минимумом при увеличении n. Другое важное наблюдение состоит в том, что расстояние между двумя локальными минимумами находится примерно в пределах расстояния -S/C+1. С помощью этих двух наблюдений мы можем искать первое местоположение контрольной точки (k) среди небольшого количества возможностей. Это приводит к алгоритму, который предварительно вычисляет таблицу затрат с затратами лишь ~n×nF×nS по сравнению с ~n2×nF×nS.

Поиск только около ожидаемого местоположения контрольной точки значительно уменьшает вычислительные затраты стратегии в ~n раз с некоторой потерей качества стратегии. Однако этот метод может обеспечить стратегию создания контрольных точек с дополнительными затратами менее 1% по сравнению с оптимальной стратегией создания контрольных точек, полученной посредством полного поиска.

Для очень большого n память для таблиц cost и BestK и время вычисления таблиц может стать большим. Практическая стратегия реализации для очень большого n может состоять в том, чтобы вычислить оптимальные таблицы для разумного размера nmax_table и затем переключиться на стратегию создания контрольных точек с полным состоянием Гриванка, чтобы найти BestK, если n>nmax_table, и использовать таблицы, если n<nmax_table. Значение Гриванка для BestK может быть оценено без потребности в таблице. Обычно это приводит к стратегии создания контрольных точек, которая является лишь на несколько процентов более затратной, чем оптимальная стратегия, найденная с помощью полноразмерной таблицы.

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

Фиг. 17 представляет собой график 1700, показывающий улучшение производительности оптимальной стратегии создания контрольных точек по сравнению с созданием контрольных точек с использованием процедуры Гриванка, в соответствии с иллюстративными вариантами осуществления настоящей методики. Отношение между производительностью и доступной памятью обычно имеет форму, показанную на фиг. 17. На графике 1700 верхняя сплошная линия 1702 представляет оптимальную производительность, вычисленную для использования двух уровней памяти, например быстрой памяти и медленной памяти. Средняя сплошная линия 1704 представляет оптимальную производительность, вычисленную для использования одного уровня памяти. Нижняя пунктирная линия 1706 представляет производительность, вычисленную для использования создания контрольных точек Гриванка. Как показано на графике 1700, производительность первоначально увеличивается с увеличением доступной памяти (обычно по мере добавления большего количества вычислительных узлов), поскольку будет требоваться меньше повторных вычислений контрольных точек с полным состоянием.

Однако после того, как доступная память выходит за пределы некоторой точки (например, точки A 1708 или точки F 1710), потеря роста становится доминирующей, и производительность уменьшается. Потеря роста является результатом добавления большего количества вычислительных блоков к задаче, причем эффективность каждого вычислительного блока уменьшается из-за увеличенных служебных издержек, вызванных использованием множества блоков, например связи между блоками или между системами хранения и блоками. Потеря роста может произойти из-за отсутствия идеальной масштабируемости приложения. Кроме того, преимущество от сокращения повторных вычислений становится несущественным. Рост производительности на основе оптимальной стратегии создания контрольных точек зависит от доступной памяти. Например, если доступно достаточно памяти, рост производительности оптимального создания контрольных точек по сравнению с созданием контрольных точек Гриванка может представлять собой отношение между точкой A 1708 и точкой F 1710. Если память ограничена (который обычно имеет место), рост производительности может представлять собой отношение между точкой A 1712 и точкой D 1714.

Применения

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

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

Можно отметить, что этап корреляции требует лишь того, чтобы волновое поле возбуждения источника и распространяющееся в обратном направлении во времени волновое поле приемника одновременно были подвергнуты взаимной корреляции и просуммированы для всех временных шагов. Таким образом, распространение или моделирование могут быть выполнены в обратном временном порядке или в прямом временном порядке, и результат является одинаковым. Описанный выше пример миграции RTM имеет волновое поле возбуждения источника, которое естественным образом доступно в прямом временном порядке, к которому получают доступ в обратном временном порядке, в то время как волновое поле приемника проходит в обратном направлении во времени. В качестве альтернативы, оптимальная стратегия создания контрольных точек также может применяться к реализациям, в которых для волнового поля приемника создаются контрольные точки во время распространения в обратном направлении во времени, и затем к нему получают доступ в прямом временном порядке для сопоставления волнового поля возбуждения источника, распространяемого в прямом направлении во времени. Обе реализации охвачены описанными здесь способами.

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

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

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

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

Иллюстративная кластерная вычислительная система

Фиг. 18 является блок-схемой иллюстративной кластерной вычислительной системы 1800, которая может использоваться для реализации настоящей методики, в соответствии с иллюстративными вариантами осуществления настоящей методики. Проиллюстрированная Кластерная вычислительная система 1800 имеет четыре вычислительных блока 1802, каждый из которых может выполнять вычисления для части построения сейсмических изображений. Однако специалист в области техники поймет, что настоящие методики не ограничены этой конфигурацией, поскольку может быть выбрано любое количество вычислительных конфигураций. Например, меньшая модель, такая как вычисление для построения сейсмических изображений, может быть выполнена на одном вычислительном блоке 1802, таком как рабочая станция, в то время как большая модель может быть выполнена на кластерной вычислительной системе 1800, имеющей 10, 100, 1000 или даже больше вычислительных блоков 1802.

К кластерной вычислительной системе 1800 может быть получен доступ от одной или более клиентских систем 1804 по сети 1806, например, через высокоскоростной сетевой интерфейс 1808. Сеть 1806 может включать в себя локальную сеть (LAN), глобальную сеть (WAN), Интернет или любые их комбинации. Каждая из клиентских систем 1804 может иметь непреходящую машиночитаемую память 1810 для хранения операционного кода и программ, в том числе оперативное запоминающее устройство (RAM) и постоянное запоминающее устройство (ROM). Операционный код и программы могут включать в себя код, используемый для реализации всех или любых частей описанных здесь способов, например, описанных со ссылкой на фиг. 3 и 10-14. Кроме того, непреходящие машиночитаемые носители могут содержать контрольные точки с полным состоянием, контрольные точки корреляции и результаты моделирования, такие как представление данных подземного пространства. Клиентские системы 1804 также могут иметь другие непреходящие машиночитаемые носители, такие как системы 1812 хранения. Системы 1812 хранения могут включать в себя один или более накопителей на жестких дисках, один или более накопителей на оптических дисках, одну или более карт флэш-памяти, любые комбинации этих блоков или любое другое подходящее устройство хранения. Системы 1812 хранения могут использоваться для хранения контрольных точек, кода, моделей, данных и другой информации, используемой для описанных здесь способов. Например, система хранения данных может содержать контрольные точки для оптимальной стратегии создания контрольных точек.

Высокоскоростной сетевой интерфейс 1808 может быть соединен с одной или более коммуникационными шинами в кластерной вычислительной системе 1800, такой как коммуникационная шина 1814. Коммуникационная шина 1814 может использоваться для передачи команд и данных от высокоскоростного сетевого интерфейса 1808 к кластерной системе хранения 1816 и к каждому из вычислительных блоков 1802 в кластерной вычислительной системе 1800. Коммуникационная шина 1814 также может использоваться для связи между вычислительными блоками 1802 и кластерной системой хранения 1816. В дополнение к коммуникационной шине 1814 может присутствовать высокоскоростная шина 1818 для увеличения скорости связи между вычислительными блоками 1802 и/или кластерной системой хранения 1816.

Кластерная система хранения 1816 может иметь один или более непреходящих машиночитаемых носителей, таких как массивы 1820 памяти для хранения контрольных точек, данных, визуальных представлений, результатов, кода или другой информации, например, относительно реализации и результатов способов, показанных на фиг. 3 и 10-14. Массивы 1820 памяти могут включать в себя любые комбинации накопителей на жестких дисках, накопителей на оптических дисках, карт флэш-памяти, голографических массивов памяти или любых других подходящих устройств.

Каждый из вычислительных блоков 1802 может иметь процессор 1822 и соответствующие локальные материальные машиночитаемые носители, такие как память 1824 и хранилище 1826. Каждый из процессоров 1822 может являться многоядерным устройством, таким как многоядерный центральный процессор или графический процессор. Память 1824 может включать в себя постоянное запоминающее устройство (ROM) и/или оперативное запоминающее устройство (RAM), используемое для хранения кода, например, используемого для того, чтобы заставить процессор 1822 реализовать способы, описанные относительно фиг. 3 и 10-14. Хранилище 1826 может включать в себя один или более накопителей на жестких дисках один или более накопителей на оптических дисках, одну или более карт флэш-памяти или любые их комбинации. Хранилище 1826 может использоваться для обеспечения хранения для контрольных точек, промежуточных результатов, данных, изображений или кода, соответствующего операциям, в том числе кода, используемого для реализации способа, показанного на фиг. 3 и 10-14.

Настоящие методики не ограничены архитектурой или конфигурацией блоков, проиллюстрированной на фиг. 18. Например, любое подходящее устройство на основе процессора может быть использовано для реализации всех или части вариантов осуществления настоящей методики, в том числе, но без ограничения, персональные компьютеры, сетевые персональные компьютеры, ноутбуки, компьютерные рабочие станции, графические процессоры, мобильные устройства и многопроцессорные серверы или рабочие станции с совместно используемой памятью или без нее. Кроме того, варианты осуществления могут быть реализованы на специализированных интегральных схемах (ASIC) или крупномасштабных интегральных схемах (VLSI). Фактически специалисты в области техники могут использовать любое количество подходящих структур, способных к выполнению логических операций в соответствии с вариантами осуществления.

Примеры

Пример усовершенствованного моделирования (SEAM) общества геофизиков-разведчиков (SEG), описанный в разделе "Уровень техники", может работать с использованием "оптимального" создания контрольных точек Гриванка и с использованием настоящего изобретения для различных компьютерных конфигураций.

Прямой, то есть не использующий создания контрольных точек способ, который сохраняет все временные шаги прямого моделирования, может означать сохранение 40000 временных шагов с объемом 84 гигабайта каждый или примерно 3,36 петабайт данных. Примеры для выполнения миграции RTM над данными SEAM демонстрируют, что настоящее изобретение обеспечивает самые большие преимущества по сравнению с созданием контрольных точек Гриванка в оперативной памяти, когда оперативная память очень ограничена по размерам по сравнению с размером прикладной задачи.

Эти примеры применения миграции RTM моделирования SEAM используют оперативную память для "быстрой памяти" и диск для "медленной памяти" и предполагают, что затраты чтения или записи буфера с полным состоянием на диск составляют пять единиц затрат, затраты чтения или записи буфера корреляции на диск составляют две единицы, и что затраты вычислений прямого временного шага составляют одну единицу, и затраты выполнения обратного временного шага составляют три единицы. Затраты чтения или записи буфера с полным состоянием или буфера корреляции с использованием оперативной памяти приняты равными нулю. Кроме того, принято отношение S/C=12. "Затраты в прямом направлении" представляют собой количество единиц затрат, требуемое для обеспечения информации прямого моделирования с обратным по времени порядком и включают в себя и затраты прямого продвижения во времени, и затраты выполнения операций восстановления и сохранения. "Общие затраты" представляют собой количество единиц затрат, требуемое для выполнения и обращения во времени прямого моделирования, и продвижения в обратном направлении во времени для реализации миграции RTM.

Следующая информация сведена в таблицу для каждого примера. Использованный алгоритм должен вычислить количество операций сохранения и восстановления для каждого типа памяти и для каждого типа операции. Эта информация используется для вычисления затрат обращения во времени прямого моделирования. Используемый алгоритм обеспечивает решение Гриванка всякий раз, когда C больше или равно S. В этом случае контрольные точки с полным состоянием, выполненные посредством схемы Гриванка, которые могут быть выполнены посредством сохранения только информации, необходимой для выполнения корреляции, рассматриваются алгоритмом, как если бы они являлись хранилищами информации корреляции.

nReadc[F] Количество восстановлений информации, необходимой для выполнения вычисления корреляции, из быстрой памяти
nWritec[F] Количество сохранений информации, необходимой для выполнения вычисления корреляции, в быструю память
nReads[F] Количество восстановлений полных состояний из быстрой памяти
nWrites[F] Количество сохранений полных состояний в быструю память
nReadc[S] Количество восстановлений информации, необходимой для выполнения вычисления корреляции, из медленной памяти
nWritec[S] Количество сохранений информации, необходимой для выполнения вычисления корреляции, в медленную память
nReads[S] Количество восстановлений полных состояний из медленной памяти
nWrites[S] Количество сохранений полных состояний в медленную память

Эти три примера, обозначенные A, B и C, сравнивают (1) компьютерные затраты стратегии обращения во времени с использованием создания контрольных точек Гриванка для оперативной памяти, (2) настоящее изобретение с использованием создания контрольных точек только в оперативной памяти, и (3) настоящее изобретение с использованием создания контрольных точек и в оперативной памяти, и на диске. Эти примеры предполагают, что n=40000 временных шагов, и компьютерную среду, которая может поддерживать 100 буферов с полным состоянием в оперативной памяти и 100 буферов с полным состоянием на диске. Настоящее изобретение может обеспечить ускорение в 1,30 раза по сравнению со стратегией создания контрольных точек Гриванка со всеми контрольными точками Гриванка в оперативной памяти.

Пример A: Схема Гриванка в памяти

S=84 Гб

Быстрая память=8316 Гб (99 буферов состояния)

Затраты в прямом направлении=114750

Общие затраты=154646

nReadc[F]=39248 nWritec[F]=38540 nReads[F]=751 nWrites[F]=708 nReadc[S]=0 nWritec[S]=0 nReads[S]=0 nWrites[S]=0

Пример B: Оптимальная схема в памяти

S=84 Гб

C=7 Гб

Быстрая память=8316 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Затраты в прямом направлении=79262

Общие затраты=119261

nReadc[F]=39957 nWritec[F]=39916 nReads[F]=42 nWrites[F]=41 nReadc[S]=0 nWritec[S]=0 nReads[S]=0 nWrites[S]=0

Использование буферов корреляции обеспечивает ускорение в 1,44 раза для обращения времени прямого моделирования и общее ускорение в 1,29 раза по сравнению с использованием схемы Гриванка в памяти для выполнения миграции RTM.

Пример C: Оптимальная схема в памяти и на диске

S=84 Гб

C=7 Гб

Быстрая память=8316 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Медленная память=8400 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Затраты в прямом направлении=79163

Общие затраты=119162

nReadc[F]=39934 nWritec[F]=39934 nReads[F]=1 nWrites[F]=0 nReadc[S]=32 nWritec[S]=0 nReads[S]=32 nWrites[S]=32

Хотя доступное дисковое пространство может содержать 100 буферов с полным состоянием или 1200 буферов корреляции, алгоритм изобретения хочет использовать только 32 буфера с полным состоянием на диске. Высокие затраты на выполнение операций ввода с диска и вывода на диск не способствуют тому, чтобы алгоритм использовал все доступное дисковое пространство. Большая часть ускорения в этом случае достигается за счет отношения S/C, и только пошаговое ускорение достигается от имеющегося диска. Пример C обеспечивает общее ускорение в 1,30 раза по сравнению с использованием схемы Гриванка в памяти для выполнения миграции RTM.

Следующие три примера предполагают, что n=40000 временных шагов, и компьютерная среда может поддерживать 20 буферов с полным состоянием в оперативной памяти и 100 буферов с полным состоянием на диске. Следует отметить, что доступная оперативная память меньше, чем в приведенных выше примерах, и что имеется большее преимущество, соответствующее этому изобретению. Настоящее изобретение, примененное в примере G, может обеспечить ускорение в 1,67 раз по сравнению со стратегией создания контрольных точек Гриванка со всеми контрольными точками Гриванка в оперативной памяти в примере D и еще большее ускорение по сравнению со стратегией создания контрольных точек Гриванка со всеми контрольными точками Гриванка на диске в примере E.

Пример D: Схема Гриванка в памяти

S=84 Гб

Быстрая память=1680 Гб (20 буферов с полным состоянием)

Затраты в прямом направлении=185055

Общие затраты=225054

nReadc[F]=33275 nWritec[F]=27439 nReads[F]=6724 nWrites[F]=5836 nReadc[S]=0 nWritec[S]=0 nReads[S]=0 nWrites[S]=0

Пример E: Схема Гриванка на диске

S=84 Гб

Медленная память=8400 Гб (100 буферов с полным состоянием)

Затраты в прямом направлении=513685

Общие затраты=553684

Схема Гриванка на диске: S=84 Гб, C=84 Гб, n=40000, M[F]=0, M[S]=8400 Гб (100 буферов)

Затраты в прямом направлении=513685=114750+(39248+38540+751+708)*5 (Вычислено из добавления затрат ввода/вывода из предыдущего случая)

Следует отметить, что создание контрольных точек Гриванка на диске более затратно, чем создание контрольных точек Гриванка в оперативной памяти в этом примере из-за затрат на операции ввода с диска и вывода на диск.

Пример F: Оптимальная схема в памяти и на диске

S=84 Гб

C=7 Гб

Быстрая память=1680 Гб (используется либо как буферы состояния, либо как буферы корреляции),

Медленная память=8400 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Затраты в прямом направлении=94655

Общие затраты=134654

nReadc[F]=39710 nWritec[F]=39692 nReads[F]=33 nWrites[F]=18 nReadc[S]=100 nWritec[S]=0 nReads[S]=156 nWrites[S]=100

Это решение сохраняет 100 контрольных точек с полным состоянием на диск и делает 156 восстановлений информации контрольной точки с полным состоянием с диска. Еще 18 контрольных точек с полным состоянием выполняются в оперативной памяти. В общей сложности 33 операции восстановления выполняются над контрольными точками с полным состоянием в оперативной памяти. Буферы корреляции не сохраняются на диск.

Следующие два примера предполагают компьютерную среду, которая может поддерживать только 10 буферов с полным состоянием в оперативной памяти и 50 буферов с полным состоянием на диске. В этой среде настоящее изобретение может обеспечить ускорение в 1,97 раза по сравнению со стратегией создания контрольных точек Гриванка со всеми контрольными точками, сохраненными в оперативной памяти.

Пример G: Схема Гриванка в памяти

S=84 Гб

Быстрая память=840 Гб (10 буферов с полным состоянием)

Затраты в прямом направлении=269620

Общие затраты=309619

nReadc[F]=24586 nWritec[F]=14547 nReads[F]=15413 nWrites[F]=10039 nReadc[S]=0 nWritec[S]=0 nReads[S]=0 nWrites[S]=0

Пример H: Оптимальная схема в памяти и на диске

S=84 Гб

C=7 Гб

Быстрая память=840 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Медленная память=4200 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Затраты в прямом направлении=116736

Общие затраты=156735

nReadc[F]=39356 nWritec[F]=39327 nReads[F]=44 nWrites[F]=29 nReadc[S]=266 nWritec[S]=0 nReads[S]=333 nWrites[S]=266

Затраты на обращение времени распространяющегося в прямом направлении волнового поля импульса возбуждения для примера H имеют ускорение в 2,3 раза по сравнению с примером G. Применение полной миграции RTM для примера H имеет ускорение 1,97 по сравнению с примером G.

Следующие два примера предполагают компьютерную среду, которая может поддерживать только 5 буферов с полным состоянием в оперативной памяти и 25 буферов с полным состоянием на диске. В этой среде настоящее изобретение может обеспечить ускорение в 2,9 раза по сравнению со стратегией создания контрольных точек Гриванка со всеми контрольными точками, сохраненными в оперативной памяти.

Пример J: Схема Гриванка в памяти

S=84 Гб

Быстрая память=420 Гб (5 буферов с полным состоянием)

Затраты в прямом направлении=483735

Общие затраты=523734

nReadc[F]=12113 nWritec[F]=3224 nReads[F]=27886 nWrites[F]=8889 nReadc[S]=0 nWritec[S]=0 nReads[S]=0 nWrites[S]=0

Пример K: Оптимальная схема в памяти и на диске

S=84 Гб

C=7 Гб

Быстрая память=420 Гб (используется либо как буферы состояния, либо как буферы корреляции),

Медленная память=2100 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Затраты в прямом направлении=138318

Общие затраты=178317

nReadc[F]=38915 nWritec[F]=38830 nReads[F]=176 nWrites[F]=85 nReadc[S]=350 nWritec[S]=0 nReads[S]=558 nWrites[S]=350

Следующие два примера предполагают компьютерную среду, которая может поддерживать только 2 буфера с полным состоянием в оперативной памяти и 10 буферов с полным состоянием на диске. В этой среде настоящее изобретение может обеспечить ускорение в 5,7 раз по сравнению со стратегией создания контрольных точек Гриванка со всеми контрольными точками, сохраненными в оперативной памяти.

Пример L: Схема Гриванка в памяти

S=84 Гб

Быстрая память=168 Гб (2 буфера с полным состоянием)

Затраты в прямом направлении=1804685

Общие затраты=1844684

nReadc[F]=1914 nWritec[F]=62 nReads[F]=38085 nWrites[F]=1852 nReadc[S]=0 nWritec[S]=0 nReads[S]=0 nWrites[S]=0

Пример M: Оптимальная схема в памяти и на диске

S=84 Гб

C=7 Гб

Быстрая память=168 Гб (используется либо как буферы состояния, либо как буферы корреляции),

Медленная память=840 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Затраты в прямом направлении=280124

Общие затраты=320123

nReadc[F]=37505 nWritec[F]=37295 nReads[F]=757 nWrites[F]=210 nReadc[S]=461 nWritec[S]=0 nReads[S]=1276 nWrites[S]=461

Следующие два примера предполагают компьютерную среду, которая может поддерживать только 1 буфер с полным состоянием в оперативной памяти и 5 буферов с полным состоянием на диске. В этой среде настоящее изобретение может обеспечить ускорение в 20 раз по сравнению со стратегией создания контрольных точек Гриванка со всеми контрольными точками, сохраненными в оперативной памяти.

Пример N: Схема Гриванка в памяти

S=84 Гб

Быстрая память=84 Гб (1 буфер с полным состоянием)

Затраты в прямом направлении=7502798

Общие затраты=7542797

nReadc[F]=282 nWritec[F]=1 nReads[F]=39717 nWrites[F]=281 nReadc[S]=0 nWritec[S]=0 nReads[S]=0 nWrites[S]=0

Пример O: Оптимальная схема в памяти и на диске

S=84 Гб

C=7 Гб

Быстрая память=84Гб (используется либо как буферы состояния, либо как буферы корреляции)

Медленная память=420 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Затраты в прямом направлении=336109

Общие затраты=376108

nReadc[F]=35758 nWritec[F]=35758 nReads[F]=9 nWrites[F]=0 nReadc[S]=1262 nWritec[S]=0 nReads[S]=2970 nWrites[S]=1262

Последние два примера предполагают компьютерную среду, которая может поддерживать только 0,5 буфера с полным состоянием в оперативной памяти и 2,5 буфера с полным состоянием на диске, настоящее изобретение может обеспечить ускорение в 893 раза по сравнению со стратегией создания контрольных точек Гриванка со всеми контрольными точками, сохраненными в оперативной памяти.

Пример P: Схема Гриванка в памяти

S=84 Гб

Быстрая память=42 Гб (0 буферов с полным состоянием)

Затраты в прямом направлении=8000200

Общие затраты=8000600

nReadc[F]=0 nWritec[F]=0 nReads[F]=39999 nWrites[F]=0 nReadc[S]=0 nWritec[S]=0 nReads[S]=0 nWrites[S]=0

Пример Q: Оптимальная схема в памяти и на диске

S=84 Гб

C=7 Гб

Быстрая память=42 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Медленная память=210 Гб (используется либо как буферы состояния, либо как буферы корреляции)

Затраты в прямом направлении=855154

Общие затраты=895153

nReadc[F]=21768 nWritec[F]=21768 nReads[F]=27 nWrites[F]=0 nReadc[S]=14604 nWritec[S]=14254 nReads[S]=3600 nWrites[S]=350

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

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

ПРИЛОЖЕНИЕ A

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

ПРИЛОЖЕНИЕ B

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

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

2. Способ по п. 1, дополнительно содержащий этапы, на которых:
сохраняют контрольную точку с полным состоянием; и
повторно начинают моделирование от контрольной точки с полным состоянием.

3. Способ по п. 1, дополнительно содержащий этап, на котором определяют оптимальное местоположение для сохранения либо контрольной точки с полным состоянием, либо контрольной точки корреляции, причем оптимальное местоположение представляет собой пространство памяти, выделенное в памяти графического процессора (GPU), оперативном запоминающем устройстве (RAM), на виртуальном диске в оперативной памяти (RAM-диске), на дисковом накопителе или в любой их комбинации, причем определение оптимального местоположения по меньшей мере частично основано на скорости доступа к пространству памяти.

4. Способ по п. 1, в котором пространство памяти, используемое для контрольной точки корреляции, меньше, чем пространство памяти, используемое для контрольной точки с полным состоянием.

5. Способ по п. 1, дополнительно содержащий этап, на котором оптимизируют стратегию создания контрольных точек посредством этапов, на которых:
определяют вычислительные затраты, соответствующие сохранению контрольной точки корреляции;
минимизируют вычислительные затраты по меньшей мере частично на основе скорости доступа для каждого из множества блоков хранения и отношения пространства памяти, требуемого для контрольной точки с полным состоянием, к пространству памяти, требуемому для контрольной точки корреляции; и
формируют таблицу, содержащую множество временных шагов и тип контрольной точки, которая будет сохранена в каждом из множества временных шагов.

6. Способ по п. 5, в котором этап определения вычислительных затрат содержит этапы, на которых:
вычисляют максимальное количество контрольных точек корреляции, которые могут быть сохранены в быстром блоке памяти;
вычисляют максимальное количество контрольных точек корреляции, которые могут быть сохранены в медленном блоке памяти;
если какие-либо контрольные точки корреляции могут быть сохранены в быстрой памяти:
вычисляют оптимальное количество пробегов с использованием только быстрой памяти и добавляют его к списку;
вычисляют минимальное количество пробегов с использованием только быстрой памяти и добавляют его к списку;
если какие-либо контрольные точки корреляции могут быть сохранены в медленной памяти:
вычисляют минимальное количество пробегов с использованием всех типов памяти и добавляют его к списку;
вычисляют оптимальное количество пробегов с использованием всей быстрой памяти и сохранением по меньшей мере одной контрольной точки корреляции в медленной памяти, добавляют его в список, если оно меньше последнего значения в списке;
добавляют в список целочисленное значение, ближайшее к каждому значению в списке;
вычисляют затраты для каждого значения в списке; и
возвращают минимальные затраты.

7. Способ по п. 1, дополнительно содержащий этап, на котором формируют изображение подземной области из сейсмических данных.

8. Способ по п. 1, дополнительно содержащий этап, на котором сопоставляют хронологию данных коллектора с моделированием коллектора.

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

10. Способ по п. 9, содержащий этап, на котором сохраняют контрольную точку с полным состоянием во время моделирования, причем моделирование может быть повторно начато от контрольной точки с полным состоянием.

11. Способ по п. 9, дополнительно содержащий этапы, на которых:
вычисляют затраты для сохранения контрольной точки с полным состоянием; и
определяют временной шаг для сохранения контрольной точки с полным состоянием по меньшей мере частично на основе затрат.

12. Способ по п. 1, в котором данные, распространяющиеся в прямом направлении, коррелируются с данными, распространяющимися в обратном направлении, на следующем временном шаге.

13. Способ по п. 1, дополнительно содержащий этапы, на которых:
сохраняют множество контрольных точек корреляции в быстрой памяти; и
сохраняют по меньшей мере одну контрольную точку корреляции в медленной памяти.

14. Способ по п. 13, дополнительно содержащий этап, на котором сохраняют по меньшей мере одну контрольную точку с полным состоянием, причем моделирование может быть повторно начато от контрольной точки с полным состоянием.

15. Способ по п. 14, дополнительно содержащий этап, на котором сохраняют по меньшей мере одну контрольную точку с полным состоянием в быстрой памяти.

16. Способ по п. 1, в котором распространение моделируемых импульсов возбуждения в прямом направлении во времени выполняется с использованием полного двухстороннего волнового уравнения.

17. Способ по п. 1, в котором распространение моделируемых импульсов возбуждения в прямом направлении во времени выполняется с использованием методики миграции Кирхгоффа, миграции луча или миграции с односторонним волновым уравнением.

18. Способ по п. 1, в котором контрольная точка корреляции состоит из меньшего количества данных, чем необходимо для возобновления компьютерного моделирования, ввиду по меньшей мере одного из того, что:
а) вычисления для компьютерного моделирования выполняют с более высокой степенью точности, чем вычисления для корреляции;
б) вычисления для компьютерного моделирования требуют информации о граничном условии, не являющейся необходимой для корреляции;
в) не все компоненты данных, которые моделируют, подвергают корреляции;
г) компьютерное моделирование использует менее плотную вычислительную сетку, чем вычисления для корреляции.

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

20. Система по п. 19, в которой процессор содержит одно ядро, много ядер, графический процессор или любую их комбинацию.

21. Система по п. 19, в которой контрольная точка корреляции сохранена в памяти.

22. Система по п. 19, в которой память содержит оперативное запоминающее устройство (RAM), виртуальный диск в оперативной памяти (RAM-диск), память графического процессора или любую их комбинацию.

23. Система по п. 19, в которой память содержит код для сохранения контрольной точки с полным состоянием на временном шаге, причем компьютерное моделирование может быть повторно начато от контрольной точки с полным состоянием.

24. Реализованный на компьютере способ решения задачи построения изображений или инвертирования сейсмических данных, в котором к сейсмической модели с прямым продвижением во времени должен быть получен доступ в обратном временном направлении для корреляции с сопряженным вычислением с обратным продвижением во времени, содержащий этапы, на которых:
определяют и реализуют стратегию создания контрольных точек, которая уменьшает время вычисления для установленного объема доступной компьютерной памяти М, включающей в себя хранение данных, посредством выбора комбинации из nc буферов памяти с размером С, подходящим для хранения данных из прямого моделирования, необходимых для выполнения корреляции в отмеченном контрольной точкой временном шаге, без сохранения всех данных, необходимых для повторного начала моделирования с временного шага, и ns буферов памяти с размером S, подходящим для хранения всех данных, необходимых для повторного начала прямого моделирования с отмеченного контрольной точкой временного шага, причем ncC+nsS≤M, nc≥1 и ns≥0;
выполняют построение изображений или инвертирование на компьютере с использованием сохраненных данных из выбранных буферов памяти.

25. Способ по п. 24, в котором стратегия создания контрольных точек основана по меньшей мере частично на разных скоростях доступа ресурсов памяти.

26. Способ по п. 24, в котором стратегия создания контрольных точек включает в себя оптимизацию того, какие временные шаги выбираются в качестве контрольных точек для повторного начала, для предварительно выбранного общего количества временных шагов в прямом моделировании.

27. Способ по п. 26, в котором оптимизация того, какие временные шаги выбираются в качестве контрольных точек для повторного начала, основана на минимизации функции вычислительных затрат.

28. Способ по п. 24, в котором С зависит от того, какой тип корреляции используется при построении изображений или инвертировании.



 

Похожие патенты:

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

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

Изобретение относится к области распределенных эволюционных алгоритмов. Техническим результатом является повышение эффективности распределенных вычислений с использованием распределенных эволюционных алгоритмов.

Изобретение относится к способу связи. Технический результат - отслеживание и управление потреблением ресурсами.

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

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

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

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

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

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

Группа изобретений относится к работе сети управления. Технический результат - повышение безопасности и эксплуатационной надежности сети управления. Для этого предложен способ работы сети управления с единственным соединением между первым управляющим компьютером и вторым резервным управляющим компьютером через сеть, к которой подключено множество функционально важных технических устройств обработки данных. Информационно-техническое соединение между компьютерами и устройствами обеспечено посредством команды опроса состояния, причем для начала работы сети управления проверяется коммуникационное соединение между обоими компьютерами. При положительном результате проверки первому компьютеру назначается функция ведущего, а при отрицательном результате проверки оба компьютера присоединяют к себе устройства в установленной последовательности. При присоединении предопределенного количества устройств к одному из обоих компьютеров он принимает функцию ведущего, а другой компьютер - функцию резервного, при находящемся ниже заданного количестве устройств, подключенных к каждому из обоих компьютеров, генерируется сигнал, который сигнализирует состояние неисправности сети управления. 2 н. и 6 з.п. ф-лы, 1 ил.
Наверх