Русскоязычные документыEnglish DocsГлоссарий
    Иерархия :: "КУРС-АС1" (Home) / AdapSys_RT / CAPER

Язык Параллельного Программирования
(The Parallel Programming Language)
CAPER


CAPER - Язык Императивного Параллельного Программирования


Что такое CAPER? (Аннотация с новыми возможностями языка CAPER 2016 года).

Презентация по основам языка CAPER (2016 год)

Вартанов Сергей Рубенович, к.ф.-м.н. *

Язык CAPER создавался с целью разрешения следующих концептуальных положений:

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

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

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

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

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

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

    О языке CAPER на русском и на английском языках.

    Добро пожаловать в мир параллельного программирования на языке - CAPER - краткое представление (в HTML).

    Скачайте - Демонстрация некоторых возможностей языка CAPER.


    Реализация приложений на языке CAPER

    На языке CAPER реализован значительный набор приложений в разных областях деятельности, где задачи имеют ярко выраженный параллелизм, например некоторые из них:

  • Распознавание образов с большим количеством областей интереса в параллельной обработке, например параллельное распознание более 1500 диагностических зон радужной оболочки глаза;
  • Симуляция мультипроцессорных систем (до 400-500 тыс. процессирующих элементов и более) для моделирования электронных схем – четырехкратный выигрыш по скорости симуляции **;
  • Программы информационно-аналитического поиска на базе алгоритмов параллельной многомашинной обработки и поступлением в реальном времени результатов поиска;
  • Аналитическая банковская система финансового состояния банков реального времени с обновлением актуальной графической информации каждые 30 сек. на мониторах специалистов;
  • CAD подготовки программ для многопроцессорных устройств на базе многопроцессорных видеокарт AMD/ NVideo, с помощью которого создается архитектура многопоточных многопроцессорных (кластерных) устройств для обработки изображений или параллельных вычислений.

  • Язык CAPER и его методологическая база стали основой создания ряда проектов:


    Операционная Cистема
    Реального Времени OS-RTRU


    МногоМашинное Параллельное
    Процессирование (обработка)


    МногоМашинные Системы
    Сверхвысокого Разрешения


    ** Сопоставление скоростей симуляции СБИС на языках CAPER и SystemC

    С полным текстом описания моделирования СБИС с помощью языка параллельного программирования CAPER можно познакомиться в PDF документе:

    Язык параллельного программирования CAPER как средство для
    эффективного архитектурного моделирования современных СБИС.

    Результаты симуляции СБИС на языках CAPER4 и SystemC в табличном формате:

    Графическое отображение результатов симуляции на основе SC_THREADS.


    * Крестиком обозначена точка аварийного завершения симулятора на SystemC.

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

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


    * Основные публикации по языку параллельного программирования CAPER

    1. Вартанов С.Р. Методы конструирования и сопровождения данных средствами языка параллельного программирования Caper. Труды 4-ой международной конференции “Параллельные вычисления и задачи управления”. PACO-2008, Москва, 2008.
    2. Вартанов С.Р. Средства динамической компоновки программ и данных в языке Caper. Годичная научная конференция Российско-Армянского (Славянского) Университета, Ереван, 2007.
    3. Vartanov S.R. A Mass Parallel Starts In Parallel Programming Language Caper. Информационные технологии и управление. Том 4-1, Ереван, 2006.
    4. Вартанов С.Р. Основания к концепции мультиязыков. Информационные технологии и управление. Том 4-3, Ереван, 2005.
    5. Vartanov S.R. Parallel Programming Methods in Caper Language and its Application in Image Processing. SCI2002/ISAS2002, Orlando, USA, 2002, vol. XI.
    6. Vartanov S.R. On Parallel Programming Language Caper. Lect. Notes in Computer Sci., HCPN-2001, 565-568.
    7. Vartanov S.R. Parallel Programming in Caper. Mathematical Questions of Cybernetics and Computing Technique. Vol.22, Yerevan, 2001.
    8. Вартанов С.Р. Язык программирования CAPER. Препринт 97-5. Национальная Академия Наук Украины, Институт Кибернетики им. Глушкова. Киев, 1997.