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

Применение графических ускорителей для повышения производительности вычислений при численном моделировании функционирования сложных технических систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
424
81
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ / MATHEMATICAL MODELING / РАКЕТНЫЙ ДВИГАТЕЛЬ ТВЕРДОГО ТОПЛИВА / SOLID ROCKET MOTOR / ПРОГРАММИРОВАНИЕ / PROGRAMMING / ВЫЧИСЛИТЕЛЬНАЯ ПРОИЗВОДИТЕЛЬНОСТЬ РАБОЧЕЙ СТАНЦИИ / WORKSTATION COMPUTING PERFORMANCE / ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР / ГРАФИЧЕСКИЙ УСКОРИТЕЛЬ / GRAPHICS ACCELERATOR (GPU) / CENTRAL PROCESSOR (CPU)

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Егоров М. Ю., Егоров С. М., Егоров Д. М.

На примере расчета логически сложной прикладной задачи численного моделирования переходных внутрикамерных процессов при выходе на режим работы ракетного двигателя твердого топлива приводится сравнение вычислительной производительности рабочей станции, оснащенной мощным многоядерным центральным процессором (CPU INTEL Core i7 4790K LGA 1150), без применения и с применением графического ускорителя (GPU PCI-E Sapphire AMD Radeon R9 290X TRI-X OC 4096 Mb GDDR5). Используется операционная система Linux Open SUSE 13.1 x86-64. Программный комплекс составлен в среде программирования Kdevelop 4.1 (компилятор gcc 4.8.2) в двух вариантах: только для CPU на языке программирования C/C++; для CPU и GPU на языке программирования C/C++ + OpenCL. Производительность вычислений при дополнительном использовании графического ускорителя (CPU + GPU, расчет на языке программирования C/C++ + OpenCL) увеличивается более чем в десять раз.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Егоров М. Ю., Егоров С. М., Егоров Д. М.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

USING GRAPHICS ACCELERATOR TO IMPROVE COMPUTING PERFORMANCE IN THE NUMERICAL MODELING OF COMPLEX TECHNICAL SYSTEMS FUNCTIONING

The complex logic technical problem which is the numerical simulation of transient chamber processes of operation mode of solid rocket motor is considered as a comparison of computing performance of workstation, equipped with a powerful multi-core central processing unit (CPU INTEL Core i7 4790K LGA 1150), without and with use of the graphic accelerator (GPU PCI-E Sapphire AMD Radeon R9 290X TRI-X OC 4096 Mb GDDR5). Used operating system is Linux Open SUSE 13.1 x86-64. Software package is made in the programming environment Kdevelop 4.1 (compiler gcc 4.8.2) in two versions: only for the CPU in the programming language C/C++; for the CPU and GPU in the programming language C/C++ + OpenCL. As a result of the research it was determined that when additional using the graphics accelerator (CPU + GPU, programming language C/C++ + OpenCL) computing performance increases more than 10 times compared to the basic computations.

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

DOI: 10.15593/2224-9982/2015.40.05 УДК 519.6:629.7:681.31

М.Ю. Егоров1, С.М. Егоров2, Д.М. Егоров2

Пермский национальный исследовательский политехнический университет,

Пермь, Россия

ОАО «Научно-исследовательский институт полимерных материалов»,

Пермь, Россия

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

ВЫЧИСЛЕНИЙ ПРИ ЧИСЛЕННОМ МОДЕЛИРОВАНИИ ФУНКЦИОНИРОВАНИЯ СЛОЖНЫХ ТЕХНИЧЕСКИХ СИСТЕМ

На примере расчета логически сложной прикладной задачи - численного моделирования переходных внутрикамерных процессов при выходе на режим работы ракетного двигателя твердого топлива - приводится сравнение вычислительной производительности рабочей станции, оснащенной мощным многоядерным центральным процессором (CPU INTEL Core i7 4790K LGA 1150), без применения и с применением графического ускорителя (GPU PCI-E Sapphire AMD Radeon R9 290X TRI-X OC 4096 Mb GDDR5). Используется операционная система Linux Open SUSE 13.1 x86-64. Программный комплекс составлен в среде программирования Kdevelop 4.1 (компилятор gcc 4.8.2) в двух вариантах: только для CPU на языке программирования C/C++; для CPU и GPU на языке программирования C/C++ + OpenCL.

Производительность вычислений при дополнительном использовании графического ускорителя (CPU + GPU, расчет на языке программирования C/C++ + OpenCL) увеличивается более чем в десять раз.

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

M.Yu. Egorov1, S.M. Egorov2, D.M. Egorov2

Perm National Research Polytechnic University,

Perm, Russian Federation OJSC "Research Institute of Polymer Materials", Perm, Russian Federation

USING GRAPHICS ACCELERATOR TO IMPROVE COMPUTING PERFORMANCE IN THE NUMERICAL MODELING OF COMPLEX TECHNICAL SYSTEMS FUNCTIONING

The complex logic technical problem which is the numerical simulation of transient chamber processes of operation mode of solid rocket motor is considered as a comparison of computing performance of workstation, equipped with a powerful multi-core central processing unit (CPU INTEL Core i7 4790K LGA 1150), without and with use of the graphic accelerator (GPU PCI-E Sapphire AMD Radeon R9 290X TRI-X OC 4096 Mb GDDR5). Used operating system is Linux Open SUSE 13.1 x86-64. Software package is made in the programming environment Kdevelop 4.1 (compiler gcc 4.8.2) in two versions: only for the CPU in the programming language C/C++; for the CPU and GPU in the programming language C/C++ + OpenCL.

As a result of the research it was determined that when additional using the graphics accelerator (CPU + GPU, programming language C/C++ + OpenCL) computing performance increases more than 10 times compared to the basic computations.

Keywords: mathematical modeling, solid rocket motor, programming, workstation computing performance, central processor (CPU), graphics accelerator (GPU).

При численном моделировании процесса функционирования сложных технических систем, например таких, как ракетный двигатель твердого топлива (РДТТ), приходится иметь дело с решением весьма сложных комплексно-сопряженных математических моделей (систем дифференциальных уравнений в частных производных или их аналогов - систем интегральных уравнений, дополненных замыкающими соотношениями) при помощи современных численных методов - методов постановки вычислительного эксперимента, требующих привлечения значительных вычислительных мощностей [1-8]. Для проведения таких расчетов требуются одновременно и значительные объемы оперативной памяти, и высокое быстродействие вычислительной системы. Причем требование повышения производительности вычислительной системы выдвигается на первый план. Даже при использовании высокопроизводительных вычислительных систем, таких как рабочие станции, реальное время расчета может исчисляться неделями

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

Современная вычислительная техника интенсивно развивается. Создаются новые высокопроизводительные вычислительные системы различной архитектуры, в которых в качестве основных исполнительных устройств применяются многоядерные центральные процессоры (CPU), графические процессоры (видеокарты - графические ускорители -GPU) и комбинированные процессоры (комбинация центрального и графического процессора APU) [9]. Причем вычислительная производительность GPU существенно выше вычислительной производительности CPU (во всяком случае на специальных, так называемых синтетических тестах). Правда, использование графического процессора требует применения специальных методов программирования, реализованных, например, в стандарте OpenCL [10].

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

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

В качестве прикладной задачи рассмотрим численное моделирование переходных внутрикамерных процессов при выходе на режим работы РДТТ (подробная физико-математическая постановка и реализация данной задачи представлена в работе [4]).

Здесь решается сложная комплексно-сопряженная задача, включающая в себя:

- срабатывание воспламенительного устройства;

- прогрев, воспламенение и последующее горение заряда твердого топлива;

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

- движение заглушки соплового блока.

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

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

Принципиальная блок-схема алгоритма расчета

Вычисление координаты положения заглушки сопла

Корректировка параметров с учетом изменения размера расчетной области

Вычисление вспомогательных параметров для расчета граничных условий на подвижной границе области интегрирования

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

Поток 1 Поток 2 ... Поток N

Эйлеров этап метода Давыдова (метода крупных частиц): расчет эйлеровых скоростей и энергий, расчет функций силового и теплового межфазного взаимодействия,

учет объемного высвечивания газовой фазы. _Создание нескольких вычислительных потоков:_

Поток 1 Поток 2 Поток N

Постановка эйлеровых граничных условий для й1, у, м> i, Е,,

где , = (1...3); у = (2,3),

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

Поток 1 Поток 2 Поток N

Эйлеров этап метода Давыдова (метода крупных частиц): расчет эйлеровой энергии газовой фазы Е1. Создание нескольких вычислительных потоков:

Поток 1 Поток 2 Поток N

Постановка эйлеровых граничных условий для Е1 вдоль образующих камеры сгорания. Создание нескольких вычислительных потоков:

Поток 1 Поток 2 Поток N

Приход продуктов сгорания с поверхности горения заряда твердого топлива. Создание нескольких вычислительных потоков:

Поток 1 Поток 2 Поток N

Приход продуктов сгорания от воспламенительного устройства

Лагранжев + заключительный этапы метода Давыдова (метода крупных частиц): расчет потоков массы, импульса и энергии и окончательный расчет основных газодинамических параметров потока, вычисление дополнительных параметров потока. Создание нескольких вычислительных потоков:

Поток 1

Поток 2

Поток N

Анализ устойчивости вычислений

Редактируемая печать результатов расчета

Конец цикла по времени

Запись результатов расчета в файл

Динамическое освобождение памяти для переменных-массивов

Многопотоковой обработке подвержены задача горения заряда твердого топлива (квазигомогенная модель горения твердого топлива, сформулированная на базе уравнений теплопроводности и химической кинетики, метод решения дифференциальных уравнений - метод конечных разностей) и задача газодинамического течения продуктов сгорания в камере сгорания, сопле и за сопловым блоком РДТТ (сформулированная на базе полной нестационарной системы вихревых дифференциальных уравнений, метод решения дифференциальных уравнений - метод Давыдова (метод крупных частиц) - метод постановки вычислительного эксперимента). Структура используемых численных методов позволяет беспрепятственно массово распараллеливать алгоритм расчета, что крайне важно для организации процесса вычисления при применении как центрального процессора (CPU), так и графического ускорителя (GPU).

Конфигурация используемой рабочей станции (базовые элементы):

- материнская плата MB 115G Asus Z97 PRO ATX;

- центральный процессор INTEL Core i7 479GK LGA 115G;

- оперативная память CORSAIR Vengeance CML166X3M2A16GGC9 DDR3 2x8 Gb 16GG DIMM;

- накопитель (для операционной системы и пользовательских программ) SSD SATA 128 Gb Plextor M5 PRO;

- накопитель (для данных) HDD SATA 3GGG Gb Seagate ST3GGGDMGG1;

- привод DVD RW SATA Samsung SH-224DB;

- графический ускоритель (видеокарта) PCI-E Sapphire AMD Radeon R9 29GX TRI-X OC 4G96 Mb GDDR5.

Ниже приведены основные технические характеристики используемых центрального процессора (CPU) и графического ускорителя (GPU).

Основные характеристики используемого CPU

Количество ядер 4

Количество вычислительных потоков (Hyper-Threading) 8

Базовая тактовая частота, ГГц 4

Максимальная частота в режиме Turbo Boost, ГГц 4,4

Кеш L3, МБ 8

Поддержка памяти DDR3 1333/1600

Максимальный объем памяти, ГБ 32

Количество каналов памяти 2

Энергопотребление, Вт 88

Графическое ядро HD Graphics 4600

Базовая частота графического ядра, МГц 350

Максимальная частота графического ядра, МГц 1250

Основные характеристики используемого GPU

Графический процессор Radeon R9 290X (Hawaii)

Интерфейс PCI Express x16

Частота работы графического процессора, МГц 1040

Частота работы памяти (физическая/эффективная), МГц 1300/5200

Ширина шины обмена с памятью, бит 512

Число вычислительных блоков 44

Число операций в блоке 64

Суммарное число операций (вычислительных потоков) 2816

Энергопотребление (пиковое в 3D (Uber) / 3D (Quiet) / в режиме 2D / в режиме «сна»), Вт 295/241/46/3

Используемая операционная система - Linux Open SUSE 13.1 х86-64. Программный комплекс составлен в среде программирования Kdevelop 4.1 (компилятор gcc 4.8.2) в двух вариантах:

1) только для CPU на языке программирования C/C++;

2) для CPU и GPU на языке программирования C/C++ + OpenCL.

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

Вычислительная производительность

Используемая конфигурация рабочей станции / Программный комплекс Время счета одного шага по времени (с)

CPU / C/C++ 1,507

CPU / C/C++ + OpenCL 1,055

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

CPU + GPU / C/C++ + OpenCL 0,148

Для базовой конфигурации рабочей станции только с центральным процессором (CPU) и при использовании базового программного комплекса, реализованного на С/С++, время счета одного шага интегрирования по времени составляет 1,507 с. Благодаря дополнительному использованию программного комплекса, реализованного на С/С++ + OpenCL, производительность вычислений на CPU увеличивается в ~ 1,43 раза (в основном за счет «раскрытия» трехмерных циклов по координатам). Для конфигурации рабочей станции с центральным процессором и графическим ускорителем (CPU + GPU) и при использовании программного комплекса, реализованного на С/С++ + OpenCL, производительность вычислений, по сравнению с базовым расчетом, увеличивается в 10,18 раза.

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

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

Библиографический список

1. Численное исследование актуальных проблем машиностроения и механики сплошных и сыпучих сред методом крупных частиц / Ю.М. Давыдов, И.М. Давыдова, М.Ю. Егоров, А.М. Липанов [и др.]; Нац. акад. прикладных наук России. - М., 1995. - 1658 с.

2. Давыдов Ю.М., Егоров М.Ю., Шмотин Ю.Н. Нестационарные эффекты течения в турбине реактивного двигателя // Докл. АН. - 1999. -Т. 368, № 1. - С. 45-49.

3. Егоров М.Ю., Егоров Я.В., Егоров С.М. Исследование неустойчивости рабочего процесса в двухкамерном РДТТ // Известия вузов. Авиационная техника. - 2007. - № 4. - С. 39-43.

4. Егоров М.Ю., Егоров С.М., Егоров Д.М. Численное исследование переходных внутрикамерных процессов при выходе на режим работы РДТТ // Известия вузов. Авиационная техника. - 2010. - № 3. -С. 41-45.

5. Егоров М.Ю., Егоров Д.М. Численное моделирование внутри-камерных процессов в бессопловом РДТТ // XXIII семинар по струйным, отрывным и нестационарным течениям: сб. тр. / под ред. Г.В. Кузнецова [и др.]. - Томск: Изд-во Том. политехн. ун-та, 2012. -С.124-127.

6. Егоров М.Ю., Парфёнов А.Ю., Егоров Д.М. Численное исследование динамики внутрикамерных процессов при срабатывании артиллерийского выстрела // Вестник Пермского национального исследовательского политехнического университета. Аэрокосмическая техника. - 2012. - № 32. - С. 50-66.

7. Егоров М.Ю., Парфёнов А.Ю. Моделирование процесса срабатывания дульного тормоза артиллерийского орудия // Вестник Пермского национального исследовательского политехнического университета. Аэрокосмическая техника. - 2014. - № 36. - С. 165-175.

8. Егоров М.Ю. Метод Давыдова - современный метод постановки вычислительного эксперимента в ракетном твердотопливном двига-телестроении // Вестник Пермского национального исследовательского политехнического университета. Аэрокосмическая техника. - 2014. -№ 37. - С. 6-70.

9. Сенкевич А.В. Архитектура ЭВМ и вычислительные системы. -М.: Academia, 2014. - 240 с.

10. Programming Guide. AMD Accelerated Parallel Processing OpenCL. 2011. Advanced Micro Devices.

References

1. Davydov Yu.M., Akzholov M.Zh., Alabuzhev P.M. [et al.]. Chislennoe issledovanie aktualnykh problem mashinostroeniya i mekhaniki sploshnykh i sypuchikh sred metodom krupnykh chastits [Computational

investigation of actual problems of mechanical engineering and mechanics of continua and granulated solids with large-particle method]. Moscow: Natsionalnaya akademiya prikladnykh nauk Rossii, 1995. 1658 p.

2. Davydov Yu.M., Egorov M.Yu., Shmotin Yu.N. Nestatsionarnye effekty techeniya v turbine reaktivnogo dvigatelya [Transient effects of flow in a jet engine turbine]. Doklady akademii nauk, 1999, vol. 368, no. 1, pp. 45-49.

3. Egorov M.Yu., Egorov Ya.V., Egorov S.M. Issledovanie neustoy-chivosti rabochego protsessa v dvukhkamernom RDTT [Investigation of instability in double chamber solid rocket motor]. Izvestiya vysshikh ucheb-nykh zavedeniy. Aviatsionnaya tekhnika, 2007, no. 4, pp. 39-43.

4. Egorov M.Yu., Egorov S.M., Egorov D.M. Chislennoe issledovanie perekhodnykh vnutrikamernykh protsessov pri vykhode na rezhim raboty RDTT [Numerical study of transient chamber processes when entering the operating mode of solid rocket motor]. Izvestiya vysshikh uchebnykh zave-deniy. Aviatsionnaya tekhnika, 2010, no. 3, pp. 41-45.

5. Egorov M.Yu., Egorov D.M. Chislennoe modelirovanie vnutrikamernykh protsessov v bessoplovom RDTT [Numerical modeling of chamber processes in nozzles solid rocket motor]. XXIII seminar po struynym, otryvnym i nestatsionarnym techeniyam. Tomskiy politekhniches-kiy universitet, 2012, pp. 124-127.

6. Egorov M.Yu., Parfenov A.Yu., Egorov D.M. Chislennoe issledovanie dinamiki vnutrikamernykh protsessov pri srabatyvanii artilleriyskogo vystrela [Numerical research of dynamics in the combustion chamber of processes at operation of an artillery shot]. Vestnik Permskogo natsional-nogo issledovatelskogo politekhnicheskogo universiteta. Aerokosmicheskaya tekhnika, 2012, no. 32, pp. 50-65.

7. Egorov M.Yu., Parfenov A.Yu. Modelirovanie protsessa srabaty-vaniya dulnogo tormoza artilleriyskogo orudiya [Numerical research of process of gas preserver operation of the artillery tube]. Vestnik Permskogo natsionalnogo issledovatelskogo politekhnicheskogo universiteta. Aerokos-micheskaya tekhnika, 2014, no. 36, pp. 165-175.

8. Egorov M.Yu. Metod Davydova - sovremennyy metod postanovki vychislitelnogo eksperimenta v raketnom tverdotoplivnom dvigatelestroenii [Davydov method as a modern method of computing experiment for solid rocket motors]. Vestnik Permskogo natsionalnogo issledovatelskogo politekh-nicheskogo universiteta. Aerokosmicheskaya tekhnika, 2014, no. 37, pp. 6-70.

9. Senkevich A.V. Arkhitektura EVM i vychislitelnye sistemy [Computer architecture and computer systems]. Moscow: Academia, 2014. 240 p.

10. Programming Guide. AMD Accelerated Parallel Processing OpenCL. 2011. Advanced Micro Devices.

Об авторах

Егоров Михаил Юрьевич (Пермь, Россия) - доктор физико-математических наук, профессор кафедры «Высшая математика», ФГБОУ ВПО ПНИПУ (614990, г. Пермь, Комсомольский пр., д. 29, e-mail: egorov-m-j@yandex.ru).

Егоров Сергей Михайлович (Пермь, Россия) - кандидат физико-математических наук, старший научный сотрудник ОАО «Научно-исследовательский институт полимерных материалов» (614113, г. Пермь, ул. Чистопольская, д. 16, e-mail: know_nothing@bk.ru).

Егоров Дмитрий Михайлович (Пермь, Россия) - кандидат технических наук, старший научный сотрудник ОАО «Научно-исследовательский институт полимерных материалов» (614113, г. Пермь, ул. Чистопольская, д. 16, e-mail: egorovdimitriy@mail.ru).

About the authors

Mikhail Yu. Egorov (Perm, Russian Federation) - Doctor of Physical and Mathematical Sciences, Professor, Department of Higher Mathematics, Perm National Research Polytechnic University (29, Komsomolsky av., Perm, 614990, Russian Federation, e-mail: egorov-m-j@yandex.ru).

Sergey M. Egorov (Perm, Russian Federation) - Ph. D. in Physical and Mathematical Sciences, Senior Staff Scientist of OJSC "Research Institute of Polymer Materials" (16, Chistopolskaya st., Perm, 614113, Russian Federation, e-mail: know_nothing@bk.ru).

Dmitriy M. Egorov (Perm, Russian Federation) - Ph. D. in Technical Sciences, Senior Staff Scientist of OJSC "Research Institute of Polymer Materials" (16, Chistopolskaya st., Perm, 614113, Russian Federation, e-mail: egorovdimitriy@mail.ru).

Получено 16.01.2015

i Надоели баннеры? Вы всегда можете отключить рекламу.