Разработки СО РАН - каталог программ

На данной странице представлен каталог программ, включенных в Фонд алгоритмов и программ Сибирского отделения РАН. Полный каталог программ и БД, включенных в Фонд, а также любые выборки по научным центрам, объединенным ученым советам и др. вы можете найти на данной странице.

2011-11-11

Назначение. Решение задач моделирования на высокопроизводительных системах и предоставление инструментария для удаленного запуска, мониторинга и визуализации расчетов.

Область применения. Решение актуальных наукоемких прикладных задач (требующих больших вычислительных ресурсов) для Северо-восточного федерального университета и научно-исследовательских институтов Республики Саха (Якутия), .

В Центре Вычислительных Технологий  Арктического Инновационного Центра при СВФУ разработан программный инструментарий для проведения массовых вычислительных экспериментов с гибким, масштабируемым вычислительным ядром. Ядро разработано на основе парадигмы объектно-ориентированного программирования, реализованного средствами языка C++, который добавляет абстрактный уровень, предоставляющий гибкость при реализации различных математических моделей и решателей. В его основе лежат решатели для систем линейных алгебраических уравнений, дающие масштабируемость и эффективность распараллеливания, что является особенно актуальным в свете существующих симуляторов.

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

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

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

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

Инструментальные средства создания. Использовались открытые библиотеки для параллельный вычислений MPI, BLAS, PETSC.
Языки программирования Python, C++.
Платформа Qt, библиотека визуализации VTK.

2011-11-03

Назначение. Пакет стандартных библиотек пользователя - это набор динамически подключаемых библиотек dll (dynamic link library). В библиотеках находятся интерфейсные функции, которые наиболее часто используются в самых разнообразных имитационных моделях. Кроме того, каждая библиотека содержит функцию инициализации библиотеки и шлюзовые функции, которые реализуют возможность вызова интерфейсных функций из WinALT.

Разработка программы поддержана проектом Президиума РАН 13.6.

Функциональные возможности. Пакет содержит следующий набор: altio.acl, altobj.acl, console.acl, io.acl, math.acl, standard.acl.

Краткое описание набора.

altio.acl – содержит множество функций для консольного ввода/вывода. Функции обеспечивают ввод с клавиатуры и печать на экран строковых значений, целых и дробных чисел, вызов редактора текстовой строки и ряд других. Перечень функций: WriteLn, ReadLn, ReadString, WriteString, WriteStringLn, WriteInteger, WriteIntegerLn, ReadInteger, WriteFloat, WriteFloatLn, Write1, Write1f, ReadFloat, WriteCharacter, WriteCharacterLn, ReadCharacter, WriteBoolean, WriteBooleanLn, ReadBoolean, GetYesNo, ShowMessage, ShowErrorMessage, responseRETRY, responseABORT, EditString, EnableCharBuffer. Библиотека используется как в консольной, так и в графической версиях системы WinALT, например, для печати промежуточных или конечных результатов моделирования, трассировки при отладке модели и т.д.

altobj.acl – содержит множество функций для работы с объектами данных (клеточными объектами), их отдельными клетками и группами клеток. Функции позволяют создавать и удалять объекты, менять их размеры и размерность, присваивать клеткам значения, присваивать значения группам клеток. Перечень функций: CreateObject, RemoveObject, CopyObject, GetDescriptor, CreateAlias, CreatePartial, CloseDescriptor, ResizeObject, GetObjectSizeX, GetObjectSizeY, GetObjectSizeZ, GetObjectName, GetCellName, SetCellName, GetIntCell, SetIntCell, SetIntRect, SetIntFilledRect, SetIntLine, SetIntCircle, SetIntFilledCircle, DupRect, SwapRects, ReflectXRect, ReflectYRect, ReflectZRect, RotateSquare.

console.acl – содержит множество функций для управления текстовой консолью. Перечень функций: Init, Deinit, Get, Release, SetTitle, SetAttr, foreBlue, foreRed, foreGreen, foreIntensity, backBlue, backRed, backGreen, backIntensity, GotoXY. Библиотека используется в моделях, ориентированных на исполнение в консольной версии системы WinALT.

io.acl – содержит множество функции файлового ввода-вывода. Эти функции в существенной степени повторяют функции стандартной библиотеки Си (как по названию, так и по составу параметров). Перечень функций: fopen, fclose, fread, fwrite, fgets, fputs, fputi, fputf, fputfsci, fgetc, fputc, feof, fseek, ftell, ferror, fflush, clearerr. Библиотека используется для ввода и вывода данных из файлов, форматы которых не имеют встроенной поддержки в системе WinALT.

math.acl – содержит множество математических функций. Названия функций полностью заимствованы из Си. Фактически библиотека состоит из математических функций, импортированных из стандартной библиотеки Си. Перечень функций: sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, exp, log, log10, pow, hypot, sqrt, floor, ceil, fmod, j0, j1, jn, y0, y1, yn, fabs.

standard.acl – содержит разнообразные часто используемые константы и функции. Основная группа функций служит для работы с типами данных – определение типа переменной или клетки. Прочие функции позволяют получить размер клеточных массивов, произвести замеры времени, затрачиваемого на этап моделирования и т.д. Перечень функций: null, Null, NULL, typeInteger, typeBoolean, typeString, typeVoid, typeFloat, typeCharacter, succ, pred, abs1, max2, max3, min2, min3, cond, cond2, cond3, cond4, cond5, cond6, cond7, cond8, cond9(10), StringLength, StringEqual, Integer, Float, String, Pointer, TypeOf, typeof, SizeX, SizeY, SizeZ, Time, StartTimeCounter, StopTimeCounter.

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

Инструментальные средства создания. Библиотеки создаются в среде Microsoft Visual Studio. Исходные тексты интерфейсных функций либо берутся из некоторой стандартной библиотеки (например, языка Си), либо создаются разработчиком библиотеки. Создание библиотеки содержит три шага. С помощью специально разработанной утилиты stg генерируется файл на языке Си, в котором содержатся шлюзовые функции, делающие доступными интерфейсные функции в моделирующих программах. В Visual Studio создается проект, в который включаются все необходимые для компиляции интерфейсных функций исходные тексты и файл, сгенерированный на предыдущем шаге. Затем осуществляется компоновка dll файла в проекте Visual Studio. При стандартной установке системы WinALT на диск C библиотеки пакета размещаются в директории C:\alt\acllib.

2011-11-02

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

Разработка программы поддержана проектом Президиума РАН 13.6.

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

Функциональные возможности. Графическая оболочка обеспечивает оформление имитационной модели в виде проекта, содержащего набор подокон – полотен главного окна проекта. Каждое отдельное полотно может содержать либо графические объекты модели, либо текстовые. Типичное представление графического объекта – одно-, двух-, трехмерный массив, составленный из цветных клеток. Создание и редактирование графических объектов осуществляется с помощью меню, панелей инструментов и используемых в них диалогов. Диалоги имеют узнаваемый для пользователей Windows вид. Тексты моделирующих программ создаются и редактируются с помощью текстового редактора, функции которого аналогичны функциям стандартного редактора типа NotePad с некоторыми добавлениями: выполняется синтаксическая раскраска текста и указываются строки с синтаксическими ошибками. Система содержит меню и панели инструментов для отладки и исполнения модели. Вспомогательные окна показывают предупреждения об опасных действиях (например, удалении файла), содержат служебную информацию (например, компилятора или отладчика) и др. Любая пользовательская функция доступна как через комбинацию клавиш, так и с помощью мыши.

Инструментальные средства создания и классы графической оболочки. При разработке оболочки использовались методы объектно-ориентированных проектирования и программирования. Описываемая версия графической оболочки основана на библиотеке Microsoft Foundation Classes (MFC). Оболочка представлена комплектом классов, каждый из которых реализует некоторый набор или внутренних, или пользовательских функций. 
Основные классы. CWinALTApp реализует пользовательские функции по работе с проектами. CWinALTDoc, CWinALTView - классы, реализующие полотно для работы с графическими объектами и обеспечивающие вызов всех основных диалогов по работе с ним. CDrawObj - класс, реализующий отрисовку графических объектов на полотне и все основные пользовательские функции по работе с объектами на полотне. CSourceTextDoc, CSourceTextView - классы, реализующие редактор моделирующей программы и обеспечивающие вызов всех основных диалогов по работе с ней.

Остальные классы можно разбить на следующие основные группы:
1) Классы, реализующие диалоговые окна (например, CCreateObjectDlg - для создания клеточного объекта на полотне, CFillRandDlg - заполнения клеток объекта данных начальными значениями и т.д.).
2) Классы, реализующие панели инструментов (например, панель управления режимами отображения объектов на полотне, панель выбора палитры и т.д.).
3) Классы, реализующие прочие панели (например, CProjectTreeBar - панель отображения имен файлов и объектов проекта, CDebugOutputBar - панель вывода информации отладчика).
4) Классы, реализующие видимые элементы на полотне (например, CRulerView - отрисовка мерной линейки на полотне и вызов пользовательских функций по работе с ней).

2011-11-02

Назначение. Основное назначение консольной версии системы – быть ядром всех компонент системы WinALT, которые расширяют ее функциональные возможности по адаптации к предметным областям пользователей. Самостоятельное использование консольной версии системы конечным пользователем по построению и исполнению имитационных моделей возможно (пользователь запускает консольную версию из командной строки или с помощью bat-файла) и позволяет организовать работу системы WinALT в пакетном режиме. Но из-за отсутствия у консольной версии собственного графического интерфейса, обычно она используется в связке с графической оболочкой системы WinALT. В этом случае создание и редактирование моделирующих программ выполняется в специальных окнах (файлах с расширением .src) системы WinALT.

Разработка программы поддержана проектом Президиума РАН 13.6.

Область применения. С использованием языка моделирования консольной версии системы построены имитационные модели в таких предметных областях как классические клеточные автоматы, в том числе модели физических процессов; однородные и ассоциативные вычислительные структуры, 2D и 3D многоступенчатые микроконвейеры, клеточно-нейронные сети и т.д.

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

Язык моделирования системы WinALT содержит три взаимосвязанных составляющих. Первая составляющая языка предназначена для описания вычислений с массовым параллелизмом. Вторая составляющая языка предназначена для описания последовательных вычислений. Она основана на языке Паскаль и пpедoставляет сpедства oписания структуры моделирующей программы; управляющие операторы, oпеpатop пpисваивания, вызoвы пpoцедуp и фyнкций пo именам и пo yказателям; арифметические, логические и битовые операции. Третья составляющая языка обеспечивает импорт в моделирующую программу встроенных в систему библиотек, написанных как на ее языке, так и на языках C и C++, расширяя таким способом рамки средств моделирования в нужном пользователю направлении.

Первая часть языка представляет параллельные вычисления в виде параллельных подстановок и полностью базируется на алгоритмической системе – алгоритм параллельных подстановок (см. S.M. Achasova, O.L. Bandman., V.P. Markova, S.V. Piskunov. Parallel substitution algorithm. Theory and Application // World Scientific, Singapore, 1994, 220 p.) Выбор этой алгоритмической системы обусловлен тем, что она хорошо себя зарекомендовала при описании информационных и физических процессов в самых разнообразных мелкозернистых архитектурах.

Выделение в самостоятельную компоненту консольной версии системы открывает возможность построения новых графических оболочек. Например, открыта возможность для добавления в систему WinALT графики на основе пакетов Trolltech QT и GNU GTK.

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

Инструментальные средства создания Консольная версия реализована с использованием языка ANSI C.

2011-11-02

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

Разработка программы поддержана проектом Президиума РАН 13.6.
 
Область применения. Моделирование мелкозернистых процессов преобразования данных различной природы.
С использованием WinALT реализованы (и опубликованы на сайте системы) модели арифметических устройств, ассоциативных процессоров, однородных универсальных структур, ряда классических клеточных автоматов, модель диффузии, которая предложена Т. Марголусом, модели арифметических и геометрических фракталов, модели визуальной криптографии на основе алгоритмов Шамира.
С использованием WinALT заложены основы клеточной технологии построения 3D вычислительных структур, ориентированных на электрооптическую реализацию. Технология представлена в книге «3D лазерные информационные технологии» / Отв. редактор П.Е. Твердохлеб, 2003, Новосибирск, 550 с. (глава 4. Трехмерные интегральные схемы с оптическими межсоединениями, авторы Э.Г. Косцов и С.В. Пискунов).
Система используется для обучения основам параллельных технологий студентов НГТУ и НГУ.
 
Используемый алгоритм. Теоретическим фундаментом, на котором построен WinALT, служит алгоритмическая система «Алгоритм параллельных подстановок», первое широкое освещение получившая в статье Корнева Ю.Н., Пискунова С.В., Сергеева С.Н. «Алгоритмы обобщенных подстановок и вопросы их интерпретации сетями автоматов и однородными машинами», Известия АН СССР, Техническая кибернетика, № 6, 1971 и достаточно полно представленная в книге S.M. Achasova, O.L. Bandman, V.P. Markova, S.V. Piskunov Parallel substitution algorithm. Theory and Application // World Scientific, Singapore, 1994.

Основными компонентами (подсистемами) системы WinALT являются:

  1. консольная версия системы
  2. графическая оболочка системы
  3. пакет стандартных библиотек пользователя.

Все эти компоненты зарегистрированы в Каталоге ФАП как части составного произведения "Система имитационного моделирования мелкозернистых алгоритмов и структур WinALT".

Функциональные возможности. В настоящее время имеется реализация системы для платформы Win32.
WinALT построен как открытая система, возможности которой могут расширяться пользователем. WinALT может пополняться внешними модулями, которые представляют собой динамически подключаемые библиотеки - .dll файлы ОС Windows. Более того, из таких модулей могут собираться новые компоненты системы. Средства интерфейса системы нацелены на то, чтобы дать пользователю возможность комфортного конструирования и модификации графических образов как данных модели, так и моделирующих программ, обеспечить возможность следить за динамикой изменения преобразуемых в модели данных. Можно сказать, что предлагаемая система является системой визуального программирования, и, по-видимому, одной из первых в своей области. Установка системы на компьютер осуществляется с помощью инсталлятора, который использует библиотеку install.acl. Она содержит набор функций для распаковки и копирования файлов, реализации пользовательского интерфейса инсталлятора.

Структура каталогов системы WinALT, которую создает инсталлятор на диске в каталоге, указанном пользователем, такова:

  • acllib – здесь хранятся модули библиотек системы WinALT (включая пакет стандартных библиотек пользователя).
  • bin – исполняемые модули системы, а также динамически подключаемые библиотеки.
  • developr – каталог, предназначенный для диалога разработчиков системы как между собой, так и с конечными пользователями.
  • docs – каталог, содержащий документацию, не вошедшую в справочник по системе.
  • globals – каталог, содержащий глобальные объекты данных системы.
  • help – содержит файлы справки.
  • inc – каталог, содержащий файлы, подключаемые к программе, написанной на языке системы WinALT.
  • objmgrs – в этом каталоге хранятся драйверы объектов данных, используемые объектным менеджером, а также драйверы различных режимов визуализации, используемые OVE.
  • projects – местоположение проектов пользователя.
  • samples – примеры моделей дискретных динамических систем, иллюстрирующих возможности системы.

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