+7 (499) 220-12-34
ICQ234443   ICQ23433

Товаров: 0 шт.
На сумму: $0
Курс(нал.): 62.00
Курс(безнал.): 66.00
Продукция Rover
Ноутбуки Ноутбуки-распродажа Аксессуары для ноутбуков Комплектующие LCD мониторы LCD телевизоры MP3 плейеры Кпк, смартфоны Цифровые фотоаппараты Проекторы Плазменные панели
Информация
Выбери себе подарок Товары в кредит! Товары со скидкой Цветовые решения Trade-In Хиты продаж Новинки Обзоры
Ноутбуки
ACER - Ноутбуки ASUS - Ноутбуки Compaq Ноутбуки DELL Fujitsu-Siemens Geronimo - Ноутбуки LG -Нутбуки MSI Samsung Ноутбуки SONY - ноутбуки SONY - США Toshiba - Ноутбуки Ноутбуки BLISS Ноутбуки IRu Ноутбуки Maxselect
Периферия
LCD компьютеры Внешние устройства Кабели Компьютеры ПК-комплектующие Программы Расходники Серверы Сетевые устройства Сумки для ноутбуков






 
RoverMarket :: Все новости :: Проект по добавлению в GCC поддержки распараллеливания процесса компиляции

Проект по добавлению в GCC поддержки распараллеливания процесса компиляции

   
 

Проект по добавлению в GCC поддержки распараллеливания процесса компиляции

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

На начальном этапе реализован вынос в отдельные потоки выполнения межпроцедурных оптимизаций, которые циклично вызываются для каждой функции и хорошо поддаются распаралелливанию. Для тестирования подготовлена отдельная распараллеливающая ветка GCC, для задания числа потоков в которой предложен новый параметр »--param=num-threads=N». В отдельные потоки вынесены операции GIMPLE, отвечающие за независящие от оборудования оптимизации, оценивающие взаимодействие функций между собой.

После этого планируется реализовать распараллеливание внутрипроцедурных оптимизаций (IPA), применяемых к коду внутри функции, независимо от особенностей вызова. На следующем этапе в отдельные потоки также планируется вынести межпроцедурные RTL-оптимизации, учитывающие особенности аппаратной платформы. Ограничивающим звеном пока является сборщик мусора, в который добавлена глобальная блокировка, отключающая операции сборки мусора во время работы в многопоточном режиме (в будущем сборщик мусора будет адаптирован для многопоточного выполнения GCC).

Тесты на системе с CPU Intel Core i5–8250U с 4 физическими ядрами и 8 виртуальными (Hyperthreading) показали снижение времени выполнения оптимизаций Intra Procedural GIMPLE с 7 до 4 секунд при запуске 2 потоков и до 3 секунд при запуске 4 потоков, т.е. Для оценки изменения производительности подготовлен тестовый набор, осуществляющий сборку файла gimple-match.c, включающего более 100 тысяч строк кода и 1700 функций. Тесты также показали, что использование виртуальных ядер при Hyperthreading не приводит к росту производительности. достигнуто увеличение скорости рассматриваемого этапа сборки в 1.72 и 2.52 раза, соответственно.

Ориентировочно после распараллеливания RTL общее время сборки сократится в 1.61 раза. Общее время сборки сократилось приблизительно на 10%, но по прогнозам распараллеливаие RTL-оптимизаций позволит добиться более ощутимых результатов, так как данная стадия занимает при компиляции существенно больше времени. После этого еще на 5–10% можно будет сократить время сборки за счёт распараллеливания оптимизаций IPA.

num=51491 Источник: http://www.opennet.ru/opennews/art.shtml?

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

На начальном этапе реализован вынос в отдельные потоки выполнения межпроцедурных оптимизаций, которые циклично вызываются для каждой функции и хорошо поддаются распаралелливанию. Для тестирования подготовлена отдельная распараллеливающая ветка GCC, для задания числа потоков в которой предложен новый параметр »--param=num-threads=N». В отдельные потоки вынесены операции GIMPLE, отвечающие за независящие от оборудования оптимизации, оценивающие взаимодействие функций между собой.

После этого планируется реализовать распараллеливание внутрипроцедурных оптимизаций (IPA), применяемых к коду внутри функции, независимо от особенностей вызова. На следующем этапе в отдельные потоки также планируется вынести межпроцедурные RTL-оптимизации, учитывающие особенности аппаратной платформы. Ограничивающим звеном пока является сборщик мусора, в который добавлена глобальная блокировка, отключающая операции сборки мусора во время работы в многопоточном режиме (в будущем сборщик мусора будет адаптирован для многопоточного выполнения GCC).

Тесты на системе с CPU Intel Core i5–8250U с 4 физическими ядрами и 8 виртуальными (Hyperthreading) показали снижение времени выполнения оптимизаций Intra Procedural GIMPLE с 7 до 4 секунд при запуске 2 потоков и до 3 секунд при запуске 4 потоков, т.е. Для оценки изменения производительности подготовлен тестовый набор, осуществляющий сборку файла gimple-match.c, включающего более 100 тысяч строк кода и 1700 функций. Тесты также показали, что использование виртуальных ядер при Hyperthreading не приводит к росту производительности. достигнуто увеличение скорости рассматриваемого этапа сборки в 1.72 и 2.52 раза, соответственно.

Ориентировочно после распараллеливания RTL общее время сборки сократится в 1.61 раза. Общее время сборки сократилось приблизительно на 10%, но по прогнозам распараллеливаие RTL-оптимизаций позволит добиться более ощутимых результатов, так как данная стадия занимает при компиляции существенно больше времени. После этого еще на 5–10% можно будет сократить время сборки за счёт распараллеливания оптимизаций IPA.

num=51491 Источник: http://www.opennet.ru/opennews/art.shtml?


Дата публикации: 25.09.2019


Ещё новости


  08.10.2019  Microsoft будет делать смартфоны на Android

Компания Microsoft, наконец, продемонстрировала свой складной смартфон-книжку с двумя экранами публике. На прошлой неделе произошло то, чего многие ждали ещё во времена Lumia 950, а то и раньше. Многи...

  03.10.2019  Рекорд Cinebench R15 среди одноядерных процессоров покорился Intel Xeon L3014 на частоте 5.9 ГГц

Теперь «одноядерный царь горы» демонстрирует всем счёт в 168 баллов. Этот одноядерный процессор семейства Wolfdale был разогнан при помощи жидкого азота до 5906 МГц, этого вполне хватило для обновлени...

  15.10.2019  5 возможностей Google Drive, которыми вы будете пользоваться

Именно поэтому почти каждый сервис поискового гиганта, помимо основного набора возможностей, имеет ещё широкий спектр вспомогательных. Комплексный подход — это про Google. Другое дело, что далек...

  16.09.2019  Поддержка веб-интерфейса YouTube для телевизоров скоро будет прекращена

Во всяком случае, YouTube предупреждает посетителей соответствующего портала, что поддержка версии «скоро будет прекращена». Тем, кто привык смотреть YouTube с помощью веб-интерфейса, оптимизированног...

  02.10.2019  Сможет ли жидкий алюминий остановить пулю: есть пробитие?

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



Все новости
 
 
© 2005-2015 RoverMarket - ноутбуки, КПК, проекторы