LINUX.ORG.RU

icc vs. gcc


0

0

За популярными нынче спорами, какой компилятор круче, GNU C/C++ или Intel C++, никто (по-моему) не заметил, что об этом думают в самой компании Intel. В статье, найденной на сайте Intel, написано, что для процессора Pentium4 компилятор Intel C++ 7.0 быстрее GNU C++ 3.2 всего на 10% (а вовсе НЕ на 30).

>>> Intel C++ Compiler 7.0 and GNU* C++ Compiler 3.2 Performance on IA-32 and Itanium Architecture

★★

Проверено: green

А вот степень ебанутости - это и есть наука. Психология там, социология. Малиновые штаны. Анонимы с 6-й палаты. Зато индикатор дрыгается - мозг у юзера занят - жизнь продолжается.

igor00
()

Прикол в том, что P4 2GHz быстрей Итаниума 2 1GHz почти во всех тестах кроме Eon и ServerMB. И самое большое отставание GCC около 50% (на итанике) было на Eon (Computer Visualization Benchmark from SPEC-CPU2000)(единственном плюсовом тесте).

Aleksey_by
()

Народ, что-то вы серьезно наехали Интеловский компилятор.

1) Он генерит более быстрый код и имеет больше возможностей по оптимизации. ОСБЕННО для IA64 !!!!
2) Он не совместим на 100% с gcc, посему гарантирована возня с компиляцией на большей части open source софта.
3) Iсс не работает с другими архитектурами

Вот некоторые результаты выполнения ./opennsl speed
на Itnaium 4x900 с разной компиляцией.


Для gcc-3.22:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md5 4784.14k 15823.40k 41931.86k 71702.53k 90382.34k
sha1 4924.75k 14467.14k 33852.07k 50989.06k 59785.22k
des cbc 15112.72k 15700.46k 15897.71k 15933.44k 15916.78k
des ede3 5812.26k 5903.45k 5929.05k 5935.45k 5931.81k
sign verify sign/s verify/s
rsa 1024 bits 0.0026s 0.0001s 387.2 7295.4
rsa 2048 bits 0.0117s 0.0003s 85.6 3019.4

Для icc:

md5 5812.69k 18318.57k 48471.81k 82724.18k 104019.29k
sha1 6640.79k 19910.42k 49678.42k 78912.85k 95139.16k
des cbc 16335.64k 18196.82k 18730.33k 18868.57k 18904.41k
des ede3 6719.70k 7038.40k 7122.09k 7143.08k 7143.42k
sign verify sign/s verify/s
rsa 1024 bits 0.0022s 0.0001s 460.5 8624.2
rsa 2048 bits 0.0105s 0.0003s 95.4 3396.9

eda
()

> Прикол в том, что P4 2GHz быстрей Итаниума 2 1GHz почти во всех тестах... у P4 суперскалярная архитектура, аппаратно распараллеливающая код. а у Itanium 2 архитектура EPIC. Скорость работы Itanium на половину зависит от того как компилятор распараллелит код. Правильно скомпилированные тесты показывают, что Itanium рвет P4 как тузик грелку. Например экспонента на Itanium 2 вычисляется за 6 тактов. На P4 такого у вас никогда не будет.

anonymous
()

Спасибо за помощь по поводу old glibc
Дело немного не в том :)
Как gcc'е скормить другие либы я фирштейн :)
Дело в том, что там бинарник, который перелинковывает свои (другие) либы смотря на eviroment
То есть мне надо самому и полностью (простому юзеру, не руту) переехать под старый glibc и с чтобы с ним можно было что-то запустить.
Потому как даже cat перестает работать из-за того, что собран с поддержкой более свежей glibc.
Интересует именно вариант с жизнью двух glibc на одной тачке.

Есть подозрение, что это можно сделать с помощью JAIL.
Кто-нибудь пробовал?

anonymous
()

> "последний VC ближе к стандарту чем GCC и ICC."

Ну да, VC7.1 сбивает без ошибок, тока почему-то две недели до этого ошибки у них шли 10%. К тому же без проблем могли "оптимищировать" свой компилятор под этот тест - очень уж на это похоже.

К тому же стандарт несколько расплывчат и за него надо платить толпу бабла, и много ли людей держали в руках стандарт? А насчет всяких директив препроцессора под конкретный компилятор - это уже говорит о "чистоте и близости" кода и компилятора к стандарту - в идеале никаких директив для компилятора в коде вообще не должно быть (если по стандарту).

Spectr ★★★
()
Ответ на: OS от Ikonta_521

>2 Dselect >>Solaris -- rulez forever! >>Debian GNU/Linux -- тоже весьма неплох >А AIX как? ;)

А вот как с минимальными усилиями на ICC или GCC перекомпилять мою прогу , чтобы она смогла заюзать одновременно более одного процессора?

AlexK

anonymous
()
Ответ на: комментарий от anonymous

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

Spectr ★★★
()

>>за него надо платить толпу бабла
типа ЭТО толпа ?!

anonymous
()
Ответ на: комментарий от Spectr

Ok. Уточню вопрос: можно ли надеятся на появление в стандартных ICC и GCC расширений (2-5 прагм в дополнение к стандартному C) для организации многопоточности. Те библиотеки, которые я видел были большими и убогими.

AlexK

anonymous
()
Ответ на: комментарий от Spectr

>Ну да, VC7.1 сбивает без ошибок, тока почему-то две недели до этого >ошибки у них шли 10%. К тому же без проблем могли "оптимищировать" >свой компилятор под этот тест - очень уж на это похоже. Они точно друг под друга подстраиваются, но для программиста это только плюс. Что нужно программисту от компилятора? Чтобы совремменные библиотеки типа boost, loki (не говоря уже про STLPort) работали без проблем. VC это обеспечивает, к чему и остальным надо стремится.

>К тому же стандарт несколько расплывчат и за него надо платить толпу бабла, и много ли людей держали в руках стандарт?

Здесь есть стандарты C и С++ http://anatolix.naumen.ru/cppbooks.htm

anonymous
()

GCC 3.3.x == ANSI/ISO C/C++.

anonymous
()

Небольшой комментарий о мультиплатформенности gcc...
Я конечно не хочу вставать в позу, и говорить что я большой специалист по аппаратной оптимизации, но
icc делает gcc раза в 2 на IA-64(Itanium, Itanium-2)
А компаковский компилятор для Альф показывает не такие разительные результаты, но стабильно процентов на 10-20 быстрее gcc...
К тому же gcc это не только C. Как я понимаю gcc расшифорвывается как GNU Compiler Collection. (Кто не верит сходите на gcc.gnu.org) Так вот, гнутый компилятор фортрана проигрывает ifc(Intel fortran compiler) очень сильно на всеми любимой и популярной IA-32 платформе...
Хотя никаких выводов делать не хочу... Там, где народ заплатил денежки за ИСС я пользую ИЦЦ, в прочих случаях ГЦЦ меня не сильно напрягает
Malfet

anonymous
()
Ответ на: комментарий от anonymous

> Ok. Уточню вопрос: можно ли надеятся на появление в стандартных ICC и GCC расширений (2-5 прагм в дополнение к стандартному C) для организации многопоточности.

в icc #pragma omp ... имеют место быть уже как минимум с 5 версии

sS ★★★★★
()

openwatcom? Хе хе хе..

HOST PLATFORMS
# DOS
# OS/2 Warp
# Windows 3.1
# Windows 95/98/Me
# Windows NT/2000/XP 


TARGET PLATFORMS:
# 16 and 32-bit DOS
# 16 and 32-bit OS/2
# Windows 3.1
# Win32s
# Windows 95/98/Me
# Windows NT/2000/XP
# Novell NLM

walrus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.