Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн
Рассмотрен подход к оптимизации обработки больших объемов данных, на процессорах, состоящих из большого количества ядер. На примере обработки сейсмических данных программой 3D миграции дуплексных волн показано устранение узких мест, которые сдерживают производительность через управление модулями про...
Saved in:
| Published in: | Компьютерная математика |
|---|---|
| Date: | 2014 |
| Main Authors: | , , |
| Format: | Article |
| Language: | Russian |
| Published: |
Інститут кібернетики ім. В.М. Глушкова НАН України
2014
|
| Subjects: | |
| Online Access: | https://nasplib.isofts.kiev.ua/handle/123456789/84811 |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Journal Title: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Cite this: | Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн / А.Н. Лавренюк, С.И. Лавренюк, Е.В. Назаренко // Компьютерная математика. — 2014. — № 1. — С. 69-75. — Бібліогр.: 10 назв. — рос. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraine| id |
nasplib_isofts_kiev_ua-123456789-84811 |
|---|---|
| record_format |
dspace |
| spelling |
Лавренюк, А.Н. Лавренюк, С.И. Назаренко, Е.В. 2015-07-15T19:51:32Z 2015-07-15T19:51:32Z 2014 Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн / А.Н. Лавренюк, С.И. Лавренюк, Е.В. Назаренко // Компьютерная математика. — 2014. — № 1. — С. 69-75. — Бібліогр.: 10 назв. — рос. ХХХХ-0003 https://nasplib.isofts.kiev.ua/handle/123456789/84811 004.4, 004.9, 004.42, 004.67, 004.915, 004.427 Рассмотрен подход к оптимизации обработки больших объемов данных, на процессорах, состоящих из большого количества ядер. На примере обработки сейсмических данных программой 3D миграции дуплексных волн показано устранение узких мест, которые сдерживают производительность через управление модулями программы режимами использования вычислительных ресурсов и оперативной памяти. Этот подход дает возможность улучшить качество обработки данных и уменьшить время работы программы. Розглянуто підхід до оптимізації обробки великих обсягів даних, на процесорах, що складаються з великої кількості ядер. На прикладі обробки сейсмічних даних програмою 3D міграції дуплексних хвиль показано усунення вузьких місць, які стримують продуктивність обчислень через керування модулями програми режимами використання обчислювальних ресурсів і оперативної пам'яті. Цей підхід дає можливість для поліпшення якості обробки даних і зменшення часу роботи програми. An approach to optimizing the processing of large volumes of data on the processors with a large number of cores is considered. On the example of seismic data processing using 3D migration of duplex wave program, the removing bottlenecks is shown that hinder the productivity through the program module management of modes of computing resources and RAM. This approach makes it possible to improve the quality of data and reduce the operation time of the program. ru Інститут кібернетики ім. В.М. Глушкова НАН України Компьютерная математика Оптимизация вычислений Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн Підхід до оптимізації програми обробки великих обсягів сейсмічних даних на прикладі 3d міграції дуплексних хвиль An approach to a program for optimization of the large volumes of seismic data processing on the example of duplex wave 3d migration Article published earlier |
| institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| collection |
DSpace DC |
| title |
Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн |
| spellingShingle |
Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн Лавренюк, А.Н. Лавренюк, С.И. Назаренко, Е.В. Оптимизация вычислений |
| title_short |
Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн |
| title_full |
Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн |
| title_fullStr |
Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн |
| title_full_unstemmed |
Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн |
| title_sort |
подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3d миграции дуплексных волн |
| author |
Лавренюк, А.Н. Лавренюк, С.И. Назаренко, Е.В. |
| author_facet |
Лавренюк, А.Н. Лавренюк, С.И. Назаренко, Е.В. |
| topic |
Оптимизация вычислений |
| topic_facet |
Оптимизация вычислений |
| publishDate |
2014 |
| language |
Russian |
| container_title |
Компьютерная математика |
| publisher |
Інститут кібернетики ім. В.М. Глушкова НАН України |
| format |
Article |
| title_alt |
Підхід до оптимізації програми обробки великих обсягів сейсмічних даних на прикладі 3d міграції дуплексних хвиль An approach to a program for optimization of the large volumes of seismic data processing on the example of duplex wave 3d migration |
| description |
Рассмотрен подход к оптимизации обработки больших объемов данных, на процессорах, состоящих из большого количества ядер. На примере обработки сейсмических данных программой 3D миграции дуплексных волн показано устранение узких мест, которые сдерживают производительность через управление модулями программы режимами использования вычислительных ресурсов и оперативной памяти. Этот подход дает возможность улучшить качество обработки данных и уменьшить время работы программы.
Розглянуто підхід до оптимізації обробки великих обсягів даних, на процесорах, що складаються з великої кількості ядер. На прикладі обробки сейсмічних даних програмою 3D міграції дуплексних хвиль показано усунення вузьких місць, які стримують продуктивність обчислень через керування модулями програми режимами використання обчислювальних ресурсів і оперативної пам'яті. Цей підхід дає можливість для поліпшення якості обробки даних і зменшення часу роботи програми.
An approach to optimizing the processing of large volumes of data on the processors with a large number of cores is considered. On the example of seismic data processing using 3D migration of duplex wave program, the removing bottlenecks is shown that hinder the productivity through the program module management of modes of computing resources and RAM. This approach makes it possible to improve the quality of data and reduce the operation time of the program.
|
| issn |
ХХХХ-0003 |
| url |
https://nasplib.isofts.kiev.ua/handle/123456789/84811 |
| citation_txt |
Подход к оптимизации программы обработки больших объемов сейсмических данных на примере 3D миграции дуплексных волн / А.Н. Лавренюк, С.И. Лавренюк, Е.В. Назаренко // Компьютерная математика. — 2014. — № 1. — С. 69-75. — Бібліогр.: 10 назв. — рос. |
| work_keys_str_mv |
AT lavrenûkan podhodkoptimizaciiprogrammyobrabotkibolʹšihobʺemovseismičeskihdannyhnaprimere3dmigraciidupleksnyhvoln AT lavrenûksi podhodkoptimizaciiprogrammyobrabotkibolʹšihobʺemovseismičeskihdannyhnaprimere3dmigraciidupleksnyhvoln AT nazarenkoev podhodkoptimizaciiprogrammyobrabotkibolʹšihobʺemovseismičeskihdannyhnaprimere3dmigraciidupleksnyhvoln AT lavrenûkan pídhíddooptimízacííprogramiobrobkivelikihobsâgívseismíčnihdanihnaprikladí3dmígracíídupleksnihhvilʹ AT lavrenûksi pídhíddooptimízacííprogramiobrobkivelikihobsâgívseismíčnihdanihnaprikladí3dmígracíídupleksnihhvilʹ AT nazarenkoev pídhíddooptimízacííprogramiobrobkivelikihobsâgívseismíčnihdanihnaprikladí3dmígracíídupleksnihhvilʹ AT lavrenûkan anapproachtoaprogramforoptimizationofthelargevolumesofseismicdataprocessingontheexampleofduplexwave3dmigration AT lavrenûksi anapproachtoaprogramforoptimizationofthelargevolumesofseismicdataprocessingontheexampleofduplexwave3dmigration AT nazarenkoev anapproachtoaprogramforoptimizationofthelargevolumesofseismicdataprocessingontheexampleofduplexwave3dmigration |
| first_indexed |
2025-11-24T11:37:31Z |
| last_indexed |
2025-11-24T11:37:31Z |
| _version_ |
1850845435057405952 |
| fulltext |
Компьютерная математика. 2014, № 1 69
Îïòèìèçàöèÿ
âû÷èñëåíèé
Рассмотрен подход к оптимиза-
ции обработки больших объемов
данных, на процессорах, состоя-
щих из большого количества ядер.
На примере обработки сейсмиче-
ских данных программой 3D
миграции дуплексных волн показа-
но устранение узких мест, кото-
рые сдерживают производитель-
ность через управление модулями
программы режимами использо-
вания вычислительных ресурсов и
оперативной памяти. Этот под-
ход дает возможность улуч-
шить качество обработки дан-
ных и уменьшить время работы
программы.
© А.Н. Лавренюк, С.И. Лавренюк,
Е.В. Назаренко, 2014
ÓÄÊ 004.4, 004.9, 004.42, 004.67, 004.915, 004.427
À.Í. ËÀÂÐÅÍÞÊ, Ñ.È. ËÀÂÐÅÍÞÊ, Å.Â. ÍÀÇÀÐÅÍÊÎ
ÏÎÄÕÎÄ Ê ÎÏÒÈÌÈÇÀÖÈÈ
ÏÐÎÃÐÀÌÌÛ ÎÁÐÀÁÎÒÊÈ ÁÎËÜØÈÕ
ÎÁÚÅÌΠÑÅÉÑÌÈ×ÅÑÊÈÕ ÄÀÍÍÛÕ
ÍÀ ÏÐÈÌÅÐÅ 3D ÌÈÃÐÀÖÈÈ
ÄÓÏËÅÊÑÍÛÕ ÂÎËÍ
Введение. Для качественной и быстрой
обработки сейсмических данных в режиме
реального времени требуются производи-
тельные вычислительные ресурсы, которые
имеют большие объемы оперативной памяти.
При этом данные ресурсы должны быть
настроены на выполнение интенсивных
файловых операций ввода/вывода. Несмотря
на все большую доступность больших вычи-
слительных кластеров, например, как супер-
компьютер Института кибернетики имени
В.М. Глушкова НАН Украины (СКИТ) [1]
или интеллектуальных рабочих станций,
например, как Инпарком [2], для обработки
сейсмических данных, возникают проблемы
связанные с ограничениями по объему опера-
тивной памяти для одного параллельного
процесса и по пропускной способности дис-
ковой системы хранения данных. На первый
взгляд, при запуске задачи на кластере,
можно уменьшить число процессов на один
вычислительный узел, тем самым увеличится
объем доступной оперативной памяти для
одного параллельного процесса и снизится
нагрузка на дисковую систему. Но про-
грамма миграции дуплексных волн [3, 4]
состоит из трех основных модулей:
• модуль расчета кубов времен от
источников и от приемников, при этом
полученные результаты сохраняются в виде
файлов;
А.Н. ЛАВРЕНЮК, С.И. ЛАВРЕНЮК, Е.В. НАЗАРЕНКО
70 Компьютерная математика. 2014, № 1
• модуль выполнения миграции на основе сохраненных файлов времен и
сохранение промежуточного результата;
• модуль объединения промежуточного результата всех потоков программы
в один результирующий файл.
При работе первого модуля происходит считывание данных из входных
файлов, выполняется расчет данных и проводится интенсивная запись в файлы
кубов времен и данных промежуточных расчетов. При увеличении числа ядер в
одном процессоре и больших объемах входных данных происходит задержка
доступа к файловой системе для процессов, в случае если на вычислительном
узле кластера запускается k-процессов программы, когда k – число ядер на узле.
Сложность в том, что для работы первого модуля программы необходимо
оперативной памяти намного больше, чем для работы двух других модулей.
Компенсируется это записью промежуточных результатов расчетов во
временные файлы. Чем меньше доступно процессу оперативной памяти, тем
чаще происходит обращение к временным файлам. При этом приходится
уменьшать качество работы программы иначе она не сможет дать результат за
необходимое реальное время. Если же иметь достаточный объем памяти для
расчета куба времени без промежуточной записи данных во временные файлы,
то программа обработки сейсмических данных будет работать быстрее и самое
главное с лучшим качеством. А другие модули не столь требовательны к объему
оперативной памяти и менее интенсивно производят запись файлов.
Соответственно если при запуске задачи указывать, что на процессоре с k
ядрами запустить m процессов, где m < k, то получим больше оперативной
памяти для одного процесса, но потеряем в производительности модуля расчета
времен и, особенно, в модуле миграции, так как k – m ядер будут не
задействованы для вичислений.
Этапы устранения мест, которые сдерживают производительность. При
возрастании числа ядер на один процессор возникает задержка при работе с
операциями записи в файл, когда при запуске задачи на вычислительном узле
запускается k-процессов, где k – число ядер на узле.
На первом этапе оптимизации, в программу внедрены алгоритмы сжатия
данных файлов времен без потери качества результата работы программы. Есть
два варианта работы программы: упаковка файлов времен с помощью
наилучшей Чебышевской аппроксимации сжатия числовых данных [5] (ре-
жим 3) и упаковка полученного результата в режиме 3 с помощью алгоритма
архивирования LZW (zip) (режим 4) [6]. Например, при обработке одного
входного файла на конкретной реальной задаче файлы времен без сжатия
занимают 49 Гб. При сжатии только в режиме 3 объем файлов времен
уменьшился до 25 Гб. А при работе в режиме 4 объем файлов стал 12 Гб. Таких
входных файлов на реальных задачах бывает от 10 до 30 и больше.
При этом получено ускорение в работе программы для режимов 3 – 1.64 и
4 – 1.78 раза.
ПОДХОД К ОПТИМИЗАЦИИ ПРОГРАММЫ ОБРАБОТКИ БОЛЬШИХ ОБЪЕМОВ ...
Компьютерная математика. 2014, № 1 71
Но этот этап оптимизации все же не позволяет уменьшать объем временных
файлов, так как качество результата миграции очень чувствительно к качеству
промежуточных результатов вычислений, которые при недостаточном
количестве оперативной памяти приходится вынужденно сохранять во
временных файлах, но без сжатия.
Также все дальше происходит развитие процессоров и увеличение
количества вычислительных ядер, которые содержит один процессор. Если на
вычислительном узле стоят несколько процессоров с большим количеством ядер
первый модуль программы при превышении определенных объемов входных
сейсмических данных не может работать на максимальной производительности
из-за ожидания записи данных в файлы. Учитывая данное проведен второй этап
оптимизации программы.
На втором этапе оптимизации предложено в программе выделить
виртуальные рабочие группы Wgn, состоящие из tr ядер, где tr – кратно общему
числу ядер в процессоре и подбирается экспериментально, n – число
виртуальных рабочих групп, при этом n = k/tr. В каждой такой группе
выделяется главное ядро. Запуск программы выполняем точно также:
k-процессов, где k – число ядер на узле. Но модуль расчета времен, требующий
большого объема оперативной памяти и работающий с файловыми операциями,
активно работает только на главном ядре.
На рис. 1 и 2 показано разделение многоядерного CPU Wgn и объединение
ядер в виртуальные рабочие группы.
РИС. 1. Виртуальные рабочие группы процессора
РИС. 2. Объединение ядер процессора в виртуальную рабочую группу
А.Н. ЛАВРЕНЮК, С.И. ЛАВРЕНЮК, Е.В. НАЗАРЕНКО
72 Компьютерная математика. 2014, № 1
Для того чтобы другие ядра, кроме главного из Wgn были задействованы в
вычислительном процессе, но использовали меньше памяти и не работали с
дисковой системой выделили вычислительные операции, которые выполняли
с помощью нитей, порождаемых процессом на главном ядре. Для создания и
управления такими нитями используется мощный механизм OpenMP [7].
Механизм распараллеливания OpenMP универсальный для разных платформ.
Но при кажущейся простоте он требует внимательности при более глубоком
распараллеливании уже имеющейся программы. Механизм OpenMP удалось
использовать для распараллеливания многих циклов благодаря тому, что в 3D
миграции дуплексных волн, есть циклические участки, в которых результат
вычислений в следующей итерации не зависит от результата вычислений на
текущей или предыдущей итерации.
Так как были выделены процессы, запущенные не на главных ядрах Wgn не
требующие большого объема оперативной памяти, то ее использует процесс
главного ядра.
При этом процесс на главном ядре использует под свои нужды объем
памяти:
RAM1 = RAMall / n, (1)
где RAMall вся оперативная вычислительного память узла, n – количество
виртуальных групп.
После того, как отработал первый модуль, оперативная память
перераспределяется, так как при работе второго и третьего модулей идет только
чтение данных из файлов и не частое записывание результата. При этом каждый
процесс работает на своем ядре без порождения нитей.
RAM2 = RAMall / k. (2)
Соответственно RAM2 < = RAM1. Так мы получаем дополнительную
оперативную память.
Вычислительные кластеры строятся давно. Появляются новые, более
мощные кластера, и также совершенствуются уже существующие. На практике
доступны для работы кластеры с разнородной структурой вычислительных
узлов. При запуске задача обработки сейсмических данных может распре-
делиться на узлы с разным количеством процессоров и разным количеством
ПОДХОД К ОПТИМИЗАЦИИ ПРОГРАММЫ ОБРАБОТКИ БОЛЬШИХ ОБЪЕМОВ ...
Компьютерная математика. 2014, № 1 73
ядер в одном процессоре. Предложенный подход по объединению ядер в вирту-
альные рабочие группы самой программой дает гибкий механизм для
оптимизации использования ресурсов в зависимости от потребностей вычи-
слительных модулей одной программы. Заметим, что tr может быть разным для
разных процессов одной задачи.
Далее на рис. 3 показан результат полученного ускорения в зависимости от
количества ядер на процессор и виртуальных групп, объединяющиеся в ядра.
0
0,5
1
1,5
2
4 8 12
Cores
T
ol
d
/T
n
ew
tr=2
tr=4
РИС. 3. Зависимость времени вычислений от величины виртуальной группы ядер
Следует заметить, что увеличение числа ядер в рабочей группе не дает
большого прироста по скорости обработки данных, а иногда может вызвать и
замедление. Но при увеличении числа ядер в одной группе можно задействовать
больший объем оперативной памяти для главного ядра группы, а это позволит
увеличить качество обработки данных, что зачастую необходимо, но сложно
реализовать из-за ограниченности ресурсов. Затем, перед началом работы
модуля миграции программа выполняет перераспределение ядер по вир-
туальным группам с tr = 1, так как для данного модуля нет необходимости в
очень большом объеме оперативной памяти.
На рис. 4 показана схема работы программы после второго этапа
оптимизации.
А.Н. ЛАВРЕНЮК, С.И. ЛАВРЕНЮК, Е.В. НАЗАРЕНКО
74 Компьютерная математика. 2014, № 1
Перераспределение оперативной
памяти вычислительного узла: до 90 %
для главного ядра и 10 % на остальные
ядра Wgn
Модуль 2 и 3: вычисления и работа с
файловыми операциями на всех
ядрах
Выделение виртуальных рабочих
групп из процессорных ядер при
tr>1
Вспомогательные
вычисления на
второстепенных ядрах
через механизм
OpenMP
Выделение виртуальных
рабочих групп из
процессорных ядер при tr=1
Перераспределение оперативной
памяти вычислительного узла:
RAMall/n
Модуль 1: основные
вычисления на
главном узле и
работа с файлами
РИС. 4. Структурная схема работы программы после оптимизации
Выводы. 1. В работе показан подход по управлению вычислительными
ресурсами и оперативной памятью отдельными модулями одной программы для
оптимизации работы программы. Такой подход дает улучшение качества обработки
данных и увеличения скорости работы программы.
2. Предложенный подход позволил увеличить качество обработки сейсми-
ческих данных, при ограниченных ресурсах, при этом не только не потеряв в скоро-
сти работы программы, а во многих случаях и выигрывая. При этом второй этап
оптимизации устраняет те узкие места в работе программы, которые невозможно
устранить только сжатием файлов времен.
3. В дальнейших исследованиях планируется выявление и устранение узких
мест в работе третьего модуля, когда происходит в основном интенсивное чтение
данных из файлов и не очень интенсивная запись результата. Так же планируется,
для интенсивных вычислительных операций использовать графические ускорители
(GPU) и язык программирования графических процессоров OpenCl [8],
позволяющий более универсально работать на устройствах разных производителей
[9]. Предварительная оценка времени работы программы [10] показывает положи-
тельный результат в выигрыше времени работы программы.
А.М. Лавренюк, С.І. Лавренюк, Є.В. Назаренко
ПІДХІД ДО ОПТИМІЗАЦІЇ ПРОГРАМИ ОБРОБКИ ВЕЛИКИХ ОБСЯГІВ
СЕЙСМІЧНИХ ДАНИХ НА ПРИКЛАДІ 3D МІГРАЦІЇ ДУПЛЕКСНИХ ХВИЛЬ
Розглянуто підхід до оптимізації обробки великих обсягів даних, на процесорах, що
складаються з великої кількості ядер. На прикладі обробки сейсмічних даних програмою 3D
міграції дуплексних хвиль показано усунення вузьких місць, які стримують продуктивність
ПОДХОД К ОПТИМИЗАЦИИ ПРОГРАММЫ ОБРАБОТКИ БОЛЬШИХ ОБЪЕМОВ ...
Компьютерная математика. 2014, № 1 75
обчислень через керування модулями програми режимами використання обчислювальних
ресурсів і оперативної пам'яті. Цей підхід дає можливість для поліпшення якості обробки
даних і зменшення часу роботи програми.
A.М. Lavreniuk, S.I. Lavreniuk, E.V. Nazarenko
AN APPROACH TO A PROGRAM FOR OPTIMIZATION OF THE LARGE VOLUMES
OF SEISMIC DATA PROCESSING ON THE EXAMPLE OF DUPLEX WAVE 3D MIGRATION
An approach to optimizing the processing of large volumes of data on the processors with a large
number of cores is considered. On the example of seismic data processing using 3D migration of
duplex wave program, the removing bottlenecks is shown that hinder the productivity through the
program module management of modes of computing resources and RAM. This approach makes it
possible to improve the quality of data and reduce the operation time of the program.
1. Суперкомпьютер ИК НАН Украины // [Электронный ресурс] – http://icybcluster.org.ua/
2. Интеллектуальная рабочая станция // [Электронный ресурс] – http://inparcom.kiev.ua/
3. Мармалевський Н.Я., Роганов Ю.В., Горняк З.В. та ін. Міграція дуплексних хвиль – новий
засіб формування сейсмічних зображень субвертикальних границь // Зб. наук. праць.
УкрДГРІ, 2007. – № 2. – C. 173 – 190.
4. Marmalyevskyy N., Gornyak Z., Kostyukevych A., Mershchiy V., Roganov. Y. Method, system
and apparatus for interpreting seismic data using duplex waves: Patent US / – 7. – 110. – 323
B2. – 2006.
5. Каленчук-Порханова А.А., Вакал Л.П. Наилучшая Чебышевская аппроксимация для
сжатия численной информации // Компьютерная математика. – 2009. – № 1. – С. 99–107.
6. Назаренко Е.В., Тульчинский В.Г., Тульчинский П.Г. Оптимизация обработки больших
масcивов данных в кластерных системах // Проблеми програмування. – 2010. – № 2–3. –
С. 149 – 154.
7. OpenMP // [Электронный ресурс] – http://openmp.org/.
8. OpenCL – The open standard for parallel programming of heterogeneous systems //
[Электронный ресурс] – http://www.khronos.org/opencl/
9. Лавренюк А.М., Лавренюк С.І. Один підхід до вирішення проблеми універсального
використання мови програмування OpenCl на різних GPU // Проблеми програмування. –
2012. – № 2–3. – С. 77 – 84.
10. Тульчинский В.Г., Чарута А.К. Оценка времени обработки данных в кластерных системах
// Там само. – 2006. – № 2–3. – C. 118 – 123.
Получено 21.10.2013
Îá àâòîðàõ:
Лавренюк Алла Николаевна,
кандидат технических наук,
доцент Физико-технического института НТУ Украины «КПИ»,
Лавренюк Сергей Иванович,
кандидат физико-математических наук, научный сотрудник
Института кибернетики имени В.М. Глушкова НАН Украины,
Назаренко Евгений Владимирович,
младший научный сотрудник
Института кибернетики имени В.М. Глушкова НАН Украины.
|