Pagina 1 di 1

Intel c++ Compiler?

Inviato: giovedì 18 settembre 2008, 19:56
da simpe94
In un sito ho letto nella pubblicità della intel che il suo compilatore c++ è il più performante al mondo? È vero? ::)

Re: Intel c++ Compiler?

Inviato: giovedì 18 settembre 2008, 19:59
da Guiodic
No. E' più performante in alcuni test e meno in altri.

Re: Intel c++ Compiler?

Inviato: venerdì 19 settembre 2008, 10:15
da IppatsuMan
Dovendo dare una risposta brevissima: sì, l'Intel C++ Compiler produce codice più performante rispetto a GCC.

Nei pochi test in cui GCC è più veloce, IC è a pochi punti di distanza, mentre quando accade il contrario la differenza è più grande.

Riferimenti: C'è da dire che anche i test fatti da parte di individui apertamente pro-opensource (si veda il primo link, ad esempio), riportano ICC come il compiler più performante, quindi è difficile accusare di essere di parte i benchmark finanziati da Intel (si veda l'ultimo link). Cioè, saranno anche di parte, ma le conclusioni sono grosso modo le stesse.

Si notino però due cose:
  • GCC può compilare molti più linguaggi e gira su un numero infinitamente superiore rispetto a IC (o qualunque altro compilatore, per quanto ne so)
  • I test sopra riportati sono relativamente datati, e utilizzano al più la versione 4.1 di GCC. A partire dalla versione 4.0 gli sviluppatori hanno introdotto una nuova struttura dati, tree SSA (su cui non mi soffermerò salvo richieste esplicite), che permette di utilizzare molte più tecniche di ottimizzazione rispetto a quelle possibili nella serie di GCC 3.x. Mano a mano che passano le release queste vengono aggiunte e migliorate: è stato introdotto il supporto a OpenMP, il framework per la compilazione su multicore è migliorato e così via.
In alcuni casi usare IC può essere ragionevole. In sostanza lo svantaggio di GCC di performance sembra, per alcuni casi, destinato sempre più a ridursi, ma in ogni caso GCC offre vantaggi che IC non ha: l'essere multipiattaforma, multilinguaggio e free (as in speech).

Re: Intel c++ Compiler?

Inviato: venerdì 19 settembre 2008, 11:41
da Guiodic
Come hai fatto notare sono test un po' vecchi. Gli ultimi che ho visto (su Linux pro) mostravano un diverso equilibrio con gcc che batteva ic quasi in ogni test sugli i386 32bit mentre icc primeggiava nell'architettura a 64bit.
Peraltro nell'articolo si faceva notare che mentre le prestazioni di gcc in generale migliorano tra una release e la successiva, per icc è il contrario.

Aggiungo agli argomenti che hai esposto che quasi tutto il sw libero (ed anche quello proprietario su piattaforma gnu/linux) è scritto per gcc e può avere problemi nella compilazione con icc. Ad esempio compilare il kernel Linux con icc è un grosso problema.