Организация межобъектных вызовов и реализация класса «файл объектов» как элемента системы программирования для МВС на основе понятий «пространство-время» Павлухин Павел Научный руководитель Илюшин А. И. Общая цель: создать систему управления вычислительными моделями для МВС. Цели работы: • реализовать средства для прикладного программиста по созданию и хранению вычислительных моделей в виде множества программных объектов на дисках; • реализовать поддержку запросов к файлу объектов , с помощью которых определяется информация о топологии и времени для прикладной задачи • обеспечить сохранение состояния модели в процессе счета с возможностью прерывания/возобновления счета, в том числе и на другой МВС • обеспечить взаимодействие объектов посредством удаленных вызовов Требования к классу «файл объектов»: • Поддержка сохранения нескольких версий прикладного объекта; • Структура файла одинакова при начальной инициализации и в процессе счета (возможность сохранять объекты в процессе счета и переносить их на другую МВС для возобновления дальнейшего счета); • Масштабируемость (возможность работы как с небольшим числом объектов, так и с несколькими тысячами их экземпляров); • хранение модели в стабильной памяти в течение всего периода работы с ней (контрольные точки); Методы класса «файл объектов»: • Подготовка исходных данных задачи в виде файла объектов; • Сохранение прикладного объекта в файл объектов; • Восстановление прикладного объекта из файла по его id и версии; • Восстановление информации о топологии(координаты) и времени объекта по его id и версии; Подготовка исходных данных задачи в виде файла объектов и сохранение прикладного объекта в файл объектов: Прикладной объект Файл объектов CreateObject байтовый массив объекта Id maxObjectVersions – задается XYZ (координаты объекта) при инициализации OST_Main version begin length lencoord IndexFile Восстановление прикладного объекта из файла по его id: Id Version Координаты объекта (для определения соседей) и время Файл объектов на физическом носителе version прикладной объект Файл объектов Deserialize begin length lencoord IndexFile Межобъектные вызовы: • Java – платформонезависимый язык с удобной системой удаленных вызовов – RMI(Remote Method Invocation); • Ограничения RMI; • Межобъектный вызов - удаленный вызов; • Корректность работы в различных конфигурациях; Регистрация OST_Local в системе mainhost OST_Main rmiconnectmain(“OST_Main”) 1 2 OSTLocal1 rmiregistry 3 Id=1 registerOstLocalrmi host1 “OSTLocal+id” OSTLocal2 (“OSTLocal+id”) id rmiregistry host1 rmiregistry host2 Регистрация объектов и межобъектный вызов mainhost OST_Main WhereHost(‘’name+id’’) regOstObjrmi(‘’name+id’’) rmiregistry ‘’host1’’ 2 1 2 host1 ‘’name+id” OSTLocal2 OSTLocal1 regObj(‘‘name+id’’) rmiregistry Obj(‘’name+id’’).func() rmiregistry 4 host1 host2 3 Что сделано: • • • • • • • • • • • • • 0. разработка описания структуры ОSТа – Оленин, Чугунов,Павлухин – Проектирование структуры и разработка алгоритмов – Описание реализации - структура OST, основные алгоритмы – Руководство для прикладного программиста 1. класс прикладного объекта (OST_Object) – Оленин 2. класс объекта связки (OST_LinkObject) – Оленин 3. класс объекта локального управления счетом(ОSТ_Local)–Оленин 4. класс объекта управления счетом (OST_Main) – Оленин 5. класс файла объектов(ObjectStore) – Павлухин 6. меж-объектные вызовы – Оленин, Чугунов, Павлухин 7. динамическая подгрузка классов – Чугунов 8. связь java c C/C++ и C/C++ с fortran – Чугунов, Павлухин 9. Реализация прикладных задач – 1. M2DGD – Оленин, Колмаков – 2.1. Умножение матриц, вариант на OST – Оленин – 2.2. Умножение матриц, вариант на MPI – Чугунов Планируется сделать: • Перенос на МВС задачи М2DGD; • Полноценный планировщик задач, подкачка/выталкивание объектов; • Доработка описания для пользователя; • Реализация других прикладных задач;