<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Sˇvedas V.K. Robust enzyme design: Bioinformatic tools for
improved protein stability // Biotechnology journal</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Использование параллельных вычислений для эффективного построения множественных выравниваний структур белков</article-title>
      </title-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <volume>10</volume>
      <issue>3</issue>
      <fpage>344</fpage>
      <lpage>355</lpage>
      <abstract>
        <p>Множественное пространственное выравнивание структур белков является важным инструментом структурной биологии. Анализ структур белков позволяет устанавливать их гомологию, т.е происхождение от общего предка. Бурный рост количества известных белковых структур обуславливает требования к скорости работы алгоритмов пространственного выравнивания. В данной работе предлагается стратегия использования параллельных вычислений для эффективного построения множественного пространственного выравнивания с использовпнием суперкомпьютеров. Разработанный подход основан на хорошо зарекомендовавшем себя последовательном методе пространственного выравнивания белковых структур Matt (Multiple Alingment with Translations and Twists). Реализация Matt с использованием параллельных вычислений позволяет ускорить построение выравниваний без потери качества. В работе приводятся оценки эффективности использования параллельных вычислений и анализируются результаты вычислительных экспериментов, проведенных на суперкомпьютере “Ломоносов”. Ключевые слова: биоинформатика, множественное выравнивание, пространственное выравнивание, Matt.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>позволяет найти структурные изменения, необходимые для конструирования новых белков
с заданными свойствами [1]. Кроме того, сходство третичных структур можно
использовать для предсказания функций малоизученных белков. Благодаря структурному
выравниванию можно определить эволюционно эквивалентные аминокислотные остатки, если
выравниваемые белки имеют общего предка. Помимо этого, если у схожих белков
наблюдаются консервативные области, в которых структура практически не изменяется, то это
может указывать на функциональную либо структурную значимость этой области.
Программы множественного структурного выравнивания обычно строятся на основе
методов попарного пространственного выравнивания. Даже упрощенные версии
алгоритмов пространственного выравнивания являются NP-сложными[2, 3].</p>
      <p>Методы попарного пространственного выравнивания можно разделить на 3 класса:
1. Методы, основанные на выравненных парах фрагментов структур (AFP, aligned fragment
pair )[4, 5]. Эти методы используют короткие фрагменты из обеих белковых структур,
производят над ними некоторые преобразования и собирают их в геометрически
допустимую структуру.
2. Методы, рассматривающие попарные расстояния отдельно внутри каждой структуры
разыскивающие наибольшее множество аминокислотных остатков, имеющих похожие
попарные расстояния в обеих структурах.
3. Все остальные методы, не входящие в первые два пункта.
Классический геометрический подход измерения качества структурного
выравнивания белков включает в себя два параметра: число аминокислотных остатков, которые
используются в выравнивании и среднеквадратичное отклонение расстояний между атомами
(RMSD ), находящимися в сохраняемом ядре1</p>
      <p>Cледует учитывать, что на сегодняшний день не существует универсальной метрики
оценки качества выравнивания и зачастую только экспертная оценка является решающей
в выборе того или иного метода выравнивания. Matt является хорошо зарекомендовавшим
себя методом множественного выравнивания.</p>
      <p>Качество выравнивания не является единственным критерием выбора программы
множественного выравнивания. Бурный рост количества известных белковых структур
обуславливает требования к скорости работы программ множественного выравнивния и
количеству обрабатываемых ими последовательностей.</p>
      <p>Matt (multiple alignment with translation and twists, множественное выравнивание с
поворотами и сдвигами) – алгоритм, основанный на методе выравненных пар участков
структур (AFP)[7]. Отличительной особенностью Matt является ослабление жесткости главной
цепи белка. Это ослабление позволяет структуре белка изгибаться и вращаться для
получения нужного выравнивания.</p>
      <p>Matt показывает лучшие результаты на стандартных проверочных наборах данных
(HOMSTRAD[8], SABmark[9]) по сравнению с известными программами множественного
выравнивания.</p>
      <p>
        В качестве входных данных Matt использует файлы в формате PDB[
        <xref ref-type="bibr" rid="ref1">10</xref>
        ],
описывающие белки, подлежащие выравниванию. Результат множественного выравнивания на
выходе Matt также сохраняется в файл формата PDB.
      </p>
      <p>Блок-схема алгоритма представлена на рисунке 2. На вход программе Matt подается
множество из g структур. Изначально каждая структура образует отдельную группу.</p>
      <p>Итеративная часть программы состоит из g-1 итераций. На каждой итерации две
группы выравненных структур сливаются в одну, образуя новое выравнивание. В итеративной
части Matt допускаются геометрически недопустимые изменения в структуре. После
завершения итеративной части производится исправление глобального выравнивания, в
результате которого получается геометрически допустимая структура.</p>
      <p>В итеративной части последовательной программы Matt можно выделить три основные
стадии.
2.1. Пары фрагментов</p>
      <p>Действия первой стадии аналогичны тому, что выполняется многими методами,
основанными на AFP. Matt рассматривает фрагменты от 5 до 9 смежных аминокислотных
остатков. Парой фрагментов будем считать 2 фрагмента одинаковой длины. Оценка
выравнивания пары фрагментов, по одному из каждой группы, высчитывается на основе
преобразований, производимыми над всеми структурами группы. Для каждой пары фрагментов
высчитывается оценка выравнивания.
2.2. Сборка с поворотами и сдвигами</p>
      <p>Основное нововведение Matt заключается в способе сборки коротких фрагментов в
глобальное выравнивание. Matt использует динамическое программирование для получения на
каждой итерации более длинных групп выравненных фрагментов. Оценка качества
вырав1Сохраняемое ядро (conserved core)[6] – множество аминокислотных остатков, которые консервативны
(т.е. совпадают) по расположению основной цепи во всех рассматриваемых белках.
нивания основывается на сумме оценок выравниваний каждого выравненного фрагмента и
штрафах за геометрические преобразования1 главной цепи одного белка в другую.</p>
      <p>Matt находит пару групп с лучшей оценкой качества и собирает их в новое
множественное выравнивание, объединяя две группы. Если остается ровно одна группа, то алгоритм
переходит в финальную стадию, иначе выполняется стадия корректировки и расширения
(realign and extend phase) и выполняется переход на следующую итерацию.
2.3. Стадия корректировки и расширения</p>
      <p>Стадия корректировки не изменяет взаимное расположение аминокислотных остатков
в множественном выравнивании. На этой стадии алгоритм пытается найти локальные
преобразования, которые бы уменьшили RMSD выравненных фрагментов в только что
объединенной группе.</p>
      <p>В стадии расширения множественное выравнивание расширяется в направлении обоих
концов каждого из фрагмнетов настолько, насколько позволяет порог RMSD. На этой
стадии допустимо наложение до 5 аминокислотных фрагментов в расширенных фрагментах.
2.4. Финальный проход</p>
      <p>
        В финальном проходе производится исправление глобального выравнивания, которое
оптимизирует RMSD и строит геометрически допустимое выравнивание. Для этого
используется метод, предложенный Бартоном и Штернбергом (Barton, Sternberg)[
        <xref ref-type="bibr" rid="ref2">11</xref>
        ].
      </p>
      <p>Сложность последовательного алгоритма Matt оценивается как O(k2n3log(n)), где k –
число последовательностей, используемых в выравнивании, а n – длина самой длинной
последовательности.</p>
      <p>Рис. 2. Схема алгоритма Matt
3. Параллельный алгоритм множественного выравнивания
На основе последовательного алгоритма Matt предложена и реализована стратегия
использования параллельных вычислений для эффективного построения множественных
структурных выравниваний белков с использованием суперкомпьютера.</p>
      <p>1Величины штрафов вычислены эмпирически на основе базы данных Homstrad.
3.1. Возможность распараллеливания</p>
      <p>Function slave_routine()
/* Первый этап
scatter(alignment_pairs, als, to_slaves, from_master )
for i = 0 to als.length do</p>
      <p>aligned_alignments[i] = align_alignments(als[i] )
broadcast(ma, from_master )
scatter(alignment_pairs, als, to_slaves, from_master )
for i = 0 to als.length do</p>
      <p>aligned_alignments[i] = align_alignments(als[i] )
end
gather(als, aligned_alignments, from_slaves, to_master )
*/
*/
Рис. 3. Псевдокод первого и второго этапов параллельной реализации алгоритма Matt
для рабочих процессов</p>
      <p>В программе Matt можно выделить четыре основных этапа: ввод данных,
предварительная обработка всевозможных пар, итеративная часть, финальный проход. При этом
большая часть вычислений производится на этапе предварительной обработки
всевозможных пар, когда рассматриваются всевозможные выравнивания пар начальных структур и в
итеративной части алгоритма, когда алгоритм выбирает лучшие пары для выравнивания.</p>
      <p>Каждую пару структур, формируемую на первом этапе алгоритма, можно получить
независимо от остальных, что создает хорошую возможность для распараллеливания этого
участка программы. В итеративной же части алгоритма на каждой итерации отдельно друг
от друга определяются выравнивания для n структур (n – параметр, зависящий от номера
итерации).</p>
      <p>В Matt за обработку всевозможных пар и итеративную часть алгоритма отвечает
функция Align(). Профилировка оригинальной версии программы показала, что в функции
Align() на этапе предварительной обработки пар и в итеративной части для выравнивания
используется одна и та же функция AlignAlignments(), вычисления которой и занимают
основное время работы программы (см. рис.3).
3.2. Структура и схема распараллеливания</p>
      <p>Для распараллеливания вычислений на основе алгоритма Matt используется метод
коллективного решения.</p>
      <p>Мастер-процесс на первом этапе алгоритма получает всевозможные пары структур,
сериализует1 и равномерно распределяет их между всеми доступными процессами. Далее
1Сериализация – перевод структуры данных языка в непрерывный участок байтов.
Function master_routine(alignments)
/* Первый этап */
alignment_pairs = generate(alignments) /* n(n2- 1) всевозможных пар */
scatter(alignment_pairs, als, to_slaves, from_master )
for i = 0 to als.length do</p>
      <p>aligned_alignments[i] = align_alignments(als[i] )
/* Удалить все, что содержит ma из обоих множеств
remove (ma, alignments)
remove (ma, aligned_alignments)
number_of _slaves = min(number_of_slaves, alignments.length)
for slave_id = 0 number_of _slaves do</p>
      <p>send(terminator, slave_id )
end
broadcast(ma, from_master )
scatter(alignment_pairs, als, to_slaves, from_master )
naa = aligned_alignments.length
for i = 0 to als.length do</p>
      <p>aligned_alignments[naa + i] = align_alignments(ma, als[i] )
end
gather(als, aligned_alignments + naa, from_slaves, to_master )
*/
*/
end
return alignments[0]
Рис. 4. Псевдокод первого и второго этапов параллельной реализации алгоритма Matt
для мастер-процесса</p>
      <p>Рис. 5. Структура временных затрат Matt
происходит выполнение функции AlignAlignments всеми процессами(в том числе, и
мастерПараллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)
agora.guru.ru/pavt
процессом), сбор данных и десериализация1 на мастер-процессе.</p>
      <p>На каждой итерации второго этапа происходит выбор выравнивания с лучшей оценкой
среди уже выравненных структур, сериализация и равномерное распределение n структур
и лучшего выравнивания между всеми доступными процессами. Далее происходит
выполнение функции AlignAlignments всеми процессами (в том числе и мастер-процессом), сбор
данных и их десериализация на мастер-процессе.</p>
      <p>В статье представлен псевдокод первого и второго этапов параллельного алгоритма (см.
рис. 3, 4).
3.3. Используемые технологии и инструменты</p>
      <p>
        Распараллеливание вычислений программы Matt выполнено с использованием
технологии MPI[
        <xref ref-type="bibr" rid="ref3">12</xref>
        ]. Message Passing Interface (MPI, интерфейс передачи сообщений) –
программный интерфейс (API) для передачи информации, который позволяет обмениваться
сообщениями между параллельными процессами, выполняющими одну задачу.
      </p>
      <p>
        Для анализ временных затрат последовательного кода Matt использовался
профилировщик gperftools[
        <xref ref-type="bibr" rid="ref4">13</xref>
        ].
      </p>
      <p>Сравнение результатов работы последовательного варианта и параллельной реализации
программы Matt проводилась с использованием стандартной Unix-утилиты dif.
4. Оценка эффективности</p>
      <p>Исследование разработанного алгоритма проводится согласно классическим
определениям ускорения и эффективности.</p>
      <p>Ускорением Sp параллельного алгоритма называют отношение времени T1 выполнения
последовательной программы ко времени Tp выполнения параллельной программы на p
процессорах</p>
      <p>Пусть n – число цепочек, время выравнивания одной пары постоянно и равно t0, \tau s –
время работы программы в нераспараллеливаемой части, накладные расходы на пересылку
одной пары постоянны и равны \tau m.</p>
      <p>Тогда время работы последовательной версии Matt будет равно
n(n - 1)
2
s\um
n- 1
k=1
T1 = \tau s +
t0 +
kt0 = \tau s + t0(
n(n - 1)
2
+
n(n - 1)
2</p>
      <p>)
Sp =</p>
      <p>T1</p>
      <p>Tp
Tp = \tau s +
n(n - 1) ( t0 + \tau m) +</p>
      <p>s\um
2
n- 1
k=p</p>
      <p>p
k( t0 + \tau m) +
s\um
p- 1
k=1</p>
      <p>k\tau m + (p - 1)t0 =
= \tau s + t0 n(n - 1) + t0 (p - 1) + \tau mn(n - 1)</p>
      <p>2
1Десериализация – обратный процесс к сериализации, т.е восстановление структуры данных языка из
непрерывной последовательности байтов.</p>
      <p>Таким образом,</p>
      <p>T1 = \tau s + t0n(n - 1)
Время работы параллельного алгоритма на p процессорах
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Подставим (2) и (3) в (1)
Эффективностью параллельного алгоритма называется величина</p>
      <p>Sp = T1 =</p>
      <p>Tp</p>
      <p>t\au s + t0n(n - 1)
t\au s + tp0 n(n - 1) + t20 (p - 1) + \tau mn(n - 1)</p>
      <p>Ep =</p>
      <p>Sp
p
В (4) положим, что \tau s = 0 и положим, что \tau m = \alpht 0(\alph &gt; 0)1, тогда получим
t0n(n - 1)
Sp = tp0 n(n - 1) + t20 (p - 1) + \alpht 0n(n - 1)
=
=</p>
      <p>2pn(n - 1)
2n(n - 1) + p(p - 1) + 2p\alphn (n - 1)
=</p>
      <p>2pn(n - 1)
2n(n - 1)(1 + \alphp ) + p(p - 1)
Тогда</p>
      <p>Ep =</p>
      <p>2n(n - 1)
2n(n - 1)(1 + \alphp ) + p(p - 1)
=</p>
      <p>1
1 + \alphp + 2pn((pn-- 11))
Формулу (7) можно использовать для оценки масштабируемости параллельного
алгоритма, а также для подбора требуемого количества вычислительных узлов для решения
задачи с заданной эффективностью при известном объемом входных данных.
5. Вычислительные эксперименты</p>
      <p>
        Исследование разработанного параллельного алгоритма проводилось на
суперкомпьютере “Ломоносов”, входящем в состав суперкомпьютерного комплекса МГУ имени М.В.
Ломоносова[
        <xref ref-type="bibr" rid="ref5">14</xref>
        ]. Вычислительный эксперимент проводился на вычислительных узлах,
построенных на базе процессоров Intel\bigcr R Xeon 5570 с 12Гб оперативной памяти.
      </p>
      <p>Для проверки корректности работы программы сравнивались PDB файлы, полученные
на выходе оригинальной последовательной программы и параллельной программы.</p>
      <p>В качестве входных данных брались белковые структуры, каждая из которых состояла
примерно из 3000 атомов. Всего было использовано 346 структур, из них было составлено 3
множества структур, по 192 стрктуры в каждом. На каждом из трех множеств программа
запускалась 5 раз для заданного числа процессоров. Результаты 15 запусков усреднялись.</p>
      <p>Как отмечалось ранее, коэффициент \alph в формуле (7) зависит от длины
последовательности и параметров конкретной вычислительной системы. Для суперкомпьютера
“Ломоносов” найдена \alph = 0.0003 при длине последовательности около 3000.</p>
      <p>Как видно из графика (см. рис. 6), характеры поведения теоретической и
экспериментальной кривых совпадают, что подтверждает справедливость предложенной оценки
эффективности.
6. Заключение</p>
      <p>В статье предложен и реализован параллельный алгоритм множественного
выравнивания белков, основанный на программе Matt. Получаемые белковые структруры на выходе
данной реализации в точности совпадают со структурами, полученными оригинальным
последовательным алгоритмом. При этом параллельная реализация позволяет существенно
снизить время, затрачиваемое на нахождение множественного выравнивания.</p>
      <p>1Коэффициент \alph зависит от длины последовательности и параметров конкретной вычислительной
системы (скорости передачи данных и вычислений).
0.95
0.90
Приведена теоретическая оценка эффективности разработанного параллельного
алгоритма. Предложенная оценка подтверждена экспериментальными результатами. Оценка
эффективности позволяет определить оптимальное количество вычислительных узлов для
решения задачи с заданным объемом входных данных.</p>
      <p>Дальнейшее усовершенствование параллельного алгоритма будет направлено на снятие
ограничений существующей реализации на количество обрабатываемых структур. В
настоящее время количество обрабатываемых структур определяется объемом оперативной
памяти вычислительного узла, на котором выполняется мастер-процесс. Проведенный
эксперимент с использованием вычислительных узлов суперкомпьютера “Ломоносов” с большой
оперативной памятью показывает возможность обработки значительного числа (тысячи)
структур за приемлемое время.</p>
      <p>Работа выполнена при поддержке гранта РФФИ № 14-07-0437.
Литература
2. Goldman D, Istrail S, Papadimitriou CH (1999) Algorithmic aspects of protein structure
similarity. Proceedings of the 40th Annual Symposium on Foundations of Computer
Science. Los Alamitos (California): IEEE Computer Society. P. 512–522.
3. Wang L, Jiang T (1994) On the complexity of multiple sequence alignment // Journal of
computational biology 1, No. 4 (1994), P. 337–348.
4. Shindyalov I, Bourne P (1998) Protein structure alignment by incremental combinatorial
extension (CE) of the optimal path // Protein engineering 11, No. 9 (1998), P. 739–747.
5. Ye Y, Godzik A (2003) Flexible structure alignment by chaining aligned fragment pairs
allowing twists // Bioinformatics 19, No. suppl 2 (2003), P. ii246–ii255.
6. Eidhammer I, Jonassen I, Taylor WR (2000) Structure comparison and structure patterns
// Journal of Computational Biology 7, No. 5 (2000), P. 685–716.
7. M. Menke, B. Berger, L. Cowen, "Matt: Local Flexibility Aids Protein Multiple Structure</p>
      <p>Alignment"// PLoS Comput Biol 4, No. 1 (2008), P. e10.
8. Mizuguchi K, Deane C, Blundell TL, Overington J (1998) HOMSTRAD: A database of
protein structure alignments for homologous families // Protein science: a publication of
the Protein Society 7, No. 11 (1998), P. 2469–2471.
9. VanWalle I, Lasters I, Wyns L (2005) SABmark—A benchmark for sequence alignment that
covers the entire known fold space // Bioinformatics 21, No. 7 (2005), P. 1267–1268.
13. gperftools. URL: https://github.com/gperftools/gperftools (дата обращения:
25.12.2015)
Use of parallel computing in efective protein multiple
structure alignment
Vl.V. Voevodin1, M.V. Shegay1, N.N. Popova1, D.A. Suplatov1, V.K. Sˇvedas1</p>
      <p>Lomonosov Moscow State University1
Protein multiple structure alignment is a valuable tool of structural biology. Protein
structure analysis can be used to detect homology between proteins; i.e, the existence
of shared ancestry. Large number of known protein structures sets up the requirements
for the algorithms of structural alignment.</p>
      <p>A strategy of parallel computations for efective construction of multiple structure
alignment with use of supercomputers is introduced in this paper. The suggested
approach is based on Matt (Multiple Alignment with Translations and Twists), a
well-known method of protein multiple alignment.</p>
      <p>The parallelized Matt implementation significantly speeds up construction of alignment
without quality loss. This paper provides estimates for the eficiency of parallel computations
and analisys of computational experiments carried out on Lomonosov supercomputer.
1. Suplatov D.A., Voevodin V.V., Sˇvedas V.K. Robust enzyme design: Bioinformatic tools for
improved protein stability // Biotechnology journal, Wiley - VCH Verlag GmbH &amp;
CO.KGaA (Germany), Vol. 10, No 3, P. 344–355 DOI
2. Goldman D, Istrail S, Papadimitriou CH (1999) Algorithmic aspects of protein structure
similarity. Proceedings of the 40th Annual Symposium on Foundations of Computer
Science. Los Alamitos (California): IEEE Computer Society. P. 512–522.
3. Wang L, Jiang T (1994) On the complexity of multiple sequence alignment // Journal of
computational biology 1, No. 4 (1994), P. 337–348.
4. Shindyalov I, Bourne P (1998) Protein structure alignment by incremental combinatorial
extension (CE) of the optimal path // Protein engineering 11, No. 9 (1998), P. 739–747.
5. Ye Y, Godzik A (2003) Flexible structure alignment by chaining aligned fragment pairs
allowing twists // Bioinformatics 19, No. suppl 2 (2003), P. ii246–ii255.
6. Eidhammer I, Jonassen I, Taylor WR (2000) Structure comparison and structure patterns
// Journal of Computational Biology 7, No. 5 (2000), P. 685–716.
7. M. Menke, B. Berger, L. Cowen, "Matt: Local Flexibility Aids Protein Multiple Structure</p>
      <p>Alignment"// PLoS Comput Biol 4, No. 1 (2008), P. e10.
8. Mizuguchi K, Deane C, Blundell TL, Overington J (1998) HOMSTRAD: A database of
protein structure alignments for homologous families // Protein science: a publication of
the Protein Society 7, No. 11 (1998), P. 2469–2471.
9. VanWalle I, Lasters I, Wyns L (2005) SABmark—A benchmark for sequence alignment that
covers the entire known fold space // Bioinformatics 21, No. 7 (2005), P. 1267–1268.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          10.
          <string-name>
            <given-names>PDB</given-names>
            <surname>File</surname>
          </string-name>
          <article-title>Format</article-title>
          . URL: http://www.rcsb.org/pdb/static.do?p=file_formats/pdb/index.
          <source>html (accessed: 25.12</source>
          .
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          11.
          <string-name>
            <surname>Barton</surname>
            <given-names>G</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sternberg</surname>
            <given-names>M</given-names>
          </string-name>
          (
          <year>1987</year>
          )
          <article-title>A strategy for the rapid multiple alignment of protein sequences: Confidence levels from tertiary structure comparisons //</article-title>
          <source>Journal of molecular biology 198</source>
          , No.
          <volume>2</volume>
          (
          <year>1987</year>
          ):
          <fpage>327</fpage>
          -
          <lpage>337</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          12. Message Passing Interface (MPI)
          <article-title>Forum Home Page</article-title>
          . URL: http://www.mpi-forum.
          <source>org/ (accessed: 25.12</source>
          .
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          13. gperftools. URL: https://github.com/gperftools/gperftools (accessed:
          <fpage>25</fpage>
          .
          <fpage>12</fpage>
          .
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          14.
          <string-name>
            <given-names>Voevodin</given-names>
            <surname>Vl</surname>
          </string-name>
          .V.,
          <string-name>
            <surname>Zhumatiy</surname>
            <given-names>S.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sobolev</surname>
            <given-names>S.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Antonov</surname>
            <given-names>A.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bryzgalov</surname>
            <given-names>P.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nikitenko</surname>
            <given-names>D.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stefanov</surname>
            <given-names>K.S.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Voevodin</given-names>
            <surname>Vad</surname>
          </string-name>
          .V.
          <article-title>Praktika superkomp'yutera "Lomonosov"</article-title>
          [Practices of Lomonosv Supercomputer] // Otkrytye sistemy. - Moskva:
          <article-title>Izdatel'skiy dom "Otkrytye sistemy"[Open systems</article-title>
          . - Moscow: Open Systems Publications ],
          <source>No. 7</source>
          ,
          <year>2012</year>
          . P.
          <volume>36</volume>
          -
          <fpage>39</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>