Компајлери на Интел. Зошто беа потребни нови компајлери?
Компајлери на Intel C++ и Fortran и библиотека MKL
Заедно со стандардните GNU компајлери за Linux, компајлери на Intel C++ и Fortran се инсталирани на кластерите на компјутерскиот комплекс NIVC. Во моментов (почеток на 2006 година), верзијата 9.1 на компајлери се инсталирани на сите кластери. Оваа страница е посветена на опишување на најважните опции и поставки на овие компајлери, како и нивните главни разлики од компајлерите на GNU. Страницата е наменета главно за корисниците на кластерите на MSU Research Computing Centre, но може да биде корисна и за другите корисници кои зборуваат руски. Прашањата поврзани со компилацијата за платформата IA-64 не се опфатени овде.
Исто така, библиотеката на Интел е инсталирана на сите кластери Математичка библиотека на јадрото(MKL) верзија 8.0.2. Библиотеката се наоѓа во директориумот /usr/mkl. Ве молиме имајте предвид дека поддиректориумите 32, 64 и em64t се достапни во директориумот lib. На кластерот Ant треба да ги користите библиотеките од поддиректориумот em64t, а на другите кластери - од поддиректориумот 32. Целата потребна документација и примери може да се добијат од директориумот /usr/mkl/doc.
Зошто беа потребни нови компајлери?
Потребата за нови компајлери се појави главно за а) поддршка на програмирање во Fortran 90, а исто така и б) за помоќна оптимизација на програмите Fortran отколку што е обезбедена од компајлерот g77, кој користи превод во C, а потоа компилација користејќи gcc.
Компајлерите на PGI (Portland Group), исто така, ги исполнуваат овие барања, но компанијата за развој одби да ги достави во Русија.
Како да се користи?
Компајлерите на Интел се повикуваат со помош на команди ицц(C или C ++), icpc(C++) и ифорт(Фортран 77/90). Наредбите mpicc, mpiCC и mpif77 за компајлирање и склопување на MPI програми се исто така конфигурирани да користат компајлери на Интел.
Исто така, можно е да се користат GNU компајлери со помош на командите mpigcc, mpig++ и mpig77 (Fortran 90 не е поддржан).
Внесете датотеки
Стандардно, датотеките со наставката .cppИ .cxxсе сметаат за изворни текстови на јазикот C++, датотеки со наставката .в- Изворниот код C, а компајлерот icpc, исто така, компајлира датотеки .c како изворен код во C++.
Датотеки со екстензии .ѓ, .ftnИ .засе препознаваат како изворни текстови на јазикот Фотран, со фиксна форма на нотација и датотеките .fppИ .Фдополнително помина низ препроцесорот на јазикот Fortran. Датотеки со наставката .f90се сметаат за изворни текстови на Фортран 90/95 со нотација во слободна форма. Можете експлицитно да наведете фиксна или слободна форма на нотација за програмите Fortran користејќи ги опциите -ФИИ -ФРсоодветно.
Датотеки со наставката .спризнат како код на асемблерски јазик за IA-32.
Карактеристики на компајлерот на Интел
Овде ги презентираме карактеристиките на компајлерите на Интел како што е наведено од развивачот во упатството за употреба со некои од нашите коментари.
- Значајна оптимизација
Очигледно, ова значи оптимизирање на кодот на високо ниво, т.е. пред сè, различни трансформации на јамки, кои речиси сите компајлери ги прават со помал или поголем успех - Оптимизација на подвижна точка
Очигледно, ова значи, пред сè, максимална употреба на команди имплементирани на хардверско ниво - Меѓупроцедурални оптимизации
тие. глобална оптимизација на целата програма, за разлика од обичната оптимизација, која влијае само на кодот на одредени функции - Оптимизација базирана на профил
тие. способноста да се изврши програма во режим на тестирање, да се собираат податоци за времето потребно за да се пренесат одредени фрагменти од код во често користените функции и потоа да се користат овие податоци за оптимизација - Поддршка за сет на инструкции SSE во процесорите Pentium III
забелешка: за пресметковни задачи, командите SSE2 се од поголем интерес, т.е. векторски команди преку 64-битни реални броеви, но тие се поддржани само на процесорите Pentium 4, кои сè уште ги немаме на располагање - Автоматска векторизација
тие. повторно, користејќи ги командите SSE и SSE2, вметнати автоматски од компајлерот - OpenMP поддршка за програмирање на SMP системи
забелешка: на кластерот се препорачува првенствено да се користи интерфејсот MPI; не се очекува широка употреба на OpenMP на кластерот и такви експерименти сè уште не се извршени; но веројатно има смисла да се користат библиотеки (BLAS, итн.) кои се паралелизирани за споделена меморија. - Преземање податоци
тие. Очигледно, употребата на команди за претходно вчитување од меморијата во кешот на податоци, што ќе биде потребно по некое време - Код за „испраќање“ за различни процесори
тие. способноста да се генерира код за различни процесори во една извршна датотека, што ви овозможува да ги искористите предностите најновите процесорида се постигнат највисоки перформанси на нив, додека се одржува бинарна компатибилност на програмите со претходните процесори; На нашиот кластер ова сè уште не е релевантно, бидејќи се користат само процесори Pentium III, а програмите компајлирани на кластерот не треба да се префрлаат и работат на други машини
Основни опции за компајлерот
Најинтересни, се разбира, се опциите за оптимизација на кодот. Повеќето од опциите се заеднички за компајлерите C++ и Fortran. Повеќе Детален описопции во англиските прирачници за употреба.
Нивоа на оптимизација | |
---|---|
Опција | Опис |
-О0 | Оневозможува оптимизација |
-O1 или -O2 | Основна оптимизација за брзина. Вметнувањето на функциите на библиотеката е оневозможено. За компајлерот C++, овие опции ја обезбедуваат истата оптимизација; за компајлерот Fortran, се претпочита опцијата -O2, бидејќи вклучува и промоција на циклус. |
-О3 | Помоќни оптимизации, вклучувајќи трансформации на јамки, претходно преземање податоци и употреба на OpenMP. Некои програми може да не гарантираат подобрени перформанси во споредба со -О2. Има смисла да се користи заедно со опциите за векторизација -xKИ - xW. |
-одвиткување[n] | Овозможува одмотување на јамката до n пати. |
Оптимизации за специфичен процесор | |
Опција | Опис |
-tpp6 | Оптимизација за процесорите Penitum Pro, Pentium II и Pentium III |
-tpp7 | Оптимизација за процесори Penitum 4 (оваа опција е стандардно овозможена за компајлерот IA-32) |
-xM | Генерирање код со помош на MMX екстензии специфични за Pentium MMX, Pentium II и подоцнежните процесори |
-xK | Генерирање код со користење на SSE екстензии специфични за процесорите Pentium III |
- xW | Генерирање код со помош на екстензии SSE2 специфични за процесорите Pentium 4 |
Интерпроцедурална оптимизација | |
-ip | Интерпроцедурална оптимизација е овозможена во една датотека. Ако ја наведете опцијата -ip_no_inlining, тогаш вметнувањата на инлајн функции се оневозможени. |
-ипо | Овозможува интерпроцедурална оптимизација помеѓу различни датотеки |
Оптимизации со користење на профили | |
-проф_ген | Се генерира код за „профилирање“ кој ќе се користи за профилирање, т.е. собирање податоци за зачестеноста на поминување на одредени места во програмата |
-prof_use | Оптимизацијата се врши врз основа на податоците добиени во фазата на профилирање. Има смисла да се користи заедно со опцијата за интерпроцедурална оптимизација -ипо. |
Паралелизација за SMP системи | |
-openmp | Овозможува поддршка за стандардот OpenMP 2.0 |
-паралелно | Овозможена е автоматска паралелизација на јамката |
Изведба
Според резултатите од извршувањето на тестовите SPEC CPU2000, објавени на серверот ixbt.com, верзијата 6.0 на компајлерите на Intel беа речиси универзално подобри во споредба со верзиите на компајлери gcc 2.95.3, 2.96 и 3.1 и PGI верзијата 4.0.2. Овие тестови беа спроведени во 2002 година на компјутер со процесор Pentium 4/1,7 GHz и RedHat Linux 7.3.
Според тестовите спроведени од Polyhedron, верзијата 7.0 на компајлерот на Intel Fortran беше речиси универзално супериорна во однос на другите компајлери Fortran 77 за Linux (Absoft, GNU, Lahey, NAG, NAS, PGI). Само во некои тестови компајлерот на Интел е малку инфериорен во однос на компајлерите Absoft, NAG и Lahey. Овие тестови беа извршени на компјутер со процесор Pentium 4/1,8 GHz и Mandrake Linux 8.1.
Интел компајлери верзијата 9.1, исто така, ги надминуваат gcc компајлерите и покажуваат перформанси споредливи со Absoft, PathScale и PGI.
Ќе им бидеме благодарни на оние корисници и читатели кои ни испраќаат податоци за влијанието на изборот на компајлерот (GCC или Intel) и опциите за оптимизација на брзината на работа на нивните реални проблеми.
Библиотеки
Компајлерот на јазикот C користи библиотека за траење развиена во рамките на проектот GNU ( libc.a).
Следниве библиотеки се испорачуваат со компајлерот на Intel C++:
- libcprts.а- библиотека за јазик C++ за траење развиена од Dinkumware.
- libcxa.а- дополнителна библиотека за траење за развој на C++ од Intel.
- libimf.а- библиотека со математички функции развиена од Интел, која вклучува оптимизирани и високопрецизни имплементации на тригонометриски, хиперболични, експоненцијални, специјални, сложени и други функции (за повеќе детали, видете ја листата на функции).
- libirc.а- Поддршка за време на траење за профилирање (PGO) и испраќање код во зависност од процесорот (види погоре).
- libguide.а- Имплементација на OpenMP.
Оваа листа содржи статични библиотеки, но за повеќето од нив има и динамични, т.е. опции поврзани при стартување ( .така).
Следниве библиотеки се испорачуваат со компајлерот Fortran: libCEPCF90.а, libIEPCF90.а, либинтрини.а, libF90.а, се користи и библиотеката на математички функции libimf.a.
Градење на извршна датотека
Библиотеките може да се поврзат статички (за време на изградбата) или динамички (за време на стартување на програмата). Динамичниот пристап ви овозможува да ја намалите големината на извршната датотека и ви овозможува да ја споделите истата копија од библиотеката во меморијата, но за ова треба да инсталирате целосен сет на динамични библиотеки што се користат на секој јазол каде што ќе се стартуваат програмите .
Така, ако сте го инсталирале компајлерот Интел на вашата машина со Линукс и сакате да ги извршувате компајлираните извршни датотеки на други машини, тогаш треба или да користите статична градба (што е полесно) или да ги копирате динамичните библиотеки на Интел на овие машини (обично од директориум како /opt/intel /compiler70/ia32/lib) на еден од директориумите наведени во датотеката /etc/ld.so.conf, а исто така проверете дали истиот сет на динамички библиотеки GNU/Linux се инсталирани на овие машини.
Стандардно, сите библиотеки за развој на Интел (освен libcxa.so) се статички поврзани, а сите системски библиотеки на Linux и GNU библиотеки се поврзани динамично. Користење на опцијата -статичкиможете да го принудите колекторот (уредувач на врски) статички да ги поврзе сите библиотеки (што ќе ја зголеми јачината на звукот извршна датотека), и користејќи ја опцијата -i_dynamicМожете динамички да ги поврзете сите библиотеки за развој на Интел.
Кога поврзувате дополнителни библиотеки користејќи ја опцијата за преглед -библиотекаможеби ќе треба да ја користите опцијата -Директориумда ја одредите патеката каде што се наоѓаат библиотеките.
Користење на опции -БстатикИ -Бдинамичнаможете експлицитно да наведете динамично или статичко поврзување на секоја од библиотеките наведени во командна линија.
Користење на опцијата -всклопувањето на извршната датотека е оневозможено и се врши само компилација (генерирање на модул на објект).
Споделување модули во Fortran и C
За да споделите модули напишани во Fortran и C, треба да се договорите за именување на процедурите во објектните модули, пренесување на параметри и пристап до глобалните променливи, доколку ги има.
Стандардно, компајлерот Intel Fortran ги конвертира имињата на процедурите во мали букви и додава долна црта на крајот од името. Компајлерот C никогаш не ги менува имињата на функциите. Така, ако сакаме да повикаме функција или постапка FNNAME имплементирана во C од Fortran модул, тогаш во модулот C треба да се вика fnname_.
Компајлерот Fortran ја поддржува опцијата -nus [име на датотека], што ви овозможува да го оневозможите додавањето на долните црти на имињата на внатрешните процедури. Ако е наведено име на датотека, тоа се прави само за имињата на процедурите наведени во наведената датотека.
Стандардно, во Fortran параметрите се пренесуваат со референца, а во C тие секогаш се пренесуваат по вредност. Така, кога повикуваме процедура Fortran од C модул, мора да пренесеме покажувачи на соодветните променливи кои ги содржат вредностите на вистинските параметри како параметри. Кога пишувате функција во C која ќе треба да се повика од Fortran модул, мора да ги опишеме формалните параметри како покажувачи на соодветните типови.
Во модулите C, можно е да се користат ЗАЕДНИЧКИ блокови дефинирани во модулите на Fortran (за повеќе информации, видете во Упатството за корисникот на компајлерот на Intel Fortran, поглавје Мешање C и Fortran).
Споделување на компајлери на Intel и GCC
Модулите за C објект произведени од компајлерот Intel C++ се компатибилни со модулите произведени од компајлерот на GCC и библиотеката GNU C. Така, овие модули може да се користат заедно во една програма составена со помош на командите icc или gcc, но се препорачува да се користи icc за правилно вклучување на библиотеките на Intel.
Компајлерот на Интел поддржува голем број нестандардни екстензии на јазикот C што се користат од проектот GNU и поддржани од компајлерот на GCC (но не сите, видете овде за повеќе детали).
Упатството за корисникот не кажува ништо за компатибилноста на објектните модули на јазиците C++ и Fortran; очигледно, тоа не е поддржано.
Поддршка за стандарди
Intel C++ Compiler 7.0 за Linux го поддржува јазичниот стандард ANSI/ISO C (ISO/IEC 9899/1990). Можно е да се воспостави строга компатибилност со стандардот ANSI C ( -анси) или продолжен дијалект ANSI C ( -Ха). При користење на опцијата -c99
Во претходниот број на списанието, разговаравме за производи од семејството Intel VTune Performance Analyzer - алатки за анализа на перформанси кои се заслужено популарни меѓу развивачите на апликации и овозможуваат откривање во кодот тимски апликации, кои трошат премногу ресурси на процесорот, давајќи им на програмерите можност да го идентификуваат и елиминираат потенцијалот тесни места, поврзани со слични делови од кодот, со што се забрзува процесот на развој на апликации. Забележете, сепак, дека перформансите на апликациите во голема мера зависи од тоа колку се ефикасни компајлерите што се користат во нивниот развој и кои карактеристики хардвертие се користат при генерирање машински код.
Најновите верзии на компајлерите Intel C++ и Intel Fortran за Windows и Linux ви овозможуваат да стекнете придобивки од перформансите на апликацијата за системи базирани на Интел процесори Itanium 2, Intel Xeon и Интел Пентиум 4 до 40% во споредба со постоечките компајлери од други производители поради употребата на такви карактеристики на овие процесори како технологијата Hyper-Threading.
Разликите поврзани со оптимизацијата на кодот од оваа фамилија на компајлери вклучуваат употреба на стек за извршување операции со подвижна запирка, интерпроцедурална оптимизација (IPO), оптимизација во согласност со профилот на апликацијата (Profile Guided Optimization (PGO), претходно вчитување податоци во кешот ( Преземање на податоци), со што се избегнува латентност поврзана со пристап до меморијата, поддршка за карактеристичните карактеристики на процесорите на Intel (на пример, екстензии за обработка на податоци со стриминг Intel Streaming SIMD Extensions 2, карактеристика на Intel Pentium 4), автоматска паралелизација на извршување на кодот, апликација создавање, работи на неколку различни типовипроцесори при оптимизирање за еден од нив, алатки за „предвидување“ на последователен код (предвидување на гранка), проширена поддршка за работа со нишки за извршување.
Забележете дека компајлерите на Интел се користат во познати компании како Alias/Wavefront, Oracle, Fujitsu Siemens, ABAQUS, Silicon Graphics, IBM. Според независното тестирање спроведено од голем број компании, перформансите на компајлерите на Интел се значително повисоки од перформансите на компајлерите од други производители (видете, на пример, http://intel.com/software/products/compilers/techtopics/compiler_gnu_perf .pdf).
Подолу ќе разгледаме некои карактеристики најновите верзииИнтел компајлери за десктоп и сервер оперативни системи.
Компајлери за платформата Microsoft Windows
Интел C++ компајлер 7.1 за Windows
Intel C++ Compiler 7.1 е компајлер објавен претходно оваа година кој обезбедува високо оптимизиран код за процесорите Intel Itanium, Intel Itanium 2, Intel Pentium 4 и Intel Xeon, како и процесорот Intel Pentium M кој користи технологија Intel Centrino и е наменет за употреба во Мобилни уреди.
Наведениот компајлер е целосно компатибилен со развојните алатки Microsoft Visual C++ 6.0 и Microsoft Visual Studio .NET: може да се вгради во соодветните развојни околини.
Овој компајлер поддржува ANSI и ISO C/C++ стандарди.
Интел Фортран компајлер 7.1 за Windows
Intel Fortran Compiler 7.1 за Windows, исто така објавен претходно оваа година, ви овозможува да креирате оптимизиран код за процесорите Intel Itanium, Intel Itanium 2, Intel Pentium 4 и Intel Xeon, Intel Pentium M.
Овој компајлер е целосно компатибилен со алатките за развој на Microsoft Visual C++ 6.0 и Microsoft Visual Studio .NET, односно може да се вгради во соодветните развојни околини. Покрај тоа, овој компајлер ви овозможува да развивате 64-битни апликации за оперативни системи кои работат на процесори Itanium/Itanium 2 користејќи Microsoft Visual Studio на 32-битен процесор Pentium со помош на 64-битен компајлер Intel Fortran. При дебагирање на код, овој компајлер ви овозможува да користите дебагер за да Microsoft платформи.НЕТ.
Ако го имате инсталирано производот Compaq, Visual Fortran 6.6 може да се користи наместо оригиналниот Intel Fortran Compiler 7.1, бидејќи овие компајлери се компатибилни на ниво изворен код.
Интел Фортран компајлер 7.1 за Windows е целосно компатибилен со стандардот ISO Fortran 95 и поддржува создавање и дебагирање на апликации што содржат код на два јазика: C и Fortran.
Компајлери за платформата Линукс
Интел C++ компајлер 7.1 за Linux
Друг компајлер што беше објавен на почетокот на годината, Intel C++ Compiler 7.1 за Linux, ви овозможува да постигнете висок степен на оптимизација на кодот за процесорите Intel Itanium, Intel Itanium 2, Intel Pentium 4, Intel Pentium M. Овој компајлер е целосно компатибилен со GNU C компајлерот во изворниот код и објектните модули, што ви овозможува да мигрирате апликации создадени со користење на GNU C без дополнителни трошоци. под Линукс контролакомпајлиран код за други платформи како што се раните оперативни системи на SCO, раните верзии Sun Solaris, итн.), што значи целосна компатибилност со компајлерот gcc 3.2 на ниво на бинарен код. Конечно, со Intel C++ Compiler 7.1 за Linux, можете дури и да го прекомпајлирате кернелот на Linux со правење неколку мали промени во неговиот изворен код.
Интел Фортран компајлер 7.1 за Линукс
Компајлерот Intel Fortran 7.1 за Linux ви овозможува да креирате оптимизиран код за процесорите Intel Itanium, Intel Itanium 2, Intel Pentium 4, Intel Pentium M. Овој компајлер е целосно компатибилен со компајлерот Compaq Visual Fortran 6.6 на ниво на изворен код, што ви овозможува да ги прекомпајлирате апликациите користејќи ги создадени со помош на Compaq Visual Fortran, а со тоа да ги зголемите нивните перформанси.
Дополнително, наведениот компајлер е компатибилен со такви алатки што ги користат програмерите како што се уредникот на emacs, дебагерот на gdb и алатката за изработка на апликацијата make.
Како и верзијата за Windows на овој компајлер, Intel Fortran Compiler 7.1 за Linux е целосно компатибилен со стандардот ISO Fortran 95 и поддржува креирање и дебагирање на апликации кои содржат код на два јазика: C и Fortran.
Посебно треба да се нагласи дека значаен придонес во создавањето на наведените компајлери на Интел дадоа специјалисти од Рускиот центар за развој на софтвер Интел во Нижни Новгород. Повеќе детални информацииИнформации за компајлерите на Интел може да се најдат на веб-страницата на Интел на www.intel.com/software/products/.
Вториот дел од оваа статија ќе биде посветен на компајлери на Интел кои создаваат апликации за мобилни уреди.
Ти не си роб!
Затворен едукативен курс за деца од елитата: „Вистинското уредување на светот“.
http://noslave.org
Материјал од Википедија - слободната енциклопедија
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). | ||||||||||||||||||||||||||||||||||||
Тип | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Автор |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Програмер | ||||||||||||||||||||||||||||||||||||
Програмери |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Напишано на |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Интерфејс |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
операционен систем | ||||||||||||||||||||||||||||||||||||
Јазици на интерфејс |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Прво издание |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Хардверска платформа | ||||||||||||||||||||||||||||||||||||
Најновата верзија | ||||||||||||||||||||||||||||||||||||
Ослободете го кандидатот |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Бета верзија |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Алфа верзија |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Тест верзија |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Формати на датотеки што се читаат |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Генерирани формати на датотеки |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
држава |
Грешка Lua во Модул:Википодатоци на линија 170: обид да се индексира полето „wikibase“ (вредност нула). |
|||||||||||||||||||||||||||||||||||
Лиценца |
Главни карактеристики:
Компајлерот го поддржува стандардот OpenMP 3.0 за пишување паралелни програми. Содржи и модификација на OpenMP наречена Cluster OpenMP, со која можете да стартувате апликации напишани во согласност со OpenMP на кластери користејќи MPI. Компајлерот Intel C++ го користи предниот дел (делот од компајлерот што ја анализира компајлираната програма) од Едисон Дизајн Груп. Истиот преден дел го користат компајлерите SGI MIPSpro, Comeau C++ и Portland Group. Овој компајлер е широко користен за компајлирање на одредници на SPEC процесорот. Постојат 4 серии на производи од Интел кои го содржат компајлерот:
Недостатоците на верзијата на Linux на компајлерот вклучуваат делумна некомпатибилност со GNU екстензии на јазикот C (поддржан од компајлерот на GCC), што може да предизвика проблеми при компајлирањето на некои програми.
Експериментални опцииБеа објавени следните експериментални верзии на компајлерот:
Основни знамиња
Напишете рецензија за написот „компајлер на Intel C++“Белешкиисто така видиВрски
Извадок што го карактеризира компајлерот Intel C++И, исто така, се врати за последен пат да го види белиот маг... Нејзиниот сопруг и највистинскиот пријател, кого никогаш не можеше да го заборави. Во нејзиното срце таа му прости. Но, на негово големо жалење, таа не можеше да му донесе прошка од Магдалена... Така, како што гледате Исидора, големата христијанска басна за „простувањето“ е само детска лага за наивните верници, за да им се дозволи да направат секакво Зло, знаејќи дека што и да прават, на крајот ќе им биде простено. Но, можеш да простиш само она што навистина е достојно за простување. Човекот мора да разбере дека мора да одговара за секое направено Зло... И тоа не пред некој таинствен Бог, туку пред себе, принудувајќи се сурово да страда. Магдалена не и прости на Владика, иако длабоко го почитуваше и искрено го сакаше. Исто како што не успеа на сите да ни ја прости страшната смрт на Радомир. На крајот на краиштата, ТАА разбра подобро од кој било друг - можевме да му помогнеме, можевме да го спасиме од сурова смрт... Но, ние не сакавме. Сметајќи дека вината на белиот маг е премногу сурова, таа го остави да живее со оваа вина, не заборавајќи на ниту една минута... Не сакаше да му даде лесно простување. Никогаш повеќе не ја видовме. Исто како што никогаш не ги виделе своите бебиња. Преку еден од витезите на нејзиниот Храм - нашиот волшебник - Магдалена му го пренесе одговорот на Владиката на неговото барање да ни се врати: „Сонцето не изгрева двапати во ист ден... Радоста на твојот свет (Радомир) ќе никогаш не се враќај кај тебе, како што нема да се вратам кај тебе и јас... Ја најдов мојата ВЕРА и мојата ВИСТИНА, тие се ЖИВИ, но твоите се МРТВИ... Тагувајте ги своите синови - те сакаа. Никогаш нема да ти простам за нивната смрт додека сум жив. И нека твојата вина остане кај тебе. Можеби некогаш таа ќе ви донесе светлина и прошка... Но не од мене“. Главата на Магиот Јован не беше донесена во Метеори од истата причина - никој од витезите на храмот не сакаше да се врати кај нас... Ги загубивме, како што изгубивме многу други повеќе од еднаш, кои не сакаа да сфатете ги и прифатете ги нашите жртви... Кој направи исто како вас - си заминаа, осудувајќи не.Главата ми се вртеше!.. Како жеден, гасејќи ја вечната глад за знаење, лакомо го впивав протокот на неверојатни информации великодушно дадени од Северот... И сакав многу повеќе!.. Сакав да знам сè за да крај. Тоа беше здив на свежа вода во пустина изгорена од болка и неволја! И не можев да се наситам од тоа... – Имам илјадници прашања! Но, не останува време... Што да правам, Север?.. - Прашај Исидора!.. Прашај, ќе се обидам да ти одговорам... – Кажи ми Север, зошто ми се чини дека оваа приказна спојува две животни приказни, испреплетени со слични настани, а тие се претставени како живот на една личност? Или не сум во право? – Сосема си во право, Исидора. Како што ви реков претходно, „моќите на овој свет“, кои ја создадоа лажната историја на човештвото, го „облекоа“ на вистинскиот живот на Христос туѓиот живот на еврејскиот пророк Исус Навин, кој живеел пред илјада и пол години ( од времето на приказната за Северот). И не само тој, туку и неговото семејство, неговите роднини и пријатели, неговите пријатели и следбеници. На крајот на краиштата, тоа беше сопругата на пророкот Исус Навин, Еврејката Марија, која имаше сестра Марта и брат Лазар, сестрата на неговата мајка Марија Јакобе и други кои никогаш не биле во близина на Радомир и Магдалена. Исто како што немаше други „апостоли“ до нив - Павле, Матеј, Петар, Лука и останатите... Семејството на пророкот Џошуа се преселило пред една и пол илјади години во Прованса (која во тие денови се нарекувала Трансалпска Галија), во грчкиот град Масалија (денешен Марсеј), бидејќи Масалија во тоа време била „порта“ меѓу Европа и Азија, и тоа беше најлесниот начин за сите „прогонети“ за да избегнат прогон и неволји.
|