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

Вычислительная математика

УДК 519.63

DOI: 10.14529/cmse150307

О ПРОГРАММНЫХ КОМПОНЕНТАХ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ

1

В.П. Ильин

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

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

Введение

Математическое моделирование реальных процессов и явлений актуализируется, с одной стороны, бурным ростом мировых суперкомпьютерных ресурсов, знаменующим наступление эпохи постиндустриализации, а с другой, менее заметной,— появлением новой вычислительной математики и информатики, открывающей замечательные перспективы в принципах получения фундаментальных знаний и достижения технологического прогресса. При этом, как отмечалось в [1, 2] и цитируемых там работах, характерная тенденция развития современного прикладного и программного обеспечения заключается в его «глобализации», т.е. в переходе от разработок пакетов прикладных программ (ППП, например, ANSYS [3]) или библиотек, ориентированных на конкретные типы задач или представляющих собой наборы вспомогательных алгоритмических инструментов, к интегрированным программным окружениям для решения широкого класса прикладных проблем, поддерживающим все основные стадии математического моделирования и рассчитанным на длительный жизненный цикл с непрерывным пополнением состава моделей, методов и технологий, на адаптацию к эволюции архитектур и конфигураций гетерогенных МВС, а также на скоординированную реализацию различными группами разработчиков. Примерами таких проектов являются FOAM [4], DUNE [5] и БСМ [1]. Если же говорить о частных предметных областях, то здесь следует отметить унифицированный подход, реализованный в базовых программных системах для задач линейной алгебры BLAS и SPARSE BLAS, средства которых успешно используются в огромном количестве прикладных разработок.

1 Статья рекомендована к публикации программным комитетом Международной научной конференции «Параллельные вычислительные технологии - 2015».

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

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

Существующие уже несколько десятилетий широко используемые компонентные технологии, такие как CORBA (Common Object Reques Broker Architecture, [6]) и COM/DCOM [7] (Distributed Component Object Management), которые в определенном смысле представляют развитие объектно-ориентированного программирования, но в силу своих исторических рамок, недостаточно акцентированы на обеспечение высокой производительности наукоемких вычислений с масштабируемым параллелизмом, сложными типами данных и разноязычными программными модулями. С целью преодоления этих ограничений в 1997 г. был организован Common Component Architecture (CCA) Forum [8], поставивший задачей определение основных стандартов, инструментов и технологий. Департамент энергетики (DOE) в США создал Центр компонетных технологий для программного обеспечения терамас-штабного моделирования (Center for Component Technology for Terascale Simulation Software, CCTTSS [9]), который совместно с ведущими Национальными лабораториями создали ряд инструментальных средств в рамках спецификаций ССА. Среди таких разработок можно отметить язык описания компонентных интерфейсов SIDL (Scientific Interface Definition Language [10]), являющейся обобщением языка IDL из проекта CORBA и послуживший основой поддержки многоязыковости, включая F77, F90/95, C, C++, Python, реализованный в группе Babel [11], а также инструментальный комплекс CCAFFEINE [12] для осуществления технологических операций в иерархической распределенной памяти. Имееется уже ряд публикаций по результатам успешного использования компонентных технологий для серьезных приложений. Таким примером может служить модернизация в методологии ССА пакета программ SPARSKIT [13] для решения задач линейной алгебры, а также разработанные в национальной лаборатории SANDIA (США) интерфейсные стандарты для проблем решения уравнений [14].

Целью данной работы является рассмотрение подходов к применению компонентных технологий для построения базовой системы моделирования [1], ориентированной на методологическую поддержку различного типа прямых и обратных междисциплинарных задач. Статья организована следующим образом. В разделе 2 мы анализируем структурные свойства ядра БСМ и ее основных функциональных блоков, с учетом классификации прикладного программного обеспечения в различных «координатных плоскостях»: по типу решаемых математических задач, по применяемым вычислительным методам, по характеру отраслевых приложений, а также по типу пользователей и способу эксплуатации. Нако-

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

1. Архитектурные особенности базовой системы моделирования

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

Данная категория включает пространственно-временные процессы и явления, описываемые начально-краевыми задачами для систем дифференциальных, интегральных и/или дискретных уравнений, а также соответствующими обобщенными или вариационными постановками. Если требуется найти решение при полностью заданных граничных и начальных условиях в расчетной области с известными материальными свойствами сред, то такая задача относится к классу прямых задач. Более сложными являются обратные задачи, в которых любые из исходных данных могут быть определены с помощью неизвестных параметров, оптимальные значения которых надо найти по условиям минимизации задаваемого целевого функционала от решения, при дополнительных линейных или нелинейных ограничениях, которые также могут описываться какими-то функционалами. Решение обратных задач подразумевает в общем случае многократное нахождение решений прямых задач, при направленном поиске необходимых значений параметров с помощью методов оптимизации. Здесь, в свою очередь, требуется разделить задачи локальной минимизации (если соответствующий изолированный в некоторой окрестности параметров минимум существует) и проблемы глобальной минимизации, т.е. нахождение всех экстремальных точек.

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

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

• Геометрическое и функциональное моделирование, определяющее уровень автоматизации построения математических моделей и интеллектуальности пользовательского интерфейса, а также взаимодействие с внешними, графическими и САПРовскими продуктами. Итоговая информация обо всех математических объектах, а также об их взаимосвязях, однозначно определяющая постановку исходной задачи, представляется геометрической и функциональной структурами данных (ГСД и ФСД), обеспечивающими внутренние интерфейсы с остальными компонентами ядра БСМ и взаимную конвертацию форматов, используемых внешними программными разработками.

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

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

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

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

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

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

Важно отметить, что каждый из рассмотренных блоков ядра является формально методо-ориентированным и проблемно-независимым в том смысле, что он может применяться для различных типов приложений, т.е. имеет междисциплинарный характер. В силу этого он должен представлять собой мета-алгоритм, или библиотеку программ, для решения однотипных подзадач определенного класса (например, генерации каких-либо сеток, аппроксимации различных видов и порядков для дифференциальных уравнений, решения задач вычислительной алгебры и т.д.). В проекте БСМ соответствующие программные блоки преддставлены как библиотеки вычислительных инструментариев DELAUNAY [15], СНЕВУБНЕУ [16] и KRYLOV [17]. Важно подчеркнуть, что каждая из этих компонент — это свободно распространяемаое и расширяемое математическое окружение, включающее не только «свои» оригинальные разработки, но также открытое для использования внешних продуктов. Рассматриваемые алгоритмы могут применяться к самым разным приложениям, классифицируемым, с одной стороны, по физико-математическим признакам задачи электромагнетизма, теплофизики, упруго-пластичности, гидро-газодинамики и т.д., — описываемые соответствующими уравнениями Максвелла, массо-теплопроводности, Ламэ и Навье—Стокса. Эти уравнения могут решаться в различных расчетных областях, при разных начальных и краевых условиях, и все такое многообразие исходных математических постановок должно описываться средствами геометрического и функционального моделирования, составляющих первый из вышеперечисленных блоков ядра БСМ. С другой стороны, решаемые задачи отличаются по техническому назначению моделируемых устройств (электроника, машиностроение, металлургия, гео-электроразведка и др.). Данные спецификации определяют такую важную характеристику программного продукта, как интерфейс конечного пользователя, качество которого может оказаться решающим для востребованности и успешного практического применения программного проекта.

2. Основные требования и принципы компонентной архитектуры БСМ

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

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

рующие ППП, и от успеха которых зависит достижение конечной цели математиками и программистами. Очевидно, что качество решения всех интерфейсных проблем в значительной степени определяет уровень интеллектуальности разработки, а главное направление деятельности в этом направлении — это множественность структур данных и создание достаточно содержательного набора проблемно-ориентированных языков (Domestic Specific Language) для обеспечения взаимной конвертации информационных форматов.

Еще одна функция системного наполнения заключается в расширении и модернизации состава моделей и алгоритмов в ядре БСМ. Здесь существенно разнятся ситуации, когда новый включаемый модуль создан в «родной» инструментальной обстановке или привносится извне. Пополнение и обновление функционального наполнения ядра БСМ — это залог длительного жизненного цикла проекта, необходимого для его внедренческого и практического успеха. В определенном смысле данная характеристика означает «инновации в квадрате», поскольку само применение БСМ к решению конкретных практических проблем подразумевает существенный экономический эффект в соответствующей отрасли. Важнейшая сторона данной проектной деятельности — это производительность труда прикладного математика-программиста, от которой и зависит скорость и качество пополнение состава вычислительных модулей. Залогом успеха в данном случае является высокий уровень автоматизации построения алгоритмов.

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

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

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

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

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

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

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

Заключение

В заключение можно сказать, что рассмотренные вопросы относятся к проблеме ре-индустриализации прикладного программного обеспечения, с целью доведения его в идеале до уровня технологичности использования компиляторов и операционных систем. В определенном смысле мы подтверждаем ту истину, что «новое — это хорошо забытое старое», поскольку данные аспекты активно обсуждались еще в 80-е годы (естественно, на своем уровне развития методологии, см., например, [18]).

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

Работа поддержана грантом Российского научного фонда № 14-11-00485.

Литература

1. Ильин, В.П. Технологии вычислительного программирования / В.П. Ильин, И.Н. Скопин // Программирование. 2011. — № 4. — С. 53-72.

2. Ильин, В.П. Стратегии и тактики «заоблачного» математического моделирования / В.П. Ильин // Труды Международной конференции ПАВТ'2014. — Челябинск: Издательский центр ЮУрГУ, 2014. — С. 99-107.

3. ANSYS - Simulation Driven Product Development: URL: www.ansys.com (дата обращения: 10.09.2014).

4. OpenFOAMR - The Open Source computational Fluid Dynamics (CFD) Toolbox: URL: www.openfoam.com (дата обращения: 10.09.2014).

5. DUNE Numerics. URL: www.dune-project.org (дата обращения: 10.09.2014).

6. Object Management Group. «CORBA Components». URL: http://www.omg.org (дата обращения: 10.09.2014).

7. Maloney, J. Distributed COM Application Development Using Visual C++ /J.Maloney // Prentice Hall, N.Y. - 1999.

8. CCA-Forum. The DOE common component architecture project. URL: http://www.CCA-forum.org (дата обращения: 10.09.2014).

9. CCTTSS. DOE SciDAC Center for Component Technology for Terascale Simulation Software. URL: http://www.cca-forum.org/ccttss (дата обращения: 01.10.2014).

10. Kohn, S., Kumfert G., Painter J., Ribben C. Divorcing language dependencies from a scientific software library. www:LLNL document UCRL-JC-140349. (дата обращения: 10.09.2014).

11. Babel Team. The DOE Babel Project. URL: http://www.llnl.gov/case/components/babel (дата обращения: 10.09.2014).

12. Allan, B. The CCA core specification in a distributed memory SPMD framework. Concurrency Computat: / B. Allan, R. Armstrong, A. Wolfe, J. Ray, D. Bernholdt, J. Kohl // Practice and Experience. - 2002. - Vol. 14 .- P. 323 - 345. DOI: 10.1002/cpe.651.

13. Jones, J. Component-based iterative methods for sparse linear systems / J. Jones, M. Sosonkina, Y. Saad // Concurency Computat. Pract. Exper. — 2007. — Vol. 19. — P. 625635. DOI: 10.1002/cpe.1057.

14. The Equation Solver Interface Standards Forum. URL: http: //z.ca.sandia.gov/esi (дата обращения: 01.10.2014).

15. Ильин, В.П. DELAUNAY: технологическая среда генерации сеток/ В.П. Ильин // Сиб-ЖИМ. — 2013. — Т. 16, № 2(54). — С. 83-97.

16. Бутюгин, Д.С. CHEBYSHEV: принципы автоматизации построения алгоритмов в интегрированной среде для сеточных аппроксимаций начально-краевых задач / Д.С. Бутюгин, В.П. Ильин // Труды Международной конференции ПАВТ 2014. — Челябинск: Издательский центр ЮУрГУ, 2014. — С. 42-50.

17. Бутюгин, Д.С. Библиотека параллельных алгебраических решателей KRYLOV / Д.С. Бутюгин, Я.Л. Гурьева, В.П. Ильин, Д.В. Перевозкин // Труды конференции ПАВТ-2013. — Челябинск: Издательский центр ЮУрГУ, 2013. — С. 76-86.

18. Ершов, А.П. Пакеты программ — технология решения прикладных задач / А.П. Ершов, В.П. Ильин // Новосибирск, Препринт ВЦ СО АН СССР. - № 121; ВЦ СО АН СССР. -1978.

Ильин Валерий Павлович, д.ф.-м.н., г.н.с., Институт вычислительной математики и математической геофизики СО РАН, профессор, Новосибирский государственный университет (Новосибирск, Российская Федерация), ilin@sscc.ru.

Поступила в редакцию 27 февраля 2015 г.

Bulletin of the South Ural State University

Series "Computational Mathematics and Software Engineering"

2015, vol. 4, no. 3, pp. 85-94

DOI: 10.14529/cmse150307

ON THE PROGRAM COMPONENTS OF THE MATHEMATICAL MODELLING

V.P. Il'in, Institute of Computational Mathematics and Mathematical Geophysics of

Siberian Branch of the Russian Academy of Sciences, Novosibirsk State University

(Novosibirsk, Russian Federation) ilin@sscc.ru

The fast growth of the world supercomputer power obviously directs to the aktive applications of the mathematical modelling in the processes of economics re-industrialization. The extension of applications and simultaneous appearance of the new numerical methods, accompaining by the computer architecture evolution conducts to dramatic increasing of the total applied software, the cost of which is comparable with the expensis of the multi-processor computationsl systems (MPCS). Such quantitative changes leads to qualitive re-considering of the conception and technological structures of the software products. We consider the approaches for solving the arising problems in adapting to the basic system of modelling which is oriented to the integrative support of the all main stages of the large scale computational experiment. The variety of the technological issues includes the providnce of interaction of multi-language and cross-platform program components, internal and external interfaces with convertation of the multi-fold data presentation, reusing the external products, long life circle of the system, evolution of the functionality and adaptation to the MPCS modernisation, as well as scalable parallelezation of the algorithms and programs.

Keywords: basic system of modelling, component technologies, high performance computing, scalable parallelism, mult-languagesness, cross-platform, direct and inverse inter-disciplinary problems.

References

1. Il'in V.P., Skopin I.N. Computational Programming Technologies // Programming and Computer Software. 2011. Vol. 37, № 4. P. 210-222.

2. Il'in V.P. Strategii i tactici «zaoblachnogo» modelirovania [Strategies and tactics of «overclouding» modelling]. Parallelnye vychislitelnye tekhnologii (PaVT'2014): Trudy mezhdunarodnoj nauchnoj konferentsii (Rostov-na-Donu, 1-3 aprelya 2014) [Parallel Computational Technologies (PCT'2014): Proceedings of the International Scientific Conference (Rostov-on-Don, Russia, April, 1-3, 2014)]. Chelyabinsk: Publishing of the South Ural State University, 2014. — P. 99-107.

3. ANSYS - Simulation Driven Product Development: URL: www.ansys.com

4. OpenFOAMR - The Open Source computational Fluid Dynamics (CFD) Toolbox: URL: www.openfoam.com (accessed: 10.09.2014).

5. DUNE Numerics: URL: www.dune-project.org (accessed: 10.09.2014).

6. Object Management Group. «CORBA Components». URL: http://www.omg.org (accessed: 10.09.2014).

7. Maloney J. Distributed COM Application Development Using Visual C++ // Prentice Hall, N.Y. - 1999.

8. CCA-Forum. The DOE common component architecture project. URL: http://www.CCA-forum.org

9. CCTTSS. DOE SciDAC Center for Component Technology for Terascale Simulation Software. http://www.cca-forum.org/ccttss (accessed: 01.10.2014).

10. Kohn S., Kumfert G., Painter J., Ribben C. Divorcing language dependencies from a scientific software library. www:LLNL document UCRL-JC-140349. (accessed: 10.09.2014).

11. Babel Team. The DOE Babel Project. URL: http://www.llnl.gov/case/components/babel (accessed: 10.09.2014).

12. Allan B., Armstrong R., Wolfe A., Ray J., Bernholdt D., Kohl J. The CCA core specification in a distributed memory SPMD framework. Concurrency Computat // Practice and Experience. 2002. Vol. 14. P. 323-345. DOI: 10.1002/cpe.651.

13. Jones J., Sosonkina M., Saad Y. Component-based iterative methods for sparse linear systems // Concurency Computat. Pract. Exper. 2007. Vol. 19. P. 625-635. DOI: 10.1002/cpe.1057.

14. The Equation Solver Interface Standards Forum. http://z.ca.sandia.gov/esi (accessed: 01.10.2014).

15. Il'in V.P. DELAUNAY: technologicheskaya sreda generatsii setok [DELAUNAY: technology environment of the grid generation]. SibJIM. 2013. Vol. 16, № 2(54). P. 83-97.

16. Butyugin D.S., Il'in V.P. CHEBYSHEV: principy automatizatsii postroenia algoritmov v integrirovannoi srede dlya setochnyh approximatsiy nachalno-kraevyh zadach [CHEBYSHEV: the principles of automatical construction of the algorithms in the integrated environment for grid approximation of the initial boundary value problems].Parallelnye vychislitelnye tekhnologii (PaVT'2014): Trudy mezhdunarodnoj nauchnoj konferentsii (Rostov-na-Donu, 1-3 aprelya 2014) [Parallel Computational Technologies (PCT'2014): Proceedings of the International Scientific Conference (Rostov-on-Don, Russia, April, 1 - 3, 2014)]. Chelyabinsk: Publishing of the South Ural State University, 2014. - P. 42-50.

17. Butyugin D.S., Gurieva Y.L., Il'in V.P. i dr. Biblioteka algebraicheskih reshatelei KRYLOV [The library of algebraic solvers KRYLOV]. Parallelnye vychislitelnye tekhnologii (PaVT'2014): Trudy mezhdunarodnoj nauchnoj konferentsii (Rostov-na-Donu, 1-3 aprelya 2014) [Parallel Computational Technologies (PCT'2014): Proceedings of the International Scientific Conference (Rostov-on-Don, Russia, April, 1-3, 2014)]. Chelyabinsk: Publishing of the South Ural State University, 2014. P. 76-86.

18. Ershov A.P., Il'in V.P. Pakety programm — tehnologia resheniya prikladnyh zadach [The software packages — the technology of the solving of applied problems]. Novosibirsk, Preprint, Computing Center, SB AS USSR. № 121. 1978.

Received February 27, 2015.