245
полноценное освоение этих языков не всегда доступно специалистам
по численным схемам, и наоборот, эксперты в области одного из трёх
этих языков редко являются одновременно и специалистами по
численному моделированию. Кроме того, сами выразительные
средства каждого из этих трёх языков многие считают не вполне
развитыми для довольно сложных задач, которые встают
перед
современными программистами в сфере механики сплошных сред.
Разработчики компании GDT Software Group на данный момент
рассматривают возможность более радикального подхода к проблеме
снижения сложности программирования численных схем. В основе его
лежит, во-первых, идея модификации уже имеющейся связки
законченных и отлаженных на параллельных системах пакетов
GasDynamicsTool и ScientificVR (S-VR), чтобы воспользоваться уже
заложенной в их
архитектуру модульностью для построения
универсального каркаса приложений, а во-вторых, в активном
использовании идей метапрограммирования и, в частности, языков
программирования предметной области (Domain Specific Languages).
Остановимся подробнее на каждой из этих ключевых идей.
Программные пакеты GasDynamicsTool и ScientificVR обладают
следующими важными особенностями. GasDynamicsTool является сам
по себе в высокой степени модульным приложением. Имеется модуль,
предоставляющий развитый графический
интерфейс пользователя,
позволяющий легко задавать достаточно сложные конфигурации
начальных и граничных условий. Имеются модули, обеспечивающие
сохранение начальных условий в различных форматах с сохранением
специфической объектной иерархии элементов счётной области. За
восстановление и сохранение результатов расчёта в виде “снимков”
счётной области в различных форматах отвечают также отдельные
модули. Наконец, в виде
изолированных модулей выполнены
собственно коды численных схем, реализованных в пакете.
Параллельность в пакете реализована таким образом, что
однопроцессорный вариант отличается от параллельного опять же
использованием набора модулей. Например, параллельная версия
пакета имеет особую разновидность, называемую гибридной версией
(GDT Hybrid, [1]) , которая позволяет запускать счётные задачи на
параллельных системах и интерактивно управлять ими с
рабочих
станций, не включённых в состав кластера. При этом важно, что
пользователь не видит разницы в работе с кластерной системой и
однопроцессорной версией для персонального компьютера –