УДК544.18: 544.43: 519.688
Д. Л. Егоров, А. Г. Шамов, Г. М. Храпковский ОБОЛОЧКА P-AUTOEXTREMUM ДЛЯ АВТОМАТИЗАЦИИ ИТЕРАЦИОННОГО АЛГОРИТМА ИССЛЕДОВАНИЯ ППЭ С ПОМОЩЬЮ ПРОГРАММЫ PRIRODA
Ключевые слова: квантово-химический расчет, переходное состояние, Priroda.
В работе описывается оболочка P-AutoExtremum для управления процессом параллельных вычислений, осуществляемых при помощи программы Priroda на кластерах, работающих в операционной системе Linux. Данная оболочка, взаимодействуя с программой Priroda, автоматически выполняет полный цикл решения задачи исследования одной стадии механизма химической реакции, включая поиск переходного состояния, спуски по пути реакции к реагентам и продуктам, и поиск точных минимумов, которые им соответствуют. В результате значительно экономится время исследователя, который избавляется от сложной и рутинной ручной работы.
Keywords: quantum-chemical calculation, transition state, Priroda.
In the paper describes the shell P-AutoExtremum to manage the process of parallel calculations performed using the program Priroda on clusters working in the operating system Linux. This shell interacting with the program Priroda, automatically performs the complete cycle of solving the problems of one stage of the mechanism of chemical reactions, including the search of the transition state, descents along the way of reaction to the reactants and products, and find the exact lows to which they correspond. As a result, it saves time researcher who gets rid of the complex and routine manual work.
Решение современных естественнонаучных задач сегодня немыслимо без применения вычислительной техники и сложного программного обеспечения, реализующего соответствующие методы расчетов. Химия не является здесь исключением, и для изучения сложных многоатомных молекул и механизмов их реакций применяются квантово-химические методы, реализованные в рамках пакетов прикладных программ. Авторы данной работы имеют значительный опыт в применении этих методов при решении различных задачах, связанных с изучением механизмов химических реакций [1-12].
Одна из главных проблем, с которой сталкивается исследователь при работе с квантово-химическими программами, связана с обработкой полученных результатов и проведением дополнительных вычислений и преобразований. Это становится необходимым, если не все конечные цели расчета были достигнуты непосредственно используемой программой в ходе одного этапа вычислений.
Рассмотрим работу с пакетом программ Priroda, разработанным Д.Н. Лайковым [13, 14]. Его высокая вычислительная эффективность по сравнению с другими известными квантово-химическими программами, в том числе и с использующими графические процессоры NVidia, показана в работах [15, 16]. Данный квантово-химический пакет работает с методом PBE намного быстрее, чем другие программы, реализующие этот DFT-метод. Однако в данной программе не полностью автоматизирован процесс поиска экстремумов на поверхности потенциальной энергии - минимумов и переходных состояний. После расчета матрицы Гессе и одного цикла поиска экстремума программу необходимо запускать вновь и при этом вручную перезадавать исходные данные. Опыт использования программы Priroda показывает, что если начальное приближение при поиске переходного состояния задано неудачно, то с большой долей вероятности переходное состояние
либо не будет найдено, либо не будет соответствовать решаемой задаче. Это происходит потому, что по мере удаления от исходной точки матрица Гессе устаревает, а ее обновления по приближенным формулам накапливают
значительные ошибки. Таким образом, опыт показывает, что Гессиан необходимо периодически перевычислять.
В данной работе описана созданная нами оболочка P-AutoExtremum, которую можно использовать для управления процессом параллельных вычислений, осуществляемых при помощи программы Priroda на кластерах, работающих в операционной системе Linux; данные вычисления включают в себя исследование поверхности потенциальной энергии заданной молекулы.
Рассмотрим алгоритм поиска экстремума с использованием программы Priroda (рис. 1). В рамках задачи исследователя создается входной in-файл для вычисления Гессиана, в котором описываются все необходимые параметры. Этот файл подается на расчет. После завершения расчета out-файл подвергается анализу. В случае успешного завершения вычислений из него извлекается блок $Energy и вставляется в конец нового in-файла, созданного для расчета этапа оптимизации (если итерация не нулевая, то происходит замена предыдущего блока $Energy на новый). Далее производится расчет полученного in-файла. Если он завершается успешно, из его out-файла извлекаются самые последние по своему расположению блок $Energy и блок $molecule, содержащий геометрические параметры. Эти блоки используются для формирования in-файла расчета Гессиана для следующей итерации. Описанные действия на следующей итерации повторяются.
Если достигается сходимость оптимизации, Priroda помещает в out-файл сообщение «OPTIMIZATION CONVERGED in N steps!» (N
означает количество шагов), что служит ссигналом для дальнейших действий алгоритма. Параметры точности расчета в командах «convergence» и «accuracy» в этом
случае повышаются (это происходит однократно), и итерационный процесс продолжается.
Рис. 1 - Диаграмма деятельности иМЬ [17], иллюстрирующая итерационный алгоритм поиска экстремума
в Priroda
Если после этого на какой-то итерации значение квадрата нормы градиента G(max) примет достаточно малое с точки зрения исследователя значение, процесс считается успешно завершенным. Если происходило решение задачи по оптимизации структуры химического соединения, то вычисления на этом этапе завершаются. Если же ставилась задача поиска переходного состояния, исследователю необходимо осуществить спуски по координате реакции («forward» и «reverse») для доказательства принадлежности
найденного переходного состояния исследуемой реакции. В этом случае из последнего полученного out-файла извлекается блок $Energy, содержащий Гессиан, и записывается в ш-файлы, созданные для каждого из направлений спуска. Эти ш-файлы отправляются на расчет в программу Priroda.
Если расчеты спусков выполнены успешно, производится уточнение их результатов. Такое уточнение является необходимым, т. к. структура, полученная в результате спуска, вообще говоря, не
соответствует минимуму потенциальной энергии, и ее принадлежность продукту (реагентам) реакции необходимо подтвердить. Для решения данной задачи для каждого из двух спусков создаются in-файлы. В них используются блоки $molecule из соответствующих out-файлов, полученные при спуске по координате реакции. Далее к полученным in-файлам применяется итерационный алгоритм поиска минимума, описанный выше. При этом необходимо контролировать правильность проведения спусков на первой итерации процесса уточнения их результатов: если на этапе вычисления Гессиана обнаруживаются отрицательные частоты, процесс вычислений нужно остановить.
Вполне очевидно, что ручное выполнение представленного выше алгоритма является весьма рутинной и требующей большого количества времени и внимания работой. Исследователю придется отследить завершение вычислений в Priroda для текущего этапа, после чего найти необходимую информацию в имеющемся out-файле, провести ее анализ и создать на ее основе новый файл задания, предназначенный для следующего этапа расчета. Если проводить несколько расчетов одновременно, работа еще больше усложняется и запутывается, особенно если учесть, что время вычислений для каждой задачи индивидуально. Следует также отметить, что итерационный процесс порождает большое количество файлов, что создает проблему их упорядочивания.
В соответствии с вышесказанным, становится очевидной актуальность задачи автоматизации описанного выше итерационного процесса посредством реализации его алгоритма в виде компьютерной программы. Подобная программа была создана нами и имеет название P-AutoExtremum. Данное приложение получило реализацию как для ОС Windows, так и для OC Linux, что позволяет использовать описанный выше алгоритм с Priroda для параллельных вычислений на многопроцессорных компьютерах и кластерах. Оно является консольным, его запуск осуществляется с помощью командной строки. При этом программе необходимо передать параметр, содержащий имя (без расширения) управляющего текстового файла, содержащего настройки расчета. Эти настройки описываются с помощью простого языка команд. Каждая команда располагается на отдельной строке, ее значения записывается через пробел.
Управляющий файл устанавливает следующие настройки итерационного процесса расчета:
- расположение исполняемого файла Priroda;
- расположение входного in-файла расчета;
- способ изменения параметра «steps» в in-файле в зависимости номера итерации (задается начальное значение, инкремент и предельное значение);
- максимально допустимое количество итераций;
- предельная точность расчета;
- параметры повышения точности после первого достижения сходимости оптимизации;
- параметры отслеживания отсутствия явной динамики снижения G(max) на протяжении нескольких итераций. Под отсутствием явной динамики снижения понимается сохраняющийся на
протяжении нескольких итераций низкий уровень изменения G(max). При этом пороговое процентное значение изменения G(max) и максимальное количество итераций, в течение которых допустимо отсутствие динамики снижения, для этапов итерационного процесса до достижения сходимости оптимизации и после нее задаются раздельно;
- выбор режима расчета спусков и последующего уточнения их результатов: вычисления для путей «forward» и «reverse» могут проводиться последовательно, либо параллельно.
Если все параметры заданы корректно, программа инициирует запуск расчета в Priroda в соответствии с заданием, содержащемся во входном in-файле, на который указывает управляющий файл. Когда расчет завершится, P-AutoExtremum приступит к анализу его результатов в out-файле. В основе данного анализа лежит разбор текста out-файла по ключевым словам. Например, если проводился расчет Гессиана, программа по ключевым словам осуществляет поиск в нем блока $Energy, формирует in-файл для расчета этапа оптимизации и включает этот блок туда. Если проводился расчет оптимизации, программа извлекает из out-файла блоки $Energy и $molecule и формирует с их участием in-файл задания для расчета Гессиана на следующей итерации.
Деятельность P-AutoExtremum сопровождается логированием информации о работе итерационного процесса в текстовый файл с именем, переданным программе в качестве параметра, и добавлением к нему суффикса «_LOG» (в версии программы для ОС Windows лог работы программы одновременно выводится на экран интерпретатора командной строки). Таким образом, пользователю представляется подробный отчет о действиях программы.
Процесс вычислений считается успешно завершенным, если квадрат нормы градиента принял значение, меньшее заявленной пользователем предельной точности, и при этом была достигнута сходимость оптимизации. Аварийное завершение процесса может произойти в нескольких случаях:
- ошибочное завершение расчета в Priroda;
- исчерпание заданного максимального количества итераций;
- отсутствие отрицательных частот на этапе поиска переходного состояния;
- наличие отрицательных частот при расчете Гессиана на первой итерации оптимизации результатов спуска;
- отсутствие динамики снижения G(max) на протяжении заданного пользователем количества итераций.
Особенности работы программы дают возможности для удобной организации параллельного выполнения нескольких расчетов: целесообразно для каждой задачи создавать отдельную папку, индивидуальный управляющий файл с настройками итерационного процесса и индивидуальный пакетный файл с командной строкой для запуска P-AutoExtremum. Имя лог-
файла процесса также будет индивидуальным для каждой задачи. Таким образом, анализ результатов и их упорядочивание существенно упрощается, несмотря на большое количество промежуточных файлов.
Таким образом, программа P-AutoExtremum представляет собой эффективную оболочку для программы Priroda, которая автоматически выполняет полный цикл решения задачи исследования одной стадии механизма химической реакции, включая поиск переходного состояния, спуски по пути реакции к реагентам и продуктам, и поиск точных минимумов, которые им соответствуют.
Программа P-AutoExtremum была применена для исследования реакций, связанных с изучением механизма акватермолиза органических
серосодержещих соединений. Сравнение с результатами, полученными ранее с помощью ручного применения описанного выше алгоритма, показало надежность воспроизведения программой
рассмотренного итерационного процесса и высокую эффективность в экономии времени пользователя, что позволило применить программу для получения новых результатов. Не вызывает сомнения, что она может быть использована для изучения механизма других сложных многостадийных химических реакций. Полученные результаты предварительного
исследования в дальнейшем уточняются с использованием наиболее эффективных
неэмпирических методов, имеющихся в пакете квантово-химических программ GAUSSIAN09 [18].
Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 15-0704840 а.
Литература
1. G.M. Khrapkovskii, A.G. Shamov, R.V. Tsyshevsky, D.V. Chachkov, D.L. Egorov, I.V. Aristov, Computational and Theoretical Chemistry, 985, 80-89 (2012).
2. Д.Д. Шарипов, Д.Л. Егоров, Д.В. Чачков, А.Г. Шамов, Г.М. Храпковский, ЖОХ, 81, 11, 1822-1836 (2011).
3. G.M. Khrapkovskii, D.D. Sharipov, A.G. Shamov, D.L. Egorov, D.V. Chachkov, B. Nguyen Van, R.V. Tsyshevsky, Computational and Theoretical Chemistry, 1017, 7-13 (2013).
4. G.M. Khrapkovskii, D.D. Sharipov, A.G. Shamov, D.L. Egorov, D.V. Chachkov, R.V. Tsyshevsky, Computational and Theoretical Chemistry, 1011, 37-43 (2013).
5. R.V. Tsyshevsky, G.G. Garifzianova, D.V. Chachkov, A.G. Shamov, G.M. Khrapkovskii, Journal of Energetic Materials, 27, 4, 263-295 (2009).
6. Д.Л. Егоров, Г.М. Храпковский, А.Г. Шамов, Вестник Казанского технологического университета, 13, 10, 18-21 (2010).
7. Г.М. Храпковский, Д.Л. Егоров, А.Г. Шамов, Вестник Казанского технологического университета, 16, 21, 20-23 (2013).
8. Г.М. Храпковский, Д.Л. Егоров, А.Г. Шамов, Вестник Казанского технологического университета, 16, 22, 13-16 (2013).
9. Д.Д. Шарипов, Д.Л. Егоров, Е.В. Николаева, А.Г. Шамов, Г.М. Храпковский, Вестник Казанского технологического университета, 13, 9, 34-39 (2010).
10. V.V. Turovtsev, G.M. Khrapkovskii, A.G. Shamov, Y.D. Orlov, R.V. Tsyshevsky, Computational and Theoretical Chemistry, 1039, 55-61 (2014).
11. Г. М. Храпковский, Д. Л. Егоров, Е. В. Николаева, Д. В. Чачков, А.Г. Шамов, ЖОХ, 85, 8, 1241-1248 (2015).
12. B. Nguyen Van, E.V. Nikolaeva, A.G. Shamov, G.M. Khrapkovskii, R.V. Tsyshevsky, International Journal of Mass Spectrometry, 392, 7-15 (2015).
13. Д.Н. Лайков. Развитие экономного подхода к расчету молекул методом функционала плотности и его применение к решению сложных химических задач. Диссертация на соискание ст. к.ф.-м.н., МГУ, 2000.
14. Д.Н. Лайков, Ю.А. Устынюк, Известия Академии Наук. Серия химическая, 3, 804-810 (2005).
15. Т.Н. Гришаева, А.Н. Маслий, Вестник Казанского технологического университета, 12, 7-11 (2012).
16. А.Н. Маслий, Э.И. Мадиров, Вестник Казанского технологического университета, 23, 12-18 (2013).
17. Г. Буч, Д. Рамбо, И. Якобсон, Язык UML. Руководство пользователя. Москва, ДМК Пресс, 2006, 496 с.
18. Gaussian 09, Revision D.01, M. J. Frisch, G. W. Trucks, H. B. Schlegel, G. E. Scuseria, M. A. Robb, J. R. Cheeseman, G. Scalmani, V. Barone, B. Mennucci, G. A. Petersson, H. Nakatsuji, M. Caricato, X. Li, H. P. Hratchian, A. F. Izmaylov, J. Bloino, G. Zheng, J. L. Sonnenberg, M. Hada, M. Ehara, K. Toyota, R. Fukuda, J. Hasegawa, M. Ishida, T. Nakajima, Y. Honda, O. Kitao, H. Nakai, T. Vreven, J. A. Montgomery, Jr., J. E. Peralta, F. Ogliaro, M. Bearpark, J. J. Heyd, E. Brothers, K. N. Kudin, V. N. Staroverov, R. Kobayashi, J. Normand, K. Raghavachari, A. Rendell, J. C. Burant, S. S. Iyengar, J. Tomasi, M. Cossi, N. Rega, J. M. Millam, M. Klene, J. E. Knox, J. B. Cross, V. Bakken, C. Adamo, J. Jaramillo, R. Gomperts, R. E. Stratmann, O. Yazyev, A. J. Austin, R. Cammi, C. Pomelli, J. W. Ochterski, R. L. Martin, K. Morokuma, V. G. Zakrzewski, G. A. Voth, P. Salvador, J. J. Dannenberg, S. Dapprich, A. D. Daniels, O. Farkas, J. B. Foresman, J. V. Ortiz, J. Cioslowski, and D. J. Fox, Gaussian, Inc., Wallingford CT, 2009.
© Д. Л. Егоров - к.ф.-м.н., н.с. НИОКХ КНИТУ, [email protected]; А. Г. Шамов - нач. отделения информатизации КНИТУ, [email protected]; Г. М. Храпковский - д.х.н., проф. каф. катализа КНИТУ, [email protected].
© D. L. Egorov - PhD in physics-mathematical sciences, researcher, research department of computational chemistry KNRTU, [email protected]; A. G. Shamov - head of department of informatization KNRTU, [email protected]; G. M. Khrapkovskii - dr.Sc. in chemistry, professor, department of catalysis KNRTU, [email protected].