Intel компиляторлары. Неліктен жаңа компиляторлар қажет болды
Intel C++ және Fortran компиляторлары және MKL кітапханасы
Linux үшін GNU компиляторлары стандартымен қатар NIVT есептеу кешенінің кластерлеріне Intel C++ және Fortran компиляторлары орнатылған. Қазіргі уақытта (2006 жылдың басы) 9.1 нұсқасының компиляторлары барлық кластерлерде орнатылған. Бұл бет осы компиляторлардың ең маңызды опциялары мен параметрлерін, сондай-ақ олардың GNU компиляторларынан негізгі айырмашылықтарын сипаттауға арналған. Бұл бет негізінен ММУ Ғылыми-конструкторлық есептеу орталығының кластерлерінің пайдаланушыларына арналған, бірақ ол басқа орыстілді пайдаланушылар үшін де пайдалы болуы мүмкін. Ол IA-64 платформасын құрастыруға қатысты мәселелерді қамтымайды.
Сондай-ақ, барлық кластерлерде Intel кітапханасы орнатылған. Ядро математикалық кітапханасы(MKL) 8.0.2 нұсқасы. Кітапхана /usr/mkl каталогында орналасқан. lib каталогында 32, 64 және em64t ішкі каталогтары қолжетімді екенін ескеріңіз. Ant кластерінде em64t ішкі каталогындағы кітапханаларды, ал басқа кластерлерде 32 ішкі каталогындағы кітапханаларды пайдалану керек Барлық қажетті құжаттама мен мысалдарды /usr/mkl/doc каталогынан алуға болады.
Неліктен жаңа компиляторлар қажет?
Жаңа компиляторларға деген қажеттілік негізінен а) Fortran 90-да бағдарламалауды қолдау, сонымен қатар б) Fortran бағдарламаларын g77 компиляторымен қамтамасыз етуден күштірек оңтайландыру, C тіліне аударуды пайдаланып, содан кейін gcc көмегімен компиляциялау үшін туындады.
PGI (Portland Group) компиляторлары да бұл талаптарды қанағаттандырады, бірақ әзірлеуші компания оларды Ресейге жеткізуден бас тартты.
Қалай пайдалануға болады?
Intel компиляторлары командалармен шақырылады icc(C немесе C++), ICPC(C++) және iffort(Фортран 77/90). MPI бағдарламаларын құрастыруға және құруға арналған mpicc, mpiCC және mpif77 пәрмендері де Intel компиляторларын пайдалану үшін конфигурацияланған.
Сондай-ақ ол GNU компиляторларын mpigcc, mpig++ және mpig77 пәрмендерімен пайдалану мүмкіндігін сақтайды (Fortran 90 нұсқасына қолдау көрсетілмейді).
Файлдарды енгізу
Әдепкі бойынша кеңейтімі бар файлдар .cppЖәне .cxxС++ тіліндегі бастапқы мәтіндер, кеңейтімі бар файлдар болып саналады .c- C көзі және icpc компиляторы .c файлдарын C++ көзі ретінде де құрастырады.
Кеңейтімдері бар файлдар .f, .ftnЖәне .үшінФотран тіліндегі бастапқы мәтіндер, белгіленген белгілеулері және файлдары ретінде танылады .fppЖәне .Fқосымша Fortran препроцессоры арқылы беріледі. Кеңейтімдері бар файлдар .f90еркін формадағы Fortran 90/95 бастапқы коды болып саналады. Параметрлерді пайдаланып Fortran бағдарламаларын жазудың бекітілген немесе еркін түрін нақты орнатуға болады -FIЖәне -FRтиісінше.
Кеңейтімдері бар файлдар .s IA-32 ассемблер тілінің коды ретінде танылады.
Intel компиляторының техникалық сипаттамалары
Мұнда біз Intel компиляторларының сипаттамаларын ұсынамыз, себебі оларды әзірлеуші пайдаланушы нұсқаулығында біздің кейбір түсініктемелерімізбен баяндайды.
- Маңызды оңтайландыру
шамасы, бұл кодты жоғары деңгейде оңтайландыруға қатысты, яғни. біріншіден, барлық дерлік компиляторлар азды-көпті сәтті орындайтын әртүрлі цикл түрлендірулері - Қалқымалы нүктені оңтайландыру
шамасы, бұл, ең алдымен, аппараттық деңгейде іске асырылатын командаларды максималды пайдалануды білдіреді - Процедуралық оңтайландырулар
анау. тек нақты функциялардың кодына әсер ететін әдеттегі оңтайландырудан айырмашылығы, бүкіл бағдарламаны жаһандық оңтайландыру - Профиль негізіндегі оңтайландыру
анау. бағдарламаны сынақ режимінде іске қосу, жиі қолданылатын функциялар ішінде белгілі бір код фрагменттерінің өту уақыты туралы деректерді жинау, содан кейін бұл деректерді оңтайландыру үшін пайдалану мүмкіндігі - Pentium III процессорларындағы SSE нұсқаулар жинағын қолдау
Ескерту: есептеу тапсырмалары үшін SSE2 нұсқаулары көбірек қызығушылық тудырады, яғни. 64-биттік нақты сандардағы векторлық нұсқаулар, бірақ олар тек Pentium 4 процессорларында ғана қолдау көрсетеді, олар бізде әлі жоқ. - Автоматты векторизация
анау. компилятор автоматты түрде енгізетін SSE және SSE2 нұсқауларын пайдалану арқылы қайтадан - SMP жүйелерінде бағдарламалау үшін OpenMP қолдауы
Ескерту: кластерде MPI интерфейсін басым түрде пайдалану ұсынылады; OpenMP-ті кластерде кеңінен қолдану күтілмейді және мұндай эксперименттер әлі жүргізілген жоқ; бірақ ортақ жад үшін параллельденген кітапханаларды (BLAS, т.б.) пайдалану мағынасы бар шығар. - Деректерді алдын ала алу
анау. біраз уақыттан кейін қажет болатын жадтан деректер кэшіне алдын ала жүктеу пәрмендерін пайдалану - Әртүрлі процессорларға арналған «жоспарлау» коды
анау. артықшылығын пайдалануға мүмкіндік беретін бір орындалатын файлда әртүрлі процессорлар үшін кодты жасау мүмкіндігі соңғы процессорларбұрынғы процессорлармен бағдарламалардың екілік үйлесімділігін сақтай отырып, олар бойынша ең жоғары өнімділікке қол жеткізу; Біздің кластерімізде бұл әлі өзекті емес, өйткені. тек Pentium III процессорлары пайдаланылады, ал кластерде құрастырылған бағдарламалар басқа машиналарда тасымалданбайды және іске қосылмайды.
Негізгі компилятор опциялары
Ең қызықтысы, әрине, кодты оңтайландыру опциялары. Опциялардың көпшілігі C++ және Fortran компиляторларына ортақ. Көбірек егжей-тегжейлі сипаттамаағылшын пайдаланушы нұсқаулығындағы опциялар.
Оңтайландыру деңгейлері | |
---|---|
Опция | Сипаттама |
-O0 | Оңтайландыруды өшіреді |
-O1 немесе -O2 | Жылдамдық үшін негізгі оңтайландыру. Кітапхана функцияларын кірістірілген кірістіруді өшіреді. C++ компиляторы үшін бұл опциялар бірдей оңтайландыруды береді, Fortran компиляторы үшін -O2 опциясы жақсырақ, өйткені циклдарды әлі де шешуді қамтиды. |
-O3 | Қуатты оңтайландырулар, соның ішінде цикл түрлендірулері, деректерді алдын ала алу, OpenMP пайдалану. Кейбір бағдарламалар жақсырақ өнімділікке кепілдік бермеуі мүмкін -O2. Векторизация опцияларымен бірге пайдалану мағынасы бар -xKЖәне -xW. |
-unroll[n] | Ілмектерді n ретке дейін ашуды қосады. |
Арнайы процессорға арналған оңтайландырулар | |
Опция | Сипаттама |
-tpp6 | Penitum Pro, Pentium II және Pentium III процессорлары үшін оңтайландыру |
-tpp7 | Penitum 4 процессорлары үшін оңтайландыру (бұл опция IA-32 компиляторы үшін әдепкі бойынша қосылған) |
-хМ | Pentium MMX, Pentium II және одан кейінгі процессорларға тән MMX кеңейтімдерін пайдаланып код жасау |
-xK | Pentium III процессорларына тән SSE кеңейтімдерін пайдалану арқылы код жасау |
-xW | Pentium 4 процессорларына тән SSE2 кеңейтімдерін қолданып код жасау |
Процедуралық оңтайландыру | |
-ip | Бір файл ішінде процедурааралық оңтайландыруды қосады. Опцияны көрсетсеңіз -ip_no_inlining, содан кейін функцияларды кірістірілген кірістіру өшіріледі. |
-ipo | Әртүрлі файлдар арасында процедурааралық оңтайландыруды қосады |
Профильдерді пайдалану арқылы оңтайландырулар | |
-prof_gen | Профильдеу үшін пайдаланылатын «профильдеу» коды жасалады, яғни. бағдарламадағы белгілі бір орындардың өту жиілігі туралы мәліметтерді жинау |
-prof_use | Оңтайландыру профильдеу сатысында алынған деректер негізінде орындалады. Оны процедурааралық оңтайландыру опциясымен бірге пайдалану мағынасы бар -ipo. |
SMP жүйелері үшін параллелизация | |
-openmp | OpenMP 2.0 қолдауын қосады |
-параллель | Циклдерді автоматты параллелизациялауды қосады |
Өнімділік
Ixbt.com сайтында жарияланған SPEC CPU2000 эталондық нәтижелеріне сәйкес, Intel компиляторларының 6.0 нұсқасы gcc компиляторларының 2.95.3, 2.96 және 3.1 нұсқаларынан дерлік барлық жерде және PGI 4.0.2 нұсқасынан асып түсті. Бұл сынақтар 2002 жылы Pentium 4/1,7 ГГц процессоры және RedHat Linux 7.3 бар компьютерде жүргізілді.
Polyhedron жүргізген сынақтарға сәйкес, Intel Fortran компиляторының 7.0 нұсқасы Linux (Absoft, GNU, Lahey, NAG, NAS, PGI) үшін басқа Fortran 77 компиляторларымен салыстырғанда барлық жерде дерлік жоғары болды. Тек кейбір сынақтарда Intel компиляторы Absoft, NAG және Lahey компиляторларына аздап жеңіледі. Бұл сынақтар Pentium 4/1,8 ГГц процессоры және Mandrake Linux 8.1 операциялық жүйесі бар компьютерде жүргізілді.
Intel компиляторларының 9.1 нұсқасы да gcc компиляторларынан асып түседі және Absoft, PathScale және PGI-мен салыстырылатын өнімділікті көрсетеді.
Бізге компиляторды таңдаудың (GCC немесе Intel) және оңтайландыру опцияларының олардың нақты мәселелерімен жұмыс жылдамдығына әсері туралы деректерді жіберетін пайдаланушылар мен оқырмандарға алғыс айтамыз.
Кітапханалар
C компиляторы GNU жобасы әзірлеген жұмыс уақыты кітапханасын пайдаланады ( libc.a).
Келесі кітапханалар Intel C++ компиляторымен бірге жеткізіледі:
- libcprts.a- Dinkumware әзірлеген C++ жұмыс уақытының кітапханасы.
- libcxa.a- Intel компаниясының C++ әзірлеуіне арналған қосымша жұмыс уақытының кітапханасы.
- libimf.a- Intel әзірлеген математикалық функциялар кітапханасы, ол тригонометриялық, гиперболалық, экспоненциалды, арнайы, күрделі және басқа функциялардың оңтайландырылған және жоғары дәлдікпен жүзеге асырылуын қамтиды (толығырақ ақпаратты функциялар тізімін қараңыз).
- libirc.a- процессорға байланысты профильдеу (PGO) және «диспетчерлік» кодты орындау уақытын қолдау (жоғарыдан қараңыз).
- libguide.a- OpenMP енгізу.
Бұл тізімде статикалық кітапханалар бар, бірақ олардың көпшілігі үшін динамикалық кітапханалар да бар, яғни. іске қосу кезінде қосылған, опциялар ( .сондықтан).
Келесі кітапханалар Fortran компиляторымен қамтамасыз етілген: libCEPCF90.a, libIEPCF90.a, libintrins.a, libF90.a, libimf.a математикалық функциялар кітапханасы да қолданылады.
Орындалатын файлды құру
Кітапханаларды статикалық (құрастыру уақытында) немесе динамикалық (бағдарламаны іске қосу уақытында) байланыстыруға болады. Динамикалық тәсіл орындалатын файлдың көлемін азайтуға мүмкіндік береді, ол жадтағы кітапхананың бірдей көшірмесін ортақ пайдалануға мүмкіндік береді, бірақ ол үшін бағдарламалар іске қосылатын әрбір түйінге, пайдаланылған файлдардың толық жиынтығын орнату қажет. динамикалық кітапханалар.
Осылайша, егер сіз Intel компиляторын Linux құрылғыңызға орнатқан болсаңыз және құрастырылған екілік файлдарды басқа машиналарда іске қосқыңыз келсе, статикалық құрастыруды (бұл оңайырақ) пайдалануыңыз керек немесе Intel динамикалық кітапханаларын осы машиналарға көшіру керек (әдетте компьютерден /opt/intel /compiler70/ia32/lib) сияқты каталогты /etc/ld.so.conf файлында тізімделген каталогтардың біріне ауыстырыңыз және GNU/Linux динамикалық кітапханаларының бірдей жинағы осы машиналарда орнатылғанына көз жеткізіңіз.
Әдепкі бойынша, барлық Intel әзірлеу кітапханалары (libcxa.so файлынан басқа) статикалық түрде байланысты және барлық Linux жүйелік кітапханалары мен GNU кітапханалары динамикалық түрде байланысты. Опциямен -статикалықассемблерді (байланыстырушыны) барлық кітапханаларды статикалық түрде қосуға мәжбүрлей аласыз (бұл дыбыс деңгейін арттырады орындалатын файл) және опцияны пайдалану -i_dynamicбарлық Intel әзірлеу кітапханаларын динамикалық түрде байланыстыруға болады.
Көру опциясын пайдаланып қосымша кітапханаларды қосқанда -кітапханаопциясын пайдалану қажет болуы мүмкін -l каталогыкітапханалар орналасқан жолды орнату үшін.
Параметрлермен -бстатикалықЖәне -Бдинамикалықкөрсетілген кітапханалардың әрқайсысы үшін динамикалық немесе статикалық сілтемені анық орнатуға болады пәрмен жолы.
Опциямен -cорындалатын файлды құрастыру өшірілген және тек компиляция (объектілік модульді генерациялау) орындалады.
Fortran және C-де модульдерді ортақ пайдалану
Fortran және C тілінде жазылған модульдерді ортақ пайдалану үшін объект модульдеріндегі процедуралардың атын, параметрді беруді және егер бар болса, ғаламдық айнымалыларға қол жеткізуді келісу керек.
Әдепкі бойынша, Intel Fortran компиляторы процедура атауларын кіші әріптермен жазады және аттың соңына астын сызуды қосады. C компиляторы функция атауларын ешқашан өзгертпейді. Осылайша, егер біз Fortran модулінен C тілінде жүзеге асырылған FNNAME функциясын немесе процедурасын шақырғымыз келсе, онда C модулінде оны fnname_ деп атаған жөн.
Fortran компиляторы опцияны қолдайды -nus [файл аты], бұл ішкі процедура атауларына астын сызуларды қосуды өшіруге мүмкіндік береді. Егер файл аты берілсе, онда бұл берілген файлда тізімделген процедура атаулары үшін ғана орындалады.
Әдепкі бойынша, Fortran-да параметрлер сілтеме бойынша беріледі, ал С тілінде олар әрқашан мән бойынша беріледі. Осылайша, C модулінен Fortran процедурасын шақырған кезде, біз нақты параметрлердің мәндерін қамтитын сәйкес айнымалыларға параметр көрсеткіші ретінде өтуіміз керек. Fortran модулінен шақыру қажет болатын функцияны Си тілінде жазғанда, біз формальды параметрлерді сәйкес типтерге көрсеткіш ретінде сипаттауымыз керек.
C модульдерінде Fortran модульдерінің ішінде анықталған ЖАЛПЫ блоктарды пайдалануға болады (толығырақ ақпаратты Intel Fortran компиляторының пайдаланушы нұсқаулығын, C және Fortran араластыру тарауын қараңыз).
Intel және GCC компиляторларын ортақ пайдалану
Intel C++ компиляторы шығарған C нысан модульдері GCC компиляторы және GNU C кітапханасы шығарған модульдермен үйлесімді. Осылайша, бұл модульдерді icc немесе gcc пәрмендері арқылы құрастырылған бір бағдарламада ортақ пайдалануға болады, бірақ Intel кітапханаларын дұрыс қосу үшін icc пайдалану ұсынылады.
Intel компиляторы GNU жобасы пайдаланатын және GCC компиляторы қолдайтын стандартты емес C тілінің бірқатар кеңейтімдерін қолдайды (бірақ олардың барлығы емес, толық ақпаратты осы жерден қараңыз).
Пайдаланушы нұсқаулығында C++ және Fortran тіліндегі нысан модульдерінің үйлесімділігі туралы ештеңе айтылмаған, шамасы, оған қолдау көрсетілмейді.
Стандарттарды қолдау
Linux үшін Intel C++ Compiler 7.0 ANSI/ISO C тіл стандартын (ISO/IEC 9899/1990) қолдайды. ANSI C стандартымен қатаң үйлесімділікті орнатуға болады ( -анси) немесе кеңейтілген ANSI C диалектісі ( -Ха). Опцияны пайдаланған кезде -c99
Журналдың алдыңғы санында біз Intel VTune Performance Analyzer тобының өнімдерін - қолданбаларды әзірлеушілер арасында лайықты танымал және кодта анықтауға мүмкіндік беретін өнімділікті талдау құралдарын талқыладық. командалық қосымшалар, олар тым көп процессор ресурстарын пайдаланады, бұл әзірлеушілерге әлеуетті анықтауға және жоюға мүмкіндік береді тар жерлеркодтың ұқсас бөлімдерімен байланысты, осылайша қолданбаларды әзірлеу процесін жылдамдатады. Дегенмен, қолданбалардың өнімділігі көбінесе оларды әзірлеуде қолданылатын компиляторлардың қаншалықты тиімді екеніне және қандай мүмкіндіктерге байланысты екенін ескеріңіз. аппараттық құралолар машина кодын жасау кезінде пайдаланады.
Windows және Linux үшін Intel Intel C++ және Intel Fortran компиляторларының соңғы нұсқалары мыналарға негізделген қолданбалардың өнімділігін арттырады. Intel процессорлары Itanium 2, Intel Xeon және Intel Pentium 4 осы процессорлардың Hyper-Threading технологиясы сияқты мүмкіндіктерін пайдалану есебінен басқа өндірушілердің бар компиляторларымен салыстырғанда 40% дейін.
Компиляторлардың осы тобының кодты оңтайландыруымен байланысты айырмашылықтарға өзгермелі нүкте операцияларын орындау үшін стек пайдалану, процедурааралық оңтайландыру (Interprocedural Optimization, IPO), қолданба профиліне сәйкес оңтайландыру (Profile Guided Optimization, PGO), деректерді алдын ала жүктеу кіреді. жадқа қол жеткізуге байланысты кідірісті болдырмайтын кэш (Деректерді алдын ала алу), Intel процессорларының сипаттамалық мүмкіндіктерін қолдау (мысалы, Intel Pentium 4-ке тән Intel Streaming SIMD Extensions 2 ағынды деректерді өңдеуге арналған кеңейтімдер), кодты орындаудың автоматты параллелизациясы , қолданбаларды құру, бірнеше жұмыс істеу әртүрлі түрлеріолардың біреуін оңтайландыру кезінде процессорлар, кейінгі кодты «болжау» құралдары (тармақты болжау), орындау ағындарымен жұмыс істеуге кеңейтілген қолдау.
Intel компиляторлары Alias/Wavefront, Oracle, Fujitsu Siemens, ABAQUS, Silicon Graphics, IBM сияқты белгілі компанияларда қолданылатынын ескеріңіз. Бірқатар компаниялардың тәуелсіз тестілеуінің негізінде Intel компиляторларының өнімділігі басқа өндірушілердің компиляторларынан айтарлықтай асып түседі (мысалы, http://intel.com/software/products/compilers/techtopics/compiler_gnu_perf.pdf қараңыз).
Төменде біз кейбір мүмкіндіктерді қарастырамыз соңғы нұсқаларыЖұмыс үстелі мен серверге арналған Intel компиляторлары операциялық жүйелер.
Microsoft Windows платформасына арналған компиляторлар
Windows жүйесіне арналған Intel C++ Compiler 7.1
Intel C++ Compiler 7.1 – осы жылдың басында шығарылған компилятор, ол Intel Itanium, Intel Itanium 2, Intel Pentium 4 және Intel Xeon процессорлары, сондай-ақ Intel Centrino технологиясын пайдаланатын Intel Pentium M процессоры үшін кодты оңтайландырудың жоғары деңгейіне қол жеткізеді. мобильді құрылғыларда пайдалануға арналған.
Көрсетілген компилятор Microsoft Visual C++ 6.0 және Microsoft Visual Studio .NET әзірлеу құралдарымен толық үйлесімді: оны сәйкес әзірлеу орталарына салуға болады.
Бұл компилятор ANSI және ISO C/C++ стандарттарын қолдайды.
Windows жүйесіне арналған Intel Fortran Compiler 7.1
Windows жүйесіне арналған Intel Fortran Compiler 7.1, сондай-ақ осы жылдың басында шығарылды, Intel Itanium, Intel Itanium 2, Intel Pentium 4 және Intel Xeon, Intel Pentium M процессорлары үшін оңтайландырылған кодты жасауға мүмкіндік береді.
Бұл компилятор Microsoft Visual C++ 6.0 және Microsoft Visual Studio .NET әзірлеу құралдарымен толық үйлесімді, яғни оны сәйкес әзірлеу орталарына біріктіруге болады. Сонымен қатар, бұл компилятор Itanium/Itanium 2 процессорларында жұмыс істейтін операциялық жүйелер үшін 64 биттік қосымшаларды Microsoft Visual Studio арқылы 32 биттік форматта жасауға мүмкіндік береді. Pentium процессоры 64-биттік Intel Fortran компиляторын пайдалану. Кодты жөндеу кезінде бұл компилятор отладчикті пайдалануға мүмкіндік береді Microsoft платформалары.NET
Егер сізде Compaq Visual Fortran 6.6 орнатылған болса, оны бастапқы Intel Fortran Compiler 7.1 компиляторының орнына пайдалануға болады, себебі бұл компиляторлар деңгейде үйлесімді. бастапқы код.
Windows жүйесіне арналған Intel Fortran Compiler 7.1 нұсқасы ISO Fortran 95 стандартына толығымен сәйкес келеді және C және Fortran екі тілді қосымшаларды құруға және жөндеуге қолдау көрсетеді.
Linux платформасына арналған компиляторлар
Linux үшін Intel C++ Compiler 7.1
Жылдың басында шығарылған тағы бір компилятор, Linux үшін Intel C++ Compiler 7.1, Intel Itanium, Intel Itanium 2, Intel Pentium 4, Intel Pentium M процессорлары үшін кодты оңтайландырудың жоғары дәрежесіне қол жеткізуге мүмкіндік береді.Бұл компилятор толығымен деңгейіндегі GNU C компиляторымен бастапқы код пен нысан модульдерімен үйлесімді, бұл GNU C көмегімен жасалған қолданбаларды оған қосымша ақысыз көшіруге мүмкіндік береді. Intel C++ компиляторы C++ ABI (Linux ядросының қосымшасы) қолдайды. Linux басқаруШЫҰ ертерек операциялық жүйелері, Sun Solaris-тің ерте нұсқалары және т.б. сияқты басқа платформалар үшін құрастырылған код, бұл екілік деңгейде gcc 3.2 компиляторымен толық үйлесімділікті білдіреді. Ақырында, Linux үшін Intel C++ Compiler 7.1 көмегімен сіз тіпті бастапқы кодына бірнеше аздаған өзгерістер енгізіп, Linux ядросын қайта құрастыра аласыз.
Linux үшін Intel Fortran Compiler 7.1
Linux үшін Intel Fortran Compiler 7.1 компиляторы Intel Itanium, Intel Itanium 2, Intel Pentium 4, Intel Pentium M процессорлары үшін оңтайландырылған кодты жасауға мүмкіндік береді.Бұл компилятор бастапқы код деңгейінде Compaq Visual Fortran 6.6 компиляторымен толық үйлесімді, мүмкіндік береді Compaq Visual Fortran көмегімен жасалған қолданбаларды қайта компиляциялауға болады, осылайша олардың өнімділігін арттырады.
Бұған қоса, көрсетілген компилятор emacs өңдегіші, gdb отладкасы және make қолданбаны құрастыру утилитасы сияқты әзірлеушілер пайдаланатын утилиталармен үйлесімді.
Осы компилятордың Windows нұсқасы сияқты, Linux үшін Intel Fortran Compiler 7.1 ISO Fortran 95 стандартымен толық үйлесімді және C және Fortran екі тіліндегі кодты қамтитын қолданбаларды жасауды және жөндеуді қолдайды.
Тізімдегі Intel компиляторларын жасауға Нижний Новгородтағы Intel ресейлік бағдарламалық қамтамасыз етуді әзірлеу орталығының мамандары елеулі үлес қосқанын атап өткен жөн. Көбірек егжей-тегжейлі ақпарат Intel компиляторлары туралы ақпаратты Intel веб-сайтынан табуға болады: www.intel.com/software/products/ .
Осы мақаланың екінші бөлімі мобильді құрылғыларға арналған қосымшаларды жасайтын Intel компиляторларына арналады.
Сіз құл емессіз!
Элита балаларына арналған жабық білім беру курсы: «Әлемнің шынайы орналасуы».
http://noslave.org
Википедиядан, еркін энциклопедия
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). | ||||||||||||||||||||||||||||||||||||
Түр | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Автор |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Әзірлеуші | ||||||||||||||||||||||||||||||||||||
Әзірлеушілер |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Жазылған |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Интерфейс |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Операциялық жүйе | ||||||||||||||||||||||||||||||||||||
Интерфейс тілдері |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Бірінші басылым |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Аппараттық платформа | ||||||||||||||||||||||||||||||||||||
соңғы нұсқасы | ||||||||||||||||||||||||||||||||||||
кандидатты босату |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
бета нұсқасы |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
альфа нұсқасы |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Сынақ нұсқасы |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Оқуға болатын файл пішімдері |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Жасалған файл пішімдері |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Мемлекет |
170-жолдағы Модуль:Уикидеректердегі Lua қатесі: "wikibase" өрісін индекстеу әрекеті (нөлдік мән). |
|||||||||||||||||||||||||||||||||||
Лицензия |
Басты ерекшеліктер:
Компилятор параллельді бағдарламаларды жазу үшін OpenMP 3.0 стандартын қолдайды. Ол сонымен қатар OpenMP кластерлік OpenMP деп аталатын модификациясын қамтиды, оның көмегімен MPI көмегімен кластерлерде OpenMP сәйкес жазылған қолданбаларды іске қосуға болады. Intel C++ компиляторы Edison Design Group компаниясының фронтенді (компилятордың құрастырылатын бағдарламаны талдайтын бөлігі) пайдаланады. Дәл сол фронтенді SGI MIPSpro, Comeau C++, Portland Group компиляторлары пайдаланады. Бұл компилятор SPEC CPU эталондарын құрастыру үшін кеңінен қолданылады. Құрастырушы бар Intel өнімдерінің 4 сериясы бар:
Компилятордың Linux нұсқасының кемшіліктеріне кейбір бағдарламаларды құрастыру кезінде қиындықтар тудыруы мүмкін C тілінің GNU кеңейтімдерімен ішінара үйлеспеушілік (GCC компиляторы қолдау көрсетіледі).
Эксперименттік нұсқаларКомпилятордың келесі эксперименттік нұсқалары жарияланды:
Негізгі жалаулар
«Intel C++ компиляторы» мақаласына пікір жазыңызЕскертпелерда қараңызСілтемелер
Intel C++ компиляторын сипаттайтын үзіндіДегенмен, ол Ақ Магусты соңғы рет көру үшін оралды ... Оның күйеуі және ол ешқашан ұмыта алмайтын ең шынайы досы. Жүрегінде ол оны кешірді. Бірақ, оның үлкен өкінішіне орай, ол оған Магдалинаның кешіріміне ие бола алмады .... Сонымен, Исидора, көріп отырғаныңыздай, «кешірім» туралы ұлы христиандық аңыз аңғал сенушілер үшін кез келген нәрсені істеуге мүмкіндік беретін балалық өтірік. Жамандық, не істесе де, ақыры кешірілетінін біле тұра. Бірақ сіз шынымен кешіруге лайық нәрсені ғана кешіре аласыз. Адам кез келген зұлымдық үшін жауап беруі керек екенін түсінуі керек... Және де әлдебір жұмбақ Құдайдың алдында емес, өзін аяусыз азап шегуге мәжбүрлейді. Магдалена Владиканы терең құрметтеп, шын жүректен сүйсе де кешірмеді. Радомирдің қорқынышты өлімі үшін ол бәрімізді кешіре алмағандай. Өйткені, бәрінен де жақсы түсінген ОЛ - біз оған көмектесе алдық, оны қатыгез өлімнен құтқара алдық... Бірақ біз оны қаламадық. Ақ Мағұстың айыбын тым қатыгез деп есептеп, оны бір сәтке де ұмытпай, осы кінәмен өмір сүруге қалдырды... Ол оған оңай кешірім бергісі келмеді. Біз оны енді ешқашан көрмедік. Олардың сәбилерін ешқашан көрмегендей. Өз ғибадатханасының рыцарларының бірі - біздің сиқыршы - Магдалена арқылы Жаратқан Иеге бізге қайтып оралу туралы өтінішіне жауап берді: «Күн бір күнде екі рет көтерілмейді ... Сіздің әлеміңіздің қуанышы (Радомир) ешқашан болмайды. Саған орал, мен саған қайтпаймын, мен де... СЕНІМ мен ШЫНДЫҚТЫ таптым, олар ТІРІ, сенікі ӨЛІ... Ұлдарыңды жоқтаңдар – олар сені сүйді. Мен тірі кезімде олардың өлімін сені ешқашан кешірмеймін. Ал сенің кінәң өзіңде қалсын. Бәлкім, бір күні ол саған нұр мен кешірім әкелетін шығар... Бірақ менен емес. Магус Джонның басы Метеораға дәл осындай себеппен әкелінбеді - ғибадатхана рыцарларының ешқайсысы бізге оралғысы келмеді ... Біз олардан айырылып қалдық, өйткені біз түсінгісі келмейтін және түсінгісі келмейтін көптеген адамдардан бірнеше рет айырылып қалдық. біздің құрбандарымызды қабылдаңыз ... Сіз сияқты кім болды - олар бізді айыптап кетті.Менің басым айналып кетті!.. Шөлдеп, білімге деген мәңгілік аштығымды тойдырып, мен Солтүстіктің жомарттықпен берген таңғажайып ақпараттар легін ашкөздікпен сіңірдім... Ал мен одан да көп нәрсені қалаймын!.. Мен бәрін соңына дейін білгім келді. . Бұл азап пен бақытсыздыққа күйіп кеткен айдаладағы тұщы судың тынысы еді! Ал мен жеткілікті іше алмадым ... Менде мың сұрақ бар! Бірақ уақыт жоқ... Не істеуім керек, Север? .. - Сұра, Исидора!.. Сұра, мен саған жауап беруге тырысамын... – Айтыңызшы, Север, бұл әңгімеде неге бір-біріне ұқсас оқиғалармен астасып жатқан екі өмір оқиғасы сабақтасып, бір адамның өмірі ретінде берілгендей болып көрінеді маған? Әлде менікі дұрыс емес пе? – Өте дұрыс айтасың, Исидора. Жоғарыда айтқанымдай, адамзаттың жалған тарихын жасаған «осы дүниенің құдіреттілері» бір жарым мың жыл бұрын өмір сүрген еврей пайғамбары Ешуаның бөтен өмірін Мәсіхтің шынайы өміріне «кигізді». (Солтүстік оқиғасынан бері). Және өзі ғана емес, оның отбасы, туыстары мен достары, достары мен ізбасарлары. Өйткені, бұл Ешуа пайғамбардың әйелі, еврей Мәриямның әпкесі Марта мен ағасы Елазар, анасының әпкесі Мария Якоби және басқалары ешқашан Радомир мен Магдаленаға жақын болмаған. Олардың қасында басқа «апостолдар» болмаған сияқты - Пауыл, Матай, Петір, Лұқа және басқалары ... Бұл бір жарым мың жыл бұрын Провансқа (ол кезде Галлия (Трансальпі Галлия) деп аталды), Грекияның Массалия қаласына (қазіргі Марсель) көшіп келген Ешуа пайғамбардың отбасы болды, өйткені ол кезде Массалия болды. Еуропа мен Азия арасындағы «шлюз» және бұл барлық «қуғындалғандар» үшін қудалау мен бақытсыздықтан құтылудың ең оңай жолы болды.
|