juvf 10 6 ноября, 2014 Опубликовано 6 ноября, 2014 · Жалоба вопрос в теме. как настроить эту фичу в IDE EW IAR? для gcc нужно make -j4, а как в идэ иар это настроить? где в окошках прописать количество ядер? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PheeL 0 6 ноября, 2014 Опубликовано 6 ноября, 2014 · Жалоба Есть галочка "C/C++ Compiler -> Language 1 -> Multi-file Compilation", но она точно не использует все ядра и применение у неё немного другое. Не уверен, что у IAR компилятор многопоточность поддерживает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 10 6 ноября, 2014 Опубликовано 6 ноября, 2014 · Жалоба это не то Multi-file Compilation Enables multi-file compilation from the group of project files that you have selected in the workspace window. You can use this option for the entire project or for individual groups of files. All C/C++ source files in such a group are compiled together using one invocation of the compiler. This means that all files included in the selected group are compiled using the compiler options which have been set on the group or nearest higher enclosing node which has any options set. Any overriding compiler options on one or more files are ignored when building, because a group compilation must use exactly one set of options. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 35 6 ноября, 2014 Опубликовано 6 ноября, 2014 · Жалоба А зачем вообще компилировать параллельно? :) Пусть бы даже у процессора было 100 ядер. Что мешает компилировать задачи/потоки для каждого ядра последовательно? Ведь компиляция это не исполнение, требующее одновременной работы ядер, в всего лишь превращение текста на языке программирования в загрузочный код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 10 6 ноября, 2014 Опубликовано 6 ноября, 2014 · Жалоба А зачем вообще компилировать параллельно? чтоб время копиляции сократить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 6 ноября, 2014 Опубликовано 6 ноября, 2014 · Жалоба чтоб время копиляции сократить. У IAR автоматом происходит распараллеливание. Более того он даже индексацию исходников делает в параллельных процессах и делает ее постоянно в фоне. Так что не надо даже парится с какими-то опциями. Все уже турбировано. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 10 7 ноября, 2014 Опубликовано 7 ноября, 2014 · Жалоба У IAR автоматом происходит распараллеливание. Более того он даже индексацию исходников делает в параллельных процессах и делает ее постоянно в фоне. Так что не надо даже парится с какими-то опциями. Все уже турбировано. ;) Чего-то не заметно. диспетчере задачь во воремя компиляции не загружены все ядра.... в QtCreator также всё компилиться, на глаз, по очереди. Но включая распаралеливание видно как по 4 файла за раз компиляться и выхлоп компилятора бешенный... текст только мелькает, не успеваю даже прочитать даже слово.... по времени примерно в 4 раза быстрее на всех ядрах чем на 1. а от куда инфа, что в иаре всё распараллелено? пруф? может в какойнить последней версии это уже встроенно.... ps проэксперементировал ..... ноут 4-х ядерный, винда кажет 8 ядер. запускаю компиляцию на разном кол-ве ядер.... на 1 ядре время компиляции проекта 25 сек. на 2-х время 25 сек. 4 - 15 сек, 6 - 15 сек, 8 - 15 сек чегото не очен уж турбированно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 7 ноября, 2014 Опубликовано 7 ноября, 2014 · Жалоба в QtCreator также всё компилиться, на глаз, по очереди. Но включая распаралеливание видно как по 4 файла за раз компиляться и выхлоп компилятора бешенный... текст только мелькает, не успеваю даже прочитать даже слово.... по времени примерно в 4 раза быстрее на всех ядрах чем на 1. Не успеваете прочитать потому что, по видимому, пустые файлы компилируете. Уберите массовые инклуды из файлов, сделайте уровень оптимизации у IAR как у GCC и он также быстро будет компилировать. ;) У меня компиляция занимает считанные проценты процессорного времени. На кой спрашивается это распараллеливать если даже один процессор не загружается полностью? Все время уходит видимо на перемалывание файлов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 10 7 ноября, 2014 Опубликовано 7 ноября, 2014 · Жалоба Не успеваете прочитать потому что, по видимому, пустые файлы компилируете. не пустые... да даже если и пустые.... на одном ядре успеваю прочитать... тотже проект на 4-х не успеваю..... да и время компиляции на 4-х ядрах (с опцией -j) в креаторе 17 секунд, на одном ядре тотже проект в креаторе с темиже уровнями оптимизации (только без опции -j) 55 секунд. давайте не будем спорить что make -j работает или не работает в креаторе. у make есть такая опция. -j [jobs], --jobs[=jobs] Specifies the number of jobs (commands) to run simultaneously. If there is more than one -j option, the last one is effective. If the -j option is given without an argument, make will not limit the number of jobs that can run simultaneously. вопрос - есть ли у иара такая опция? я не хочу чтоб иар компилял также быстро как gcc, я хочу чтоб иар параллельно компилял задействовав все ядра процессора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 7 ноября, 2014 Опубликовано 7 ноября, 2014 · Жалоба я не хочу чтоб иар компилял также быстро как gcc, я хочу чтоб иар параллельно компилял задействовав все ядра процессора. Напишите makefile для иара, и будет параллельно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 3 7 ноября, 2014 Опубликовано 7 ноября, 2014 · Жалоба Думается что на ваше ХОЧУ ... чтоб иар параллельно компилил задействовав все ядра процессора. IARу нужно "пояснять" как это делать. И порой это проблема пользования IAR на процах с несколькими ядрами. Чаще под много ядерные процы пишут и отлаживаются на ОС, нежели на компиляторах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 35 7 ноября, 2014 Опубликовано 7 ноября, 2014 · Жалоба Интересно, если IAR станет параллельно несколько модулей компилить, то варнинги в перемешку будут сыпаться? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 10 7 ноября, 2014 Опубликовано 7 ноября, 2014 · Жалоба Думается что на ваше ХОЧУ ... чтоб иар параллельно компилил задействовав все ядра процессора. IARу нужно "пояснять" как это делать. почему такая агрессия? в make 100 лет уж как распараллелили компиляцию. и я им ни чего не "пояснял". у иара есть такое или нет? И порой это проблема пользования IAR на процах с несколькими ядрами. Чаще под много ядерные процы пишут и отлаживаются на ОС, нежели на компиляторах.чего? ........ хотите сказать что это ос должна распаралелить компиляцию? возможно и так. но если в иар одном потоке компилит все исходники поочереди, то врятли ос чегото распаралелит. если компилить исходники в разных потоках, то тут ос может рапаралелить..... имхо. но кабы не было в make это включается и отключается. и это заметно. в иаре.... как-то не заметно. вот я и спросил - как это включается в иаре? что тут криминального? Напишите makefile для иара, и будет параллельно.а разве у иара есть мэйкфайл? на сколько мне известно makefile — сценарий сборки для процедуры make, являющейся неотъемлемой частью любого GCC-тулчейна. ps ну что за народ? ну если кто знает что ТАКОЕ есть а иаре, скажите - "нужно галочку там то поставить". Если кто-то ТОЧНО знает что такого нет, скажите - такого нет. Ну почему нужно на пустом месте холивар устроить, нужно ТС показать что ТС есть чмо, раз такие вопросы задает, а мы, "модераторы" и атцы форума есть боги. И что ТС нисшая форма. Вот по теме не знают.... но надо что-то же ляпнуть.... Интересно, если IAR станет параллельно несколько модулей компилить, то варнинги в перемешку будут сыпаться? :) ну это не моя фантастическая идея. в gcc же это есть. был бы я автором компилятора, а бы копилировал один исходник.... и собирал бы весь вывод в std::string. после окончания компиляции захавтывал бы мютекс на cout, делал бы вывод и освобождал бы мютекс. варнинги и ошибки высапятся вперемешку... но сгруперованы от каждого файла вместе. это имхо. как это делают в make - не знаю, но они это делают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 7 ноября, 2014 Опубликовано 7 ноября, 2014 · Жалоба а разве у иара есть мэйкфайл? на сколько мне известно makefile — сценарий сборки для процедуры make, являющейся неотъемлемой частью любого GCC-тулчейна. А кто мешает сделать make неотъемлемой частью яровского тулчейна? :-) Опять же появится гибкость в процессе сборки, что зачастую полезно. Кстати, я бы на месте этих яров не изобретал велосипед, а просто незаметно вызывал бы make. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 7 ноября, 2014 Опубликовано 7 ноября, 2014 · Жалоба а разве у иара есть мэйкфайл? на сколько мне известно makefile — сценарий сборки для процедуры make, являющейся неотъемлемой частью любого GCC-тулчейна. Компилятор iar - это точто такая же утилита командной строки, как и компилятор gcc. Так что всё очень просто - напишите мейкфайл, который вызывает нужный вам компилятор. Кстати, где-то в форуме такие проскакивали. Проблема будет только в том, что IDE IAR-а не умеет запускать make. Так что придётся как-то выкручиваться. Например, эклипсой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться