Intel-kääntäjät. Miksi uusia kääntäjiä tarvittiin?
Intel C++- ja Fortran-kääntäjät ja MKL-kirjasto
Linuxille tarkoitettujen standardien GNU-kääntäjien lisäksi NIVC-laskentakompleksin klustereihin on asennettu Intel C++- ja Fortran-kääntäjät. Tällä hetkellä (vuoden 2006 alusta) kääntäjien versio 9.1 on asennettu kaikkiin klustereihin. Tämä sivu on omistettu kuvaamaan näiden kääntäjien tärkeimmät valinnat ja asetukset sekä niiden tärkeimmät erot GNU-kääntäjiin verrattuna. Sivu on suunnattu pääasiassa MSU Research Computing Center -klusterien käyttäjille, mutta voi olla hyödyllinen myös muille venäjänkielisille käyttäjille. Tässä ei käsitellä IA-64-alustan kokoamiseen liittyviä kysymyksiä.
Lisäksi Intel-kirjasto on asennettu kaikkiin klustereihin Ytimen matemaattinen kirjasto(MKL) versio 8.0.2. Kirjasto sijaitsee /usr/mkl-hakemistossa. Huomaa, että alihakemistot 32, 64 ja em64t ovat saatavilla lib-hakemistossa. Ant-klusterissa on käytettävä kirjastoja em64t-alihakemistosta ja muissa klustereissa - alihakemistosta 32. Kaikki tarvittava dokumentaatio ja esimerkit löytyvät hakemistosta /usr/mkl/doc.
Miksi uusia kääntäjiä tarvittiin?
Uusien kääntäjien tarve syntyi lähinnä a) ohjelmoinnin tukemiseksi Fortran 90:ssä ja myös b) Fortran-ohjelmien tehokkaampaan optimointiin kuin mitä tarjoaa g77-kääntäjä, joka käyttää käännöstä C:ksi ja sitten kääntämistä gcc:n avulla.
Myös PGI (Portland Group) -kääntäjät täyttävät nämä vaatimukset, mutta kehittäjäyritys kieltäytyi toimittamasta niitä Venäjälle.
Kuinka käyttää?
Intel-kääntäjät kutsutaan komentojen avulla icc(C tai C++), icpc(C++) ja ifort(Fortran 77/90). MPI-ohjelmien kääntämiseen ja kokoamiseen tarkoitetut mpicc-, mpiCC- ja mpif77-komennot on myös määritetty käyttämään Intelin kääntäjiä.
On myös mahdollista käyttää GNU-kääntäjiä käyttämällä mpigcc-, mpig++- ja mpig77-komentoja (Fortran 90:tä ei tueta).
Syötä tiedostot
Oletuksena tiedostot, joilla on tunniste .cpp Ja .cxx katsotaan lähdeteksteiksi C++-kielellä, tiedostot, joiden tunniste on .c- C-lähdekoodi, ja icpc-kääntäjä kääntää myös .c-tiedostot C++-lähdekoodiksi.
Tiedostot laajennuksilla .f, .ftn Ja .for tunnistetaan lähdeteksteiksi Fotran-kielellä, kiinteällä merkintämuodolla, ja tiedostot .fpp Ja .F lisäksi läpäissyt Fortran-kielen esiprosessorin. Tiedostot, joissa on laajennus .f90 katsotaan Fortran 90/95 lähdeteksteiksi vapaamuotoisilla merkinnöillä. Voit nimenomaisesti määrittää kiinteän tai vapaan merkintämuodon Fortran-ohjelmille vaihtoehtojen avulla -FI Ja -FR vastaavasti.
Tiedostot, joissa on laajennus .s tunnustettu konekielikoodiksi IA-32:lle.
Intel-kääntäjän ominaisuudet
Tässä esittelemme Intel-kääntäjien ominaisuudet, jotka kehittäjä on ilmoittanut käyttöohjeessa ja joihinkin kommentteihimme.
- Merkittävä optimointi
Ilmeisesti tämä tarkoittaa koodin optimointia korkealle tasolle, ts. ensinnäkin erilaisia silmukkamuunnoksia, joita lähes kaikki kääntäjät tekevät suuremmalla tai vähemmän menestyksellä - Liukulukuoptimointi
Ilmeisesti tämä tarkoittaa ennen kaikkea laitteistotasolla toteutettujen komentojen maksimaalista käyttöä - Proseduurienväliset optimoinnit
nuo. koko ohjelman globaali optimointi, toisin kuin tavallinen optimointi, joka vaikuttaa vain tiettyjen toimintojen koodiin - Profiilipohjainen optimointi
nuo. kyky suorittaa ohjelmaa testitilassa, kerätä tietoja ajasta, joka kuluu tiettyjen koodinpätkien välittämiseen usein käytettyjen funktioiden sisällä, ja käyttää näitä tietoja sitten optimointiin - Tuki SSE-käskysarjalle Pentium III -suorittimissa
huomautus: laskentatehtävissä SSE2-komennot ovat kiinnostavampia, ts. vektorikomennot yli 64-bittisten reaalilukujen, mutta niitä tuetaan vain Pentium 4 -prosessoreissa, joita meillä ei vielä ole käytössämme - Automaattinen vektorointi
nuo. jälleen käyttämällä SSE- ja SSE2-komentoja, jotka kääntäjä lisää automaattisesti - OpenMP-tuki ohjelmointiin SMP-järjestelmissä
huomautus: klusterissa on suositeltavaa käyttää ensisijaisesti MPI-liitäntää; OpenMP:n laajaa käyttöä klusterissa ei odoteta, eikä tällaisia kokeita ole vielä tehty; mutta luultavasti on järkevää käyttää kirjastoja (BLAS jne.), jotka on rinnakkaista jaettua muistia varten. - Datan esihaku
nuo. Ilmeisesti esilatauskomentojen käyttö muistista tietovälimuistiin, joita tarvitaan jonkin ajan kuluttua - "Lähetys" koodi eri prosessoreille
nuo. kyky luoda koodia eri prosessoreille yhdessä suoritettavassa tiedostossa, jonka avulla voit hyödyntää uusimmat prosessorit saavuttaakseen niissä parhaan suorituskyvyn säilyttäen samalla ohjelmien binaariyhteensopivuuden aikaisempien prosessorien kanssa; Meidän klusterissamme tällä ei ole vielä merkitystä, koska käytetään vain Pentium III -prosessoreita, eikä klusteriin koottuja ohjelmia ole tarkoitus siirtää ja suorittaa muilla koneilla
Kääntäjän perusasetukset
Mielenkiintoisimpia ovat tietysti koodin optimointivaihtoehdot. Useimmat vaihtoehdot ovat yhteisiä C++- ja Fortran-kääntäjille. Lisää Yksityiskohtainen kuvaus vaihtoehdot englanninkielisissä käyttöoppaissa.
Optimointitasot | |
---|---|
Vaihtoehto | Kuvaus |
-O0 | Poistaa optimoinnin käytöstä |
-O1 tai -O2 | Perusoptimointi nopeudelle. Kirjastotoimintojen rivin lisäys on poistettu käytöstä. C++-kääntäjälle nämä valinnat tarjoavat saman optimoinnin; Fortran-kääntäjälle vaihtoehto -O2 on parempi, koska sisältää myös pyöräilyn edistämisen. |
-O3 | Tehokkaammat optimoinnit, mukaan lukien silmukkamuunnokset, tietojen esihaku ja OpenMP:n käyttö. Jotkut ohjelmat eivät välttämättä takaa parempaa suorituskykyä verrattuna -O2. On järkevää käyttää yhdessä vektorointivaihtoehtojen kanssa -xK Ja -xW. |
-purkaa [n] | Mahdollistaa silmukan purkamisen jopa n kertaa. |
Optimoinnit tietylle prosessorille | |
Vaihtoehto | Kuvaus |
-tpp6 | Optimointi Penitum Pro-, Pentium II- ja Pentium III -prosessoreille |
-tpp7 | Optimointi Penitum 4 -prosessoreille (tämä vaihtoehto on oletuksena käytössä IA-32-kääntäjässä) |
-xM | Koodin luominen käyttämällä Pentium MMX-, Pentium II- ja myöhemmille prosessoreille ominaisia MMX-laajennuksia |
-xK | Koodin luominen käyttämällä Pentium III -prosessoreille ominaisia SSE-laajennuksia |
-xW | Koodin luominen käyttämällä Pentium 4 -prosessoreille ominaisia SSE2-laajennuksia |
Proseduurien välinen optimointi | |
-ip | Proseduurien välinen optimointi on käytössä yhdessä tiedostossa. Jos määrität vaihtoehdon -ip_no_inlineing, funktioiden lisäykset poistetaan käytöstä. |
-ipo | Mahdollistaa prosessien välisen optimoinnin eri tiedostojen välillä |
Optimoinnit profiilien avulla | |
-prof_gen | Luodaan "profilointi"-koodi, jota käytetään profilointiin, ts. keräämällä tietoja ohjelman tiettyjen paikkojen ohitustiheydestä |
-runsas | Optimointi tehdään profilointivaiheessa saatujen tietojen perusteella. On järkevää käyttää sitä yhdessä prosessienvälisen optimointivaihtoehdon kanssa -ipo. |
Rinnakkaisu SMP-järjestelmille | |
-openmp | Ottaa käyttöön OpenMP 2.0 -standardin tuen |
- rinnakkain | Automaattinen silmukan rinnastus on käytössä |
Esitys
Ixbt.com-palvelimella julkaistujen SPEC CPU2000 -testien tulosten mukaan Intelin kääntäjien versio 6.0 olivat lähes yleisesti parempia verrattuna gcc-kääntäjien versioihin 2.95.3, 2.96 ja 3.1 sekä PGI-versioon 4.0.2. Nämä testit suoritettiin vuonna 2002 tietokoneella, jossa oli Pentium 4/1,7 GHz -prosessori ja RedHat Linux 7.3.
Polyhedronin suorittamien testien mukaan Intel Fortran -kääntäjän versio 7.0 oli lähes yleisesti parempi kuin muut Fortran 77 -kääntäjät Linuxille (Absoft, GNU, Lahey, NAG, NAS, PGI). Vain joissakin testeissä Intel-kääntäjä on hieman huonompi kuin Absoft-, NAG- ja Lahey-kääntäjät. Nämä testit suoritettiin tietokoneella, jossa oli Pentium 4/1,8 GHz -prosessori ja Mandrake Linux 8.1.
Intel-kääntäjät versio 9.1 ovat myös parempia kuin gcc-kääntäjät, ja niiden suorituskyky on verrattavissa Absoftiin, PathScaleen ja PGI:hen.
Olemme kiitollisia käyttäjille ja lukijoille, jotka lähettävät meille tietoja kääntäjän valinnan (GCC tai Intel) ja optimointivaihtoehtojen vaikutuksesta työn nopeuteen heidän tosielämän ongelmissaan.
Kirjastot
C-kielen kääntäjä käyttää ajonaikaista kirjastoa, joka on kehitetty GNU-projektissa ( libc.a).
Intel C++ -kääntäjän mukana toimitetaan seuraavat kirjastot:
- libcprts.a- Dinkumwaren kehittämä ajonaikainen C++-kielikirjasto.
- libcxa.a- ylimääräinen ajonaikainen kirjasto Intelin C++-kehitykseen.
- libimf.a- Intelin kehittämä matemaattisten funktioiden kirjasto, joka sisältää optimoidut ja erittäin tarkat trigonometristen, hyperbolisten, eksponentiaalisten, erityisten, monimutkaisten ja muiden funktioiden toteutukset (katso lisätietoja funktioluettelosta).
- libirc.a- Ajonaikainen tuki profiloinnille (PGO) ja koodin lähettämiselle prosessorista riippuen (katso yllä).
- libguide.a- OpenMP-toteutus.
Tämä lista sisältää staattisia kirjastoja, mutta useimmille niistä on myös dynaamisia, ts. käynnistyksen aikana kytketyt vaihtoehdot ( .niin).
Seuraavat kirjastot toimitetaan Fortran-kääntäjän mukana: libCEPCF90.a, libIEPCF90.a, libintrins.a, libF90.a, käytetään myös matemaattisten funktioiden kirjastoa libimf.a.
Suoritettavan tiedoston rakentaminen
Kirjastot voidaan yhdistää staattisesti (koonnin aikana) tai dynaamisesti (ohjelman käynnistyksen aikana). Dynaamisen lähestymistavan avulla voit pienentää suoritettavan tiedoston kokoa ja jakaa saman kopion kirjastosta muistissa, mutta tätä varten sinun on asennettava täydellinen sarja dynaamisia kirjastoja, joita käytetään jokaiseen solmuun, jossa ohjelmat käynnistetään. .
Jos siis asensit Intel-kääntäjän Linux-koneellesi ja haluat suorittaa käännetyt suoritettavat tiedostot muissa koneissa, sinun on joko käytettävä staattista koontiversiota (mikä on helpompaa) tai kopioida Intelin dynaamiset kirjastot näihin koneisiin (yleensä hakemistoon, kuten /opt/intel /compiler70/ia32/lib) johonkin /etc/ld.so.conf-tiedostossa luetelluista hakemistoista, ja varmista myös, että näihin koneisiin on asennettu sama joukko GNU/Linuxin dynaamisia kirjastoja. .
Oletuksena kaikki Intelin kehityskirjastot (paitsi libcxa.so) linkitetään staattisesti ja kaikki Linux-järjestelmäkirjastot ja GNU-kirjastot linkitetään dynaamisesti. Vaihtoehtoa käyttämällä -staattinen voit pakottaa kerääjän (linkkieditorin) yhdistämään kaikki kirjastot staattisesti (mikä lisää äänenvoimakkuutta). suoritettava tiedosto) ja käyttämällä vaihtoehtoa -i_dynaaminen Voit linkittää dynaamisesti kaikki Intelin kehityskirjastot.
Kun yhdistät lisäkirjastoja käyttämällä näkymävaihtoehtoa -kirjasto saatat joutua käyttämään vaihtoehtoa -Lhakemisto määrittääksesi polun, jossa kirjastot sijaitsevat.
Vaihtoehtojen käyttäminen -Bstaattinen Ja -Bdynaaminen voit erikseen määrittää dynaamisen tai staattisen yhteyden jokaiselle kohdassa määritetylle kirjastolle komentorivi.
Vaihtoehtoa käyttämällä -c suoritettavan tiedoston kokoonpano on poistettu käytöstä ja vain käännös suoritetaan (objektimoduulin luominen).
Moduulien jakaminen Fortranissa ja C:ssä
Jotta voit jakaa Fortranilla ja C:llä kirjoitettuja moduuleja, sinun on sovittava proseduurien nimeämisestä objektimoduuleissa, parametrien välittämisestä ja pääsystä mahdollisiin globaaleihin muuttujiin.
Oletusarvoisesti Intel Fortran -kääntäjä muuntaa toimintojen nimet pieniksi kirjaimille ja lisää alaviivan nimen loppuun. C-kääntäjä ei koskaan muuta funktioiden nimiä. Jos siis haluamme kutsua C-kielellä toteutettua funktiota tai proseduuria FNNAME Fortran-moduulista, niin C-moduulissa sen pitäisi olla nimeltään fnname_.
Fortran-kääntäjä tukee vaihtoehtoa -nus [tiedostonimi], jonka avulla voit poistaa käytöstä alaviivojen lisäämisen sisäisiin toimintojen nimiin. Jos tiedostonimi on määritetty, tämä tehdään vain määritetyssä tiedostossa lueteltujen toimintojen nimille.
Oletusarvoisesti Fortranissa parametrit välitetään viitteellä ja C:ssä ne aina arvon mukaan. Siksi, kun kutsumme Fortran-proseduuria C-moduulista, meidän on välitettävä osoittimet vastaaviin muuttujiin, jotka sisältävät todellisten parametrien arvot parametreina. Kun kirjoitetaan C:ssä funktiota, joka on kutsuttava Fortran-moduulista, meidän on kuvattava muodolliset parametrit osoittimina vastaaviin tyyppeihin.
C-moduuleissa on mahdollista käyttää Fortran-moduulien sisällä määriteltyjä COMMON-lohkoja (katso lisätietoja kohdasta Intel Fortran Compiler User's Guide, luku C:n ja Fortranin sekoittaminen).
Intelin ja GCC:n kääntäjien jakaminen
Intel C++ -kääntäjän tuottamat C-objektimoduulit ovat yhteensopivia GCC-kääntäjän ja GNU C -kirjaston tuottamien moduulien kanssa. Näin ollen näitä moduuleja voidaan käyttää yhdessä yhdessä ohjelmassa, joka on käännetty icc- tai gcc-komennoilla, mutta on suositeltavaa käyttää icc:tä Intel-kirjastojen sisällyttämiseen oikein.
Intel-kääntäjä tukee useita epästandardeja C-kielen laajennuksia, joita GNU-projekti käyttää ja joita GCC-kääntäjä tukee (mutta ei kaikkia, katso lisätietoja täältä).
Käyttöohje ei kerro mitään objektimoduulien yhteensopivuudesta C++- ja Fortran-kielillä; ilmeisesti sitä ei tueta.
Standardien tuki
Intel C++ Compiler 7.0 Linuxille tukee ANSI/ISO C -kielistandardia (ISO/IEC 9899/1990). On mahdollista varmistaa tiukka yhteensopivuus ANSI C -standardin kanssa ( -ansi) tai laajennettu ANSI C murre ( -Xa). Kun käytät vaihtoehtoa -c99
Lehden edellisessä numerossa keskustelimme Intel VTune Performance Analyzer -tuoteperheen tuotteista - suorituskyvyn analysointityökaluista, jotka ovat ansaitusti suosittuja sovelluskehittäjien keskuudessa ja mahdollistavat tunnistuksen koodissa. tiimisovelluksia, joka tuhlaa liikaa suoritinresursseja, mikä antaa kehittäjille mahdollisuuden tunnistaa ja poistaa potentiaalia kapeita paikkoja, joka liittyy samanlaisiin koodin osiin, mikä nopeuttaa sovellusten kehitysprosessia. Huomaa kuitenkin, että sovellusten suorituskyky riippuu pitkälti siitä, kuinka tehokkaita niiden kehityksessä käytetyt kääntäjät ovat ja mitä ominaisuuksia laitteisto niitä käytetään konekoodin luomiseen.
Intel Intel C++- ja Intel Fortran -kääntäjien uusimmat versiot Windows- ja Linux-käyttöjärjestelmille mahdollistavat sovellusten suorituskyvyn parantamisen järjestelmille, jotka perustuvat Intelin prosessorit Itanium 2, Intel Xeon ja Intel Pentium 4 jopa 40 % verrattuna olemassa oleviin muiden valmistajien kääntäjiin, koska prosessoreissa käytetään sellaisia ominaisuuksia kuin Hyper-Threading-tekniikka.
Tämän kääntäjäperheen koodin optimointiin liittyviä eroja ovat pinon käyttö liukulukuoperaatioiden suorittamiseen, prosessien välinen optimointi (IPO), sovellusprofiilin mukainen optimointi (Profile Guided Optimization (PGO), tietojen esilataus välimuistiin ( Tietojen esihaku), joka välttää muistin käyttöön liittyvän viiveen, tuki Intel-suorittimille ominaisille ominaisuuksille (esim. laajennukset suoratoiston tietojenkäsittelyyn Intel Streaming SIMD Extensions 2, Intel Pentium 4:lle ominaisuus), koodin suorittamisen automaattinen rinnakkaisu, sovellus luominen, käynnissä useilla erilaisia tyyppejä prosessorit optimoitaessa jollekin niistä, työkalut seuraavan koodin "ennustamiseen" (haaraennustus), laajennettu tuki suoritussäikeiden kanssa työskentelylle.
Huomaa, että Intel-kääntäjiä käytetään sellaisissa tunnetuissa yrityksissä kuin Alias/Wavefront, Oracle, Fujitsu Siemens, ABAQUS, Silicon Graphics, IBM. Useiden yritysten suorittaman riippumattoman testauksen mukaan Intelin kääntäjien suorituskyky on huomattavasti parempi kuin muiden valmistajien kääntäjien (katso esimerkiksi http://intel.com/software/products/compilers/techtopics/compiler_gnu_perf .pdf).
Alla tarkastellaan joitain ominaisuuksia uusimmat versiot Intel-kääntäjät pöytäkoneille ja palvelimille käyttöjärjestelmät.
Kääntäjät Microsoft Windows -alustalle
Intel C++ Compiler 7.1 Windowsille
Intel C++ Compiler 7.1 on aiemmin tänä vuonna julkaistu kääntäjä, joka tarjoaa erittäin optimoidun koodin Intel Itanium-, Intel Itanium 2-, Intel Pentium 4- ja Intel Xeon -prosessoreille sekä Intel Pentium M -prosessorille, joka käyttää Intel Centrino -tekniikkaa ja on tarkoitettu käytettäväksi mobiililaitteet.
Määritetty kääntäjä on täysin yhteensopiva kehitystyökalujen Microsoft Visual C++ 6.0 ja Microsoft Visual Studio .NET kanssa: se voidaan rakentaa vastaaviin kehitysympäristöihin.
Tämä kääntäjä tukee ANSI- ja ISO C/C++ -standardeja.
Intel Fortran Compiler 7.1 Windowsille
Intel Fortran Compiler 7.1 for Windows, joka myös julkaistiin aiemmin tänä vuonna, mahdollistaa optimoidun koodin luomisen Intel Itanium-, Intel Itanium 2-, Intel Pentium 4- ja Intel Xeon-, Intel Pentium M -suorittimille.
Tämä kääntäjä on täysin yhteensopiva Microsoft Visual C++ 6.0 ja Microsoft Visual Studio .NET -kehitystyökalujen kanssa, eli se voidaan rakentaa vastaaviin kehitysympäristöihin. Lisäksi tällä kääntäjällä voit kehittää 64-bittisiä sovelluksia Itanium/Itanium 2 -prosessoreilla toimiville käyttöjärjestelmille käyttämällä Microsoft Visual Studiota 32-bittisessä Pentium-prosessorissa käyttäen 64-bittistä Intel Fortran Compileria. Virheenkorjauksen aikana tämä kääntäjä antaa sinun käyttää debuggeria Microsoftin alustat.NETTO.
Jos sinulla on Compaq-tuote asennettuna, Visual Fortran 6.6:ta voidaan käyttää alkuperäisen Intel Fortran Compiler 7.1:n sijasta, koska nämä kääntäjät ovat yhteensopivia. lähdekoodi.
Intel Fortran Compiler 7.1 for Windows on täysin yhteensopiva ISO Fortran 95 -standardin kanssa ja tukee sellaisten sovellusten luomista ja virheenkorjausta, jotka sisältävät koodia kahdella kielellä: C ja Fortran.
Kääntäjät Linux-alustalle
Intel C++ Compiler 7.1 Linuxille
Toinen vuoden alussa julkaistu kääntäjä, Intel C++ Compiler 7.1 for Linux, mahdollistaa korkeatasoisen koodin optimoinnin Intel Itanium-, Intel Itanium 2-, Intel Pentium 4- ja Intel Pentium M -prosessoreille. yhteensopiva lähdekoodin ja objektimoduulien GNU C -kääntäjän kanssa, jonka avulla voit siirtää GNU C:llä luodut sovellukset siihen ilman lisäkustannuksia Intel C++ -kääntäjä tukee C++ ABI:ta (lisäys Linux-ytimeen, jonka avulla voit ajaa alla Linuxin ohjaus käännetty koodi muille alustoille, kuten varhaisille SCO-käyttöjärjestelmille, varhaiset versiot Sun Solaris jne.), mikä tarkoittaa täydellistä yhteensopivuutta gcc 3.2 -kääntäjän kanssa binäärikooditasolla. Lopuksi, Intel C++ Compiler 7.1 for Linux, voit jopa kääntää Linux-ytimen uudelleen tekemällä muutamia pieniä muutoksia sen lähdekoodiin.
Intel Fortran Compiler 7.1 Linuxille
Intel Fortran Compiler 7.1 for Linux mahdollistaa optimoidun koodin luomisen prosessoreille Intel Itanium, Intel Itanium 2, Intel Pentium 4, Intel Pentium M. Tämä kääntäjä on täysin yhteensopiva Compaq Visual Fortran 6.6 -kääntäjän kanssa lähdekooditasolla, joten voit kääntää uudelleen Compaq Visual Fortranilla luotuja sovelluksia, mikä parantaa niiden suorituskykyä.
Lisäksi määritetty kääntäjä on yhteensopiva sellaisten kehittäjien käyttämien apuohjelmien kanssa, kuten emacs-editori, gdb-debuggeri ja make application build -apuohjelma.
Kuten tämän kääntäjän Windows-versio, Intel Fortran Compiler 7.1 for Linux on täysin yhteensopiva ISO Fortran 95 -standardin kanssa ja tukee sellaisten sovellusten luomista ja virheenkorjausta, jotka sisältävät koodia kahdella kielellä: C ja Fortran.
Erityisesti on korostettava, että Intelin Venäjän ohjelmistokehityskeskuksen Nižni Novgorodissa asiantuntijat antoivat merkittävän panoksen lueteltujen Intel-kääntäjien luomiseen. Lisää yksityiskohtainen tieto Tietoja Intel-kääntäjistä on Intelin Web-sivustossa osoitteessa www.intel.com/software/products/.
Tämän artikkelin toinen osa on omistettu Intel-kääntäjille, jotka luovat sovelluksia mobiililaitteille.
Et ole orja!
Suljettu koulutuskurssi eliitin lapsille: "Maailman todellinen järjestely."
http://noslave.org
Materiaali Wikipediasta - vapaasta tietosanakirjasta
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). | ||||||||||||||||||||||||||||||||||||
Tyyppi | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tekijä |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Kehittäjä | ||||||||||||||||||||||||||||||||||||
Kehittäjät |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
kirjoitettu |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Käyttöliittymä |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
käyttöjärjestelmä | ||||||||||||||||||||||||||||||||||||
Käyttöliittymäkielet |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Ensimmäinen painos |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Laitteistoalusta | ||||||||||||||||||||||||||||||||||||
Uusin versio | ||||||||||||||||||||||||||||||||||||
Vapauta ehdokas |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Beta-versio |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Alfa versio |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Testiversio |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Luettavat tiedostomuodot |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Luodut tiedostomuodot |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Osavaltio |
Lua-virhe Module:Wikidatassa rivillä 170: yritys indeksoida kenttä "wikibase" (nolla-arvo). |
|||||||||||||||||||||||||||||||||||
Lisenssi |
Pääpiirteet:
Kääntäjä tukee OpenMP 3.0 -standardia rinnakkaisten ohjelmien kirjoittamiseen. Sisältää myös OpenMP:n muunnelman nimeltä Cluster OpenMP, jolla voit ajaa OpenMP:n mukaisesti kirjoitettuja sovelluksia MPI:tä käyttävillä klustereilla. Intel C++ Compiler käyttää Edison Design Groupin käyttöliittymää (kääntäjän osaa, joka jäsentää käännetyn ohjelman). Samaa käyttöliittymää käyttävät SGI MIPSpro-, Comeau C++- ja Portland Group -kääntäjät. Tätä kääntäjää käytetään laajasti SPEC-suorittimen vertailuarvojen kääntämiseen. Intelillä on 4 tuotesarjaa, jotka sisältävät kääntäjän:
Kääntäjän Linux-version haittoja ovat osittainen yhteensopimattomuus C-kielen GNU-laajennusten kanssa (jota tukee GCC-kääntäjä), mikä voi aiheuttaa ongelmia joidenkin ohjelmien kääntämisessä.
Kokeelliset vaihtoehdotKääntäjästä julkaistiin seuraavat kokeelliset versiot:
Perusliput
Kirjoita arvostelu artikkelista "Intel C++ -kääntäjä"HuomautuksiaKatso myösLinkit
Ote, joka kuvaa Intel C++ -kääntäjääJa myös, hän palasi näkemään Valkoisen Maguksen viimeisen kerran... Hänen miehensä ja todellisin ystävänsä, jota hän ei voinut koskaan unohtaa. Sydämissään hän antoi hänelle anteeksi. Mutta hänen suureksi valituksekseen hän ei voinut antaa hänelle Magdalenan anteeksiantoa... Joten, kuten näette, Isidora, suuri kristitty satu "anteeksiantamisesta" on vain lapsellinen valhe naiiveille uskoville, jotta he voisivat sallia heidän tehdä mitä tahansa pahaa, tietäen, että riippumatta siitä, mitä he tekevät, he saavat lopulta anteeksi. Mutta voit antaa anteeksi vain sen, mikä todella ansaitsee anteeksiannon. Ihmisen täytyy ymmärtää, että hänen on vastattava kaikesta tekemästään pahasta... Eikä jonkin salaperäisen Jumalan edessä, vaan itsensä edessä, pakottamalla itsensä kärsimään julmasti. Magdalena ei antanut anteeksi Vladykalle, vaikka hän kunnioitti ja rakasti häntä syvästi. Aivan kuten hän ei antanut meille kaikille anteeksi Radomirin kauheaa kuolemaa. Loppujen lopuksi HÄN ymmärsi paremmin kuin kukaan muu - olisimme voineet auttaa häntä, olisimme voineet pelastaa hänet julmalta kuolemalta... Mutta emme halunneet. Koska Valkoisen Maguksen syyllisyys oli liian julma, hän jätti hänet elämään tämän syyllisyyden kanssa, unohtamatta sitä hetkeksikään... Hän ei halunnut antaa hänelle helppoa anteeksiantoa. Emme nähneet häntä enää koskaan. Aivan kuten he eivät koskaan nähneet lapsiaan. Yhden temppelinsä ritarin - velhomme - Magdalena välitti vastauksen Vladykalle hänen pyyntöönsä palata luoksemme: "Aurinko ei nouse kahdesti samana päivänä... Maailmanne ilo (Radomir) älä koskaan palaa luoksesi, aivan kuten en palaa sinun luoksesi ja minä... Löysin USKONI ja TOTUUKSENI, he ovat ELÄVÄT, mutta sinun on KUOLLUT... Suru poikiasi - he rakastivat sinua. En koskaan anna sinulle anteeksi heidän kuolemaansa, kun olen elossa. Ja olkoon syyllisyytesi kanssasi. Ehkä hän jonain päivänä tuo sinulle Valoa ja Anteeksiantoa... Mutta ei minulta." Magus Johnin päätä ei tuotu Meteoraan samasta syystä - kukaan Temppelin ritari ei halunnut palata luoksemme... Menetimme heidät, kuten olemme menettäneet monia muitakin useammin kuin kerran, jotka eivät halunneet palata luoksemme... Ymmärrä ja hyväksy uhrimme... Kuka teki aivan kuten sinä - he lähtivät tuomitsemalla meidät.Pääni pyöri!... Kuten janoinen, sammuttaen ikuista tiedonnälkääni, otin ahneesti vastaan pohjoisen anteliaasti antaman hämmästyttävän tiedon virtauksen... Ja halusin paljon muuta!.. Halusin tietää kaiken loppu. Se oli tuulahdus raikasta vettä kivun ja vaikeuksien polttamassa autiomaassa! Ja en voinut saada tarpeekseni siitä... – Minulla on tuhansia kysymyksiä! Mutta aikaa ei ole jäljellä... Mitä minun pitäisi tehdä, Pohjoinen?... - Kysy, Isidora!... Kysy, yritän vastata sinulle... – Kerro minulle, Sever, miksi minusta näyttää siltä, että tässä tarinassa yhdistyy kaksi samankaltaisiin tapahtumiin kietoutunutta elämäntarinaa ja ne esitetään yhden ihmisen elämänä? Vai enkö ole oikeassa? – Olet aivan oikeassa, Isidora. Kuten sanoin aiemmin, "tämän maailman voimat", jotka loivat ihmiskunnan väärän historian, "asuivat" Kristuksen todelliseen elämään juutalaisen profeetan Joosuan vieraan elämän, joka eli puolitoista tuhatta vuotta sitten ( pohjoisen tarinan ajoilta). Eikä vain hän itse, vaan myös hänen perheensä, hänen sukulaisensa ja ystävänsä, hänen ystävänsä ja seuraajansa. Loppujen lopuksi se oli profeetta Joosuan vaimo, juutalainen Maria, jolla oli sisar Martha ja veli Lasarus, hänen äitinsä Maria Yakoben sisar ja muita, jotka eivät koskaan olleet lähellä Radomiria ja Magdalenaa. Aivan kuten heidän vieressään ei ollut muita "apostoleja" - Paavali, Matteus, Pietari, Luukas ja muut... Se oli profeetta Joshuan perhe, joka muutti puolitoista tuhatta vuotta sitten Provenceen (jota tuohon aikaan kutsuttiin Transalpine Galliaksi), kreikkalaiseen Massalian kaupunkiin (nykyinen Marseille), koska Massalia oli tuolloin "portti" Euroopan ja Aasian välillä, ja se oli helpoin tapa kaikille "vainotuille" välttää vaino ja ongelmat.
|