реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> параллельная компиляция в EW IAR
AlexandrY
сообщение Nov 7 2014, 13:24
Сообщение #16


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(juvf @ Nov 7 2014, 13:29) *
да и время компиляции на 4-х ядрах (с опцией -j) в креаторе 17 секунд, на одном ядре тотже проект в креаторе с темиже уровнями оптимизации (только без опции -j) 55 секунд.


Я думаю вам надо разобраться в собственном проекте 'в креаторе'.
Что это за креатор, сколько у вас там файлов, сколько либ, что за оптимизация, какая линковка и проч.

Хотите подробных ответов задавайте подробные вопросы.
Go to the top of the page
 
+Quote Post
juvf
сообщение Nov 7 2014, 14:04
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(AHTOXA @ Nov 7 2014, 17:35) *
Компилятор iar - это точто такая же утилита командной строки, как и компилятор gcc. Так что всё очень просто - напишите мейкфайл, который вызывает нужный вам компилятор. Кстати, где-то в форуме такие проскакивали.
Проблема будет только в том, что IDE IAR-а не умеет запускать make. Так что придётся как-то выкручиваться. Например, эклипсой.

ээээ.... ну чото костыльный метод какойто... может оно и взлетит... но думаю овчинка не стоит выделки. Если нет такой опции в иаре, то и не надо.

Цитата
Я думаю вам надо разобраться в собственном проекте 'в креаторе'.
Что это за креатор, сколько у вас там файлов, сколько либ, что за оптимизация, какая линковка и проч.
зачем разбираться в проекте? у меня нет проблемы в кривом прокте, я просто хочу распаралелить компиляцию. Вы мой проект не видели - уже окрестили что в нём что-то не так. 55 секунд на одном ядре - что тут не так? OpenOficce компилялся помню на одном ядре пару дней.
Вот допустим есть у вас проект. Вы соптимизировали исходники, настроили оптимизацию, выжили из всего этого максимум. Код получился труъ! В учебники его. Такой код компиляется к примеру 1 день/час/минуту. Какойнить нуб написал бы подобный код который компилялся бы 1,5 дня/часа/минут. Вы молодец!!! Но, можно ещё ускорить процесс компиляции, можно заставить параллельно компилировать сразу несколько исходников на разных ядрах процессора, тем самым сократив время компиляции и ваш труъ-проект скомпиляться на этом же компе например за 0,3 дня/часа/минут.

в make такая фича есть. вот и был вопрос - есть ли такая фича в иаре?

Цитата
Что это за креатор
такой

Цитата
Хотите подробных ответов задавайте подробные вопросы.
какие подобные? чем мой вопрос не устроил? Спросил колегу "Ты не помнишь как распараллелить компиляцию в gcc?", в ответ "Эээээ.... вроде в -j в мэйке". Про иар спросил на форуме... что не так?


2Xeniaкстати.... можно компилировать не то что параллельно на всех ядрах процессора, но и параллельно на нескольких компах в локальной сети. Канеш иару это точно не нужно, но запараллелить на одном камне былобы неплохо.
Go to the top of the page
 
+Quote Post
scifi
сообщение Nov 7 2014, 14:11
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(juvf @ Nov 7 2014, 17:04) *
ээээ.... ну чото костыльный метод какойто... может оно и взлетит... но думаю овчинка не стоит выделки.

В каком смысле "может взлетит"? У меня давным-давно летает. Овчинка выделки стоит. Но это зависит от овчинки, конечно, я с вашей не знаком.

Цитата(juvf @ Nov 7 2014, 17:04) *
в make такая фича есть. вот и был вопрос - есть ли такая фича в иаре?

Нет.
Go to the top of the page
 
+Quote Post
juvf
сообщение Nov 7 2014, 16:57
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(scifi @ Nov 7 2014, 19:11) *
У меня давным-давно летает.
c эклипсом? или пуре иар?
Go to the top of the page
 
+Quote Post
scifi
сообщение Nov 7 2014, 17:13
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(juvf @ Nov 7 2014, 19:57) *
c эклипсом? или пуре иар?

У меня давно сложилась привычка сборку делать через make + [некий компилятор], редактирование исходников через Source Insight (шикарный редактор, яровский - унылое гамно), отладку - тем, что удобнее (яр, кейл). Компилятор обычно gcc или яр.
Кстати, у яровского комилятора есть ключик для генерации файла зависимостей, что явно заточено под make.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 7 2014, 17:26
Сообщение #21


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(scifi @ Nov 7 2014, 22:13) *
У меня давно сложилась привычка сборку делать через make + [некий компилятор], редактирование исходников через Source Insight

У меня то же самое, но редактирование через Eclipse sm.gif
Кстати, вот же, например, тема про IAR + makefile.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 7 2014, 19:03
Сообщение #22


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(juvf @ Nov 7 2014, 16:04) *
Но, можно ещё ускорить процесс компиляции, можно заставить параллельно компилировать сразу несколько исходников на разных ядрах процессора, тем самым сократив время компиляции и ваш труъ-проект скомпиляться на этом же компе например за 0,3 дня/часа/минут.

в make такая фича есть. вот и был вопрос - есть ли такая фича в иаре?


Так крутой сжатый код с перекретно-модульной отимизацией и получается после мультифайловой компиляции.
C make это не получится. По крайней мере в эклипсе (где по видимому используется make) у IAR-а не получилось.

Так что надо думать быстрота компиляции оборачивается неоптимальностью кода в результате.

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

Скажем так: 584 файла IAR собираются в один HEX за 1 мин 30 сек без включенной оптимизации.
Сколько времени make c GCC потратит на приблизительно такое же количество файлов?

То что IAR делает многопоточную компиляцию можете увидеть в любом логе процессов.
В том же Total Commander.
Go to the top of the page
 
+Quote Post
juvf
сообщение Nov 8 2014, 11:16
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(AlexandrY @ Nov 8 2014, 00:03) *
Так что надо думать быстрота компиляции оборачивается неоптимальностью кода в результате.
бред! Скомпилируйте один и тотже проект с одинаковыми настройками проект на компе с процессором i7 и на компе с Athlon 2000+, который работает с сетевым диском через на GPRS-е...... На i7 время может составить 30 секунд, а на атлоне 30 минут. Время разное, но в результате исполняемый код получиться 1в1.

Вы вообще понимаете о чем речь в этом посте? О параллельной компиляции! Причем тут оптимизация компилятора и разбор в собственном проeкте?

спешал4ю, напальцах....

Допустим есть проект из 4-х исходных файлов. время компиляции каждого файла на отдельно взятой машине будет
file1.cpp - 17 сек
file2.cpp - 21 сек
file3.cpp - 15 сек
file4.cpp - 19 сек
время линковки 10 сек.
Если компилировать на 1 ядре общее время компиляции будет 17+21+15+19+10=72

если заставить компилятор компилить на 2-х ядрах параллельно, то одновременно будут компилироваться файлы file1.cpp и file2.cpp, затем file3.cpp и file4.cpp, после линковка. Итого общее время сборки будет 21+19+10=50 сек.
если заставить компилятор компилить на 4-х ядрах, то одновременно будут компилироваться сразу 4 файла, после линкока. Итого общее время сборки будет 21+10=31 сек. PROFIT 41 секунда
в з-х случаях разная скорость компиляции. Как скорость компиляции повлияет на результат, на конечный исполняемый файл? Как параллельная компиляция обернётся неоптимальностью кода в результате?

Цитата
Скажем так: 584 файла IAR собираются в один HEX за 1 мин 30 сек без включенной оптимизации.
Сколько времени make c GCC потратит на приблизительно такое же количество файлов?
почему вы пытаетесь сравнить скорость сборки гсс против иар? Зачем? Откройте отдельную тему IAR vs GCC мерийтесь писка.... я говорю что make может распаралелить компиляцию, а как это в иаре сделать? может ли такое иар? Да - да, нет - нет.

Цитата
То что IAR делает многопоточную компиляцию можете увидеть в любом логе процессов.
В том же Total Commander.
Нету тотала. в виндовом диспетчере задач с иаром это не видно, с make и gcc это видно.
Да и отключения ядер от иара особо не влияет на скорость: 2, 3 или 4 ядра - время одинаковое. А в диспетчере задач появляется только один процесс iccarm.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 8 2014, 17:53
Сообщение #24


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(juvf @ Nov 8 2014, 13:16) *
Допустим есть проект из 4-х исходных файлов. время компиляции каждого файла на отдельно взятой машине будет
file1.cpp - 17 сек
file2.cpp - 21 сек
file3.cpp - 15 сек
file4.cpp - 19 сек
время линковки 10 сек.
Если компилировать на 1 ядре общее время компиляции будет 17+21+15+19+10=72


Вот оно: "время линковки 10 сек."
А в IAR-е после 500 файлов линковка длится менее секунды. Поймете почему, может поймете и остальное.

Штатный менеджер процессов слишком медленный, используйте тулз сохраняющий историю процессов.
Go to the top of the page
 
+Quote Post
juvf
сообщение Nov 8 2014, 20:40
Сообщение #25


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(AlexandrY @ Nov 8 2014, 22:53) *
Вот оно: "время линковки 10 сек."
А в IAR-е после 500 файлов линковка длится менее секунды. Поймете почему, может поймете и остальное.

Штатный менеджер процессов слишком медленный, используйте тулз сохраняющий историю процессов.

да гонишь что ли? biggrin.gif я же говорю ДОПУСТИМ, я просто объяснил принцип приимущества параллельной компиляции....
ну давайте по другому.....
ДОПУСТИМ есть проект из 4-х исходных файлов. время компиляции каждого файла на отдельно взятой машине будет
file1.cpp - 17 условных интервалов времени
file2.cpp - 21
file3.cpp - 15
file4.cpp - 19
время линковки 10 условных интервалов времени.
Если компилировать на 1 ядре общее время компиляции будет 17+21+15+19+10=72 условных интервалов времени. И?
Реальный проект далеко не из 4-х файлов, и имена у них не file*.cpp. Про реальный проект я писал... 17 против 55 секунд.

а если так... ДОПУСТИМ проект из 400 файлов. время компиляции первой сотни фалов 17, второй сотни 21, 3-ей 15 и четвертой 19 условных ед. времени. линковка длиться 1 условный интервал времени (не условных ед времени, а условный интервал). .... Да и вообще, выкиньте линковку из этого примера.... при паралельной компиляции выйгриш от компиляции... линковка столько же будет идти.

Цитата
используйте тулз сохраняющий историю процессов.
да и причем процессы? почему в иаре на 2-х ядрах проект собирается 15 сек, а на 4-х ядрах 15 сек? это без всяких тулз видно.

Цитата
Поймете почему, может поймете и остальное.
Что почему? Что я должен понять, и что тут понимать остальное? Я понял только одно - вы троль!!!

Цитата
Хотите подробных ответов задавайте подробные вопросы.
какие такие? вы модер или троль? Ответьте на вопрос - что не так с моим вопросом?
Go to the top of the page
 
+Quote Post
scifi
сообщение Nov 8 2014, 21:22
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Молодой человек, у вас шнурок развязался гормон играет :-)
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Nov 8 2014, 21:40
Сообщение #27


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(juvf @ Nov 6 2014, 19:29) *
вопрос в теме. как настроить эту фичу...


кстати вопрос не совсем коррктен. есть паралельная компиляция файлов и параллельная сборка солюшена (если брать терминологию мелкомягких).

полный профит и то и то заюзать. у мелкомягких именно такой подход...


Go to the top of the page
 
+Quote Post
zloe_morkoffko
сообщение May 21 2015, 04:56
Сообщение #28





Группа: Новичок
Сообщений: 4
Регистрация: 5-02-13
Из: Санкт-Петербург
Пользователь №: 75 498



https://youtu.be/I5w3YyERbWg - "Using pararell build in IAR Embedded Workbench". Похоже что появилась возможность распараллелить компиляцию
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 21 2015, 13:32
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (zloe_morkoffko @ May 21 2015, 07:56) *
https://youtu.be/I5w3YyERbWg - "Using pararell build in IAR Embedded Workbench". Похоже что появилась возможность распараллелить компиляцию

Таки да. Работает. Подсунул иаровскому мейку V7.2.1.3693 ключик -parallel 4 (все 8 ядер не стал) - пресборка проекта в разы ускорилась. Компиляция с генерацией полных листингов и ASM файлов.
Правда весь проект пересобирать постоянно ни нафиг нет дурной привычки, но пусть будет...
Мультифайловая компиляция не использовалась. Если активировать мультифайловую, то традиционная сборка в одном потоке ломается (знаю почему, так и должно быть), а в 4 потоках, о чудо, проходит. Но нафиг-нафиг такие "чудеса"!


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
RCray
сообщение Aug 3 2015, 01:57
Сообщение #30


Частый гость
**

Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548



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

До этого я пользовался make'ом. Ну а сейчас уже получается - без надобности.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 19:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.0148 секунд с 7
ELECTRONIX ©2004-2016