Автоматический Распараллеливатель

Обзор

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

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

В настоящее время Автоматический Распараллеливатель работает только с GCC, код которого был нами модифицирован. Чтобы использовать Автоматический Распараллеливатель Вам нужно иметь:

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

Модифицированный gcc компилятор доступен как приложение для x86 Linux, так и в исходных кодах. Автоматический распараллеливающий блок является продуктом, изолированным от gcc. Он создан на основе Универсальной Библиотеки Трансляции и является нашей интеллектуальной собственностью. Автоматический распараллеливающий модуль доступен как приложение для x86 Linux.

Бета версия

Нами выпущена бета-версия Автоматического Рaспараллеливателя для платформ x86, IA64 и PowerPC, операционная система Linux. Мы провели сравнения бета версии с одним из наиболее эффективных компиляторов для платформы x86 и IA64 - icc 11.0.074, наиболее эффективным компилятором для платформы PowerPC - xlc 10.1, а также самого распространненого компилятора gcc версии 4.3.1, который также используется Автоматическим Распараллеливателем. Сравнения производились на 6 задачах из пакета SPEC/CPU2006 и на 6 задачах из пакета NAS Parallel Benchmarks 3.3. Результаты сравнения - смотри ниже.

Документация

По ссылке данной ниже вы можете скачать документацию по использованию Автоматического Распараллеливателя.

PDF userguide.pdf 0.2 MB

Исходный код

Здесь вы можете скачать изменения, которые были сделаны нами в кодах GCC 4.3.1, которые попадают под действие GNU лицензии (GNU Public License GPLv3). GCC 4.3.1 вы можете скачать с здесь.

BZ2 gcc-4.3.1-gcc-xil-1.0.0-beta1.bz2 0.2 MB

Здесь выложен архив с файлами схем для xml-файлов, используемух в gcc-xil для сохранения и восстановления представления.

TAR.BZ2 gcc-xil-1.0.0-schemes.tar.bz2 13 KB

Примеры

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

TAR.BZ2 examples.tar.bz2 3.0 KB

Как получить Автоматический Распараллеливатель

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

Имя:*

Фамилия:*

Компания:

Страна:

Электронный адрес:*

Платформа:

Комментарии:


Производительность

Ниже преведены результаты замеров для каждой из платформ.

Результаты замеров производительности для платформы X86

Результаты замеров производительности для платформы IA64

Результаты замеров производительности для платформы PowerPC

Links has been clicked:

User Guide: times
Examples: times
Gcc-xml patch: times
Gcc-xml schemes: times
counter