RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Май 2024
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031  

Календарь Календарь

Последние темы
» Вити больше нет!
автор bug19 Пн Фев 20 2023, 19:54

» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47

» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05

» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03

» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02

» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52

» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36

» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37

» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33

» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00

» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58

» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17

» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07

» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08

» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09

» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02

» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47

» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11

» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33

» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38

» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12

» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01

» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22

» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08

» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08

Самые активные пользователи за месяц
Нет пользователей

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


Система программирования для платформ Эльбрус и МЦСТ-R.

Перейти вниз

Система программирования для платформ Эльбрус и МЦСТ-R. Empty Система программирования для платформ Эльбрус и МЦСТ-R.

Сообщение  Viktor2312 Вт Июл 26 2016, 11:27

1
.
.
.

Система программирования для платформ Эльбрус и МЦСТ-R.


____Система программирования для платформ Эльбрус и МЦСТ-R предназначена для создания собственных программных продуктов для этих платформ на языках программирования С/С++ и Fortran. В состав системы программирования входят:

  • оптимизирующий компилятор;
  • отладчик;
  • профилировщик;
  • набор библиотек поддержки;
  • оптимизированная математическая библиотека;
  • библиотека MPI.

Оптимизирующий компилятор lcc.

____В общем случае, компилятор – программа, преобразующая написанный на языке высокого уровня исходный текст в текст на низкоуровневом языке, близком к машинному коду. Оптимизирующий компилятор для языков С, С++, Fortran в составе программного обеспечения МЦСТ способен формировать двоичный код для целевых платформ, соответствующим всем  моделям микропроцессоров, разработанных в МЦСТ.  Имеются варианты компилятора для работы на целевой платформе и в режиме кросс-компиляции.
____Поясним термин «оптимизация». Критерием эффективности является время исполнения кода программы. Чем меньше время исполнения программы, тем более эффективным считается её код. В процессе работы компилятор может выполнять над алгоритмом программы различные преобразования, которые могут привести к формированию более эффективного кода. Эти преобразования называются оптимизирующими преобразованиями, или оптимизациями. Строго говоря, применение оптимизаций вовсе не гарантирует повышение эффективности. Всё зависит от исходного алгоритма. Тем не менее, правильный подбор оптимизирующих преобразований может серьёзно уменьшить время исполнения задачи.
____Компилятор в полной мере использует возможности распараллеливания, реализованные в аппаратуре каждой из двух архитектурных линий. Для архитектуры SPARC они в основном включают конвейерное параллельное исполнение операций, набор целочисленных и вещественных операций над короткими векторами, а также многоядерность и многопроцессорность на общей памяти с когерентным доступом, свойственные обеим архитектурам. В тоже время для архитектуры «Эльбрус», в которой аппаратная поддержка параллелизма развита гораздо сильнее, спектр вводимых компилятором оптимизаций и их эффект существенно выше.
____Процесс компиляции состоит из последовательных стадий (фаз компиляции), исполняемых в автоматическом режиме. Первой фазой работы компилятора является препроцессор. Препроцессор обеспечивает корректное подключение заголовочных файлов к исходной программе. На выходе препроцессора формируется преобразованный текст исходной программы, в котором раскрыты все макроопределения, удалены комментарии и фрагменты, на которые распространилось действие условной трансляции. На второй фазе компиляции (транслятор) происходит непосредственное преобразование алгоритма, написанного на языке высокого уровня, в алгоритм, выраженный в терминах команд микропроцессора. На фазе трансляции происходят все оптимизирующие преобразования. Кроме исходного текста, транслятор может использовать дополнительную информацию о программе (профиль исполнения и др.). На выходе транслятор формирует последовательность команд микропроцессора, представленных в виде двоичного кода. Результатом работы транслятора является файл объектного кода. Завершающая фаза – редактирование связей или линковка. Для этого компилятор вызывает штатно установленную в системе программу – редактор связей. Компилятор автоматически передаёт редактору связей соответствующие параметры, заданные в командной строке, а также те, что необходимо задать по умолчанию.
____Компилятор производит оптимизации не произвольным образом, а в составе некоторого согласованного пакета оптимизаций. Предусмотрено несколько таких пакетов или уровней оптимизаций. Каждому уровню оптимизации присвоен свой номер. Уровень с большим номером включает в себя уровень с меньшим номером. Базовый уровень имеет номер 0 и выполняется всегда. Код, полученный с использованием базового уровня оптимизаций, называется неоптимизированным.

Система программирования для платформ Эльбрус и МЦСТ-R. 0_14c1b8_48f107f4_orig

В компиляторе реализованы дополнительные возможности по повышению производительности:

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

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

OpenMP (Open Multi-Processing) – открытый стандарт для распараллеливания программ на языках С/С++. Описывает совокупность директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью. OpenMP реализует параллельные вычисления с помощью многопоточности, в которой «главный» (master) поток создаёт набор подчинённых (slave) потоков и задача распределяется между ними. Предполагается, что потоки выполняются параллельно на машине с несколькими процессорами (количество процессоров не обязательно должно быть больше или равно количеству потоков). Реализация OpenMP в оптимизирующем компиляторе базируется на интерфейсе OpenMP Version 3.0.

____Компилятор поддерживает ассемблерные вставки, т.е. строки кода на ассемблере, вставленные в программу на С/С++. Изначально формат вставка в стиле gnu подразумевает, что компилятор её внутренностей не видит. То есть вставка представляет собой "чёрный ящик", для которого описаны входящие и выходящие операнды и регистры, которые используются во вставке, но явно по операндам этого вычислить нельзя (а потому содержимое ассемблерной вставки не может быть оптимизировано компилятором). Компилятор lcc устроен так, что в большинстве случаев он «видит» содержимое вставки и может его оптимизировать.
____Наряду с ассемблерными вставками используются интринсики, т.е. мнемонические аналоги ассемблерных команд. Интринсики активно используются при написании оптимизированных фрагментов кода, в частности в библиотеке eml.
____В версии компилятора для процессора Эльбрус-2С+ реализована поддержка DSP-ядер. Для запуска программы на DSP-процессоре применяется следующая схема:

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

____Компиляция кодов, предназначенных для исполнения на архитектуре «Эльбрус» и DSP-процессоре, делается с точностью до модуля. Это означает, что модули, которые компилируются для архитектуры «Эльбрус», и модули, которые компилируются для DSP-процессора, компилируются раздельно и с разным набором опций.

Отладчик GDB.

____Отладчик GDB – переносимый символьный отладчик проекта GNU, который работает на многих UNIX-подобных системах и умеет производить отладку (поиск ошибок) многих языков программирования, включая С, C++, Free Pascal, FreeBASIC, Ada и Fortran. Компанией МЦСТ разработан символьный отладчик на базе gdb-7.2.
____Отладчик запускается из командной строки. Может использоваться для полного управления выполнением любого пользовательского процесса и для исследования его работы.
____На команды отладчика реагируют все программы. Но только те из них, которые компилировались с опциями включения отладочной информации (опция –g при компиляции), могут предоставить необходимые данные с привязкой к тексту программы для дальнейшей трассировки процесса выполнения.
____Самый простой способ запуска интерактивного сеанса отладки – при запуске отладчика указать имя программы. Кроме того, отладчику можно указать подключиться к запущенной программе. Это позволяет проанализировать ход выполнения программы, которая начинает странно себя вести после некоторого момента времени работы. Третье назначение отладчика заключается в анализе аварийно завершившейся программы для определения причин аварийного завершения.

Профилировщик Dprof.

____Профилировщик Dprof предназначен для создания профиля программы и её оптимизации с учётом данных профиля. Профилировщик контролирует выполнение программы, создаёт профиль исполнения и ведёт учёт (мониторинг) разнообразных ситуаций, возникающих в ходе работы: блокировки конвейера, исполнение или отмена операций под предикатом и т. п. Профилировщик исполняется на вычислительном устройстве под управлением штатной ОС.

Набор библиотек поддержки.

____Набор библиотек расширяет возможности быстрого и эффективного исполнения программ. В него входят библиотеки поддержки времени исполнения (glibc, libpthread, libm, libcxa) и различные популярные библиотеки (stlport, libstdc++, boost, поддержка графических форматов файлов и т.п.). Имеется библиотека поддержки стандарта MPI.

Оптимизированная математическая библиотека eml.

____Библиотека eml содержит порядка 1000 функций из области векторных и матричных вычислений, обработки сигналов и изображений, компьютерной графики. Библиотека написана с использованием ручных оптимизаций и позволяет наиболее полно использовать вычислительные ресурсы процессора.

Библиотека поддержки MPI.

____MPICH (Message Passing Interface Chameleon)– одна из самых первых разработанных библиотек стандарта MPI (Message Passing Interface – интерфейс передачи сообщений). MPI – программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу. MPI является наиболее распространённым стандартом интерфейса обмена данными в параллельном программировании, существуют его реализации для большого числа компьютерных платформ. MPI используется при разработке программного обеспечения (ПО) для кластеров и суперкомпьютеров. Основным средством коммуникации между процессами в MPI является передача сообщений друг другу.
____В настоящее время используется одна из ветвей MPICH – MPICH2 версии mpich2-1.1.1. MPICH2 – легко портируемая быстрая реализация стандарта MPI.
____Компанией МЦСТ произведена доработка библиотеки MPI, позволяющая осуществлять удалённый прямой доступ к памяти (RDMA) через Ehernet-каналы.
____Некоторые варианты ВК производства МЦСТ позволяют осуществлять межмашинные обмены данными через каналы ioLVDS. При объединении машин в кластеры через межмашинные каналы обмена ioLVDS используется драйвер виртуального Ethernet адаптера, который также поддерживает работу библиотеки MPI. Данная технология позволяет строить кластеры с возможностью межмашинных обменов на скорости порядка 10 Гбит/с и минимальными задержками.


источник

Viktor2312
RIP

Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения