Intel kompilyatorları. Yeni kompilyatorlara nə üçün ehtiyac var idi?
Intel C++ və Fortran tərtibçiləri və MKL kitabxanası
Linux üçün standart GNU kompilyatorları ilə yanaşı, NIVC hesablama kompleksinin klasterlərində Intel C++ və Fortran kompilyatorları quraşdırılmışdır. Hazırda (2006-cı ilin əvvəli) kompilyatorların 9.1 versiyası bütün klasterlərdə quraşdırılmışdır. Bu səhifə bu kompilyatorların ən vacib variantlarını və parametrlərini, habelə onların GNU tərtibçilərindən əsas fərqlərini təsvir etməyə həsr edilmişdir. Səhifə əsasən MDU Tədqiqat Hesablama Mərkəzinin klasterlərinin istifadəçiləri üçün nəzərdə tutulub, lakin digər rusdilli istifadəçilər üçün də faydalı ola bilər. IA-64 platforması üçün kompilyasiya ilə bağlı məsələlər burada həll edilmir.
Həmçinin, Intel kitabxanası bütün klasterlərdə quraşdırılmışdır Kernel Riyaziyyat Kitabxanası(MKL) versiyası 8.0.2. Kitabxana /usr/mkl qovluğunda yerləşir. Nəzərə alın ki, 32, 64 və em64t alt kataloqları lib kataloqunda mövcuddur. Ant klasterində siz em64t alt kataloqunun kitabxanalarından, digər klasterlərdə isə 32 alt kataloqunun kitabxanalarından istifadə etməlisiniz.Bütün lazımi sənədləri və nümunələri /usr/mkl/doc kataloqundan əldə etmək olar.
Yeni kompilyatorlara nə üçün ehtiyac var idi?
Yeni kompilyatorlara ehtiyac əsasən a) Fortran 90-da proqramlaşdırmanı dəstəkləmək və həmçinin b) Fortran proqramlarının C-yə tərcüməni və sonra gcc istifadə edərək tərtibini istifadə edən g77 kompilyatorunun təmin etdiyindən daha güclü optimallaşdırılması üçün yaranmışdır.
PGI (Portland Group) kompilyatorları da bu tələblərə cavab verir, lakin tərtibatçı şirkət onları Rusiyaya tədarük etməkdən imtina edib.
Necə istifadə etməli?
Intel kompilyatorları əmrlərdən istifadə edərək çağırılır icc(C və ya C++), icpc(C++) və ifort(Fortran 77/90). MPI proqramlarının tərtibi və yığılması üçün mpicc, mpiCC və mpif77 əmrləri də Intel kompilyatorlarından istifadə etmək üçün konfiqurasiya edilmişdir.
Həmçinin mpigcc, mpig++ və mpig77 əmrlərindən istifadə etməklə GNU kompilyatorlarından istifadə etmək mümkündür (Fortran 90 dəstəklənmir).
Giriş faylları
Varsayılan olaraq, uzantılı fayllar .cpp Və .cxx C++ dilində mənbə mətnlər, uzantılı fayllar hesab edilir .c- C mənbə kodu və icpc tərtibçisi də .c fayllarını C++ mənbə kodu kimi tərtib edir.
Uzantıları olan fayllar .f, .ftn Və .üçün sabit qeyd forması və faylları olan Fotran dilində mənbə mətnlər kimi tanınır .fpp Və .Fəlavə olaraq Fortran dilinin preprosessorundan keçir. Uzantısı olan fayllar .f90 sərbəst forma notasiyası ilə Fortran 90/95 mənbə mətnləri hesab olunur. Seçimlərdən istifadə edərək Fortran proqramları üçün sabit və ya pulsuz qeyd formasını açıq şəkildə təyin edə bilərsiniz -FI Və -FR müvafiq olaraq.
Uzantısı olan fayllar .s IA-32 üçün montaj dili kodu kimi tanınır.
Intel Kompilyator Xüsusiyyətləri
Burada biz bəzi şərhlərimizlə istifadəçi təlimatında tərtibatçı tərəfindən ifadə edilən Intel kompilyatorlarının xüsusiyyətlərini təqdim edirik.
- Əhəmiyyətli optimallaşdırma
Görünür, bu, kodun yüksək səviyyədə optimallaşdırılması deməkdir, yəni. ilk növbədə, demək olar ki, bütün kompilyatorların daha çox və ya daha az müvəffəqiyyətlə etdiyi müxtəlif döngə çevrilmələri - Üzən nöqtənin optimallaşdırılması
Göründüyü kimi, bu, ilk növbədə, aparat səviyyəsində həyata keçirilən əmrlərdən maksimum istifadə deməkdir - Prosedurlararası optimallaşdırmalar
olanlar. yalnız xüsusi funksiyaların koduna təsir edən adi optimallaşdırmadan fərqli olaraq bütün proqramın qlobal optimallaşdırılması - Profilə əsaslanan optimallaşdırma
olanlar. Proqramı test rejimində işlətmək, tez-tez istifadə olunan funksiyalar daxilində müəyyən kod fraqmentlərini ötürmək üçün lazım olan vaxt haqqında məlumat toplamaq və sonra bu məlumatları optimallaşdırmaq üçün istifadə etmək imkanı. - Pentium III prosessorlarında SSE təlimat dəstinə dəstək
Qeyd: hesablama tapşırıqları üçün SSE2 əmrləri daha çox maraq doğurur, yəni. vektor əmrləri 64 bitlik real ədədlər üzərindədir, lakin onlar yalnız Pentium 4 prosessorlarında dəstəklənir, hələ bizim ixtiyarımızda deyil. - Avtomatik vektorlaşdırma
olanlar. yenidən SSE və SSE2 əmrlərindən istifadə edərək, kompilyator tərəfindən avtomatik daxil edilir - SMP sistemlərində proqramlaşdırma üçün OpenMP dəstəyi
Qeyd: klasterdə ilk növbədə MPI interfeysindən istifadə etmək tövsiyə olunur; klasterdə OpenMP-nin geniş istifadəsi gözlənilmir və bu cür təcrübələr hələ həyata keçirilməyib; lakin çox güman ki, ortaq yaddaş üçün paralelləşdirilmiş kitabxanalardan (BLAS və s.) istifadə etmək məntiqlidir. - Məlumatların əvvəlcədən götürülməsi
olanlar. Göründüyü kimi, yaddaşdan məlumatların önbelleğine əvvəlcədən yükləmə əmrlərinin istifadəsi bir müddət sonra lazım olacaq - Müxtəlif prosessorlar üçün "Dispetçerlik" kodu
olanlar. istifadə etməyə imkan verən tək icra olunan faylda müxtəlif prosessorlar üçün kod yaratmaq imkanı son prosessorlar proqramların əvvəlki prosessorlarla binar uyğunluğunu qoruyaraq, onlar üzrə ən yüksək performansa nail olmaq; Bizim klasterimizdə bu hələ aktual deyil, çünki yalnız Pentium III prosessorları istifadə olunur və klasterdə tərtib edilmiş proqramların başqa maşınlarda ötürülməsi və işləməsi nəzərdə tutulmur.
Əsas kompilyator variantları
Ən maraqlısı, əlbəttə ki, kodun optimallaşdırılması variantlarıdır. Seçimlərin əksəriyyəti C++ və Fortran kompilyatorları üçün ümumidir. Daha çox Ətraflı Təsviriİngilis istifadəçi təlimatlarında seçimlər.
Optimallaşdırma səviyyələri | |
---|---|
Seçim | Təsvir |
-O0 | Optimallaşdırmanı söndürür |
-O1 və ya -O2 | Sürət üçün əsas optimallaşdırma. Kitabxana funksiyalarının daxili daxil edilməsi qeyri-aktiv edilib. C++ kompilyatoru üçün bu seçimlər eyni optimallaşdırmanı təmin edir; Fortran kompilyatoru üçün -O2 seçiminə üstünlük verilir, çünki dövrü təşviqi də daxildir. |
-O3 | Döngə çevrilmələri, məlumatların əvvəlcədən alınması və OpenMP-dən istifadə daxil olmaqla daha güclü optimallaşdırmalar. Bəzi proqramlar ilə müqayisədə təkmilləşdirilmiş performansa zəmanət verməyə bilər -O2. Vektorlaşdırma variantları ilə birlikdə istifadə etmək məntiqlidir -xK Və -xW. |
-açmaq[n] | n dəfəyə qədər döngənin açılmasını aktivləşdirir. |
Müəyyən bir prosessor üçün optimallaşdırmalar | |
Seçim | Təsvir |
-tpp6 | Penitum Pro, Pentium II və Pentium III prosessorları üçün optimallaşdırma |
-tpp7 | Penitum 4 prosessorları üçün optimallaşdırma (bu seçim IA-32 kompilyatoru üçün standart olaraq aktivdir) |
-xM | Pentium MMX, Pentium II və sonrakı prosessorlara xas olan MMX genişləndirmələrindən istifadə edərək kodun yaradılması |
-xK | Pentium III prosessorlarına xas olan SSE genişlənmələrindən istifadə edərək kodun yaradılması |
-xW | Pentium 4 prosessorlarına xas olan SSE2 genişləndirmələrindən istifadə edərək kodun yaradılması |
Prosedurlararası optimallaşdırma | |
-ip | Prosedurlararası optimallaşdırma bir fayl daxilində aktivləşdirilir. Variantını qeyd etsəniz -ip_no_inlining, sonra daxili funksiya əlavələri deaktiv edilir. |
-ipo | Müxtəlif fayllar arasında prosedurlararası optimallaşdırmaya imkan verir |
Profillərdən istifadə edərək optimallaşdırmalar | |
-prof_gen | Profil yaratmaq üçün istifadə ediləcək "profilləşdirmə" kodu yaradılır, yəni. proqramda müəyyən yerlərin keçmə tezliyi haqqında məlumatların toplanması |
-prof_use | Optimallaşdırma profilləşdirmə mərhələsində əldə edilən məlumatlar əsasında həyata keçirilir. Onu prosedurlararası optimallaşdırma seçimi ilə birlikdə istifadə etmək məna kəsb edir -ipo. |
SMP sistemləri üçün paralelləşdirmə | |
-openmp | OpenMP 2.0 standartı üçün dəstəyi təmin edir |
-paralel | Döngələrin avtomatik paralelləşdirilməsi aktivləşdirilib |
Performans
İxbt.com serverində dərc edilmiş SPEC CPU2000 testlərinin nəticələrinə görə, Intel tərtibçilərinin 6.0 versiyası gcc kompilyatorlarının 2.95.3, 2.96 və 3.1 versiyaları və PGI 4.0.2 versiyası ilə müqayisədə demək olar ki, universal olaraq daha yaxşı idi. Bu sınaqlar 2002-ci ildə Pentium 4/1.7 GHz prosessoru və RedHat Linux 7.3-ə malik kompüterdə aparılıb.
Polyhedron tərəfindən aparılmış testlərə görə, Intel Fortran kompilyator versiyası 7.0 demək olar ki, universal olaraq Linux üçün digər Fortran 77 kompilyatorlarından (Absoft, GNU, Lahey, NAG, NAS, PGI) üstün idi. Yalnız bəzi testlərdə Intel kompilyatoru Absoft, NAG və Lahey kompilyatorlarından bir qədər aşağıdır. Bu testlər Pentium 4/1.8 GHz prosessoru və Mandrake Linux 8.1 ilə işləyən kompüterdə aparılıb.
Intel kompilyatorlarının 9.1 versiyası da gcc kompilyatorlarını üstələyir və Absoft, PathScale və PGI ilə müqayisə olunan performans göstərir.
Bizə kompilyator (GCC və ya Intel) seçiminin və optimallaşdırma seçimlərinin onların real həyat problemləri üzərində iş sürətinə təsiri haqqında məlumat göndərən istifadəçilərə və oxuculara minnətdar olacağıq.
Kitabxanalar
C dili kompilyatoru GNU layihəsi çərçivəsində hazırlanmış iş vaxtı kitabxanasından istifadə edir ( libc.a).
Aşağıdakı kitabxanalar Intel C++ kompilyatoru ilə təchiz edilmişdir:
- libcprts.a- Dinkumware tərəfindən hazırlanmış iş vaxtı C++ dil kitabxanası.
- libcxa.a- Intel tərəfindən C++ inkişafı üçün əlavə iş vaxtı kitabxanası.
- libimf.a- Intel tərəfindən hazırlanmış, triqonometrik, hiperbolik, eksponensial, xüsusi, mürəkkəb və digər funksiyaların optimallaşdırılmış və yüksək dəqiqlikli tətbiqlərini ehtiva edən riyazi funksiyalar kitabxanası (ətraflı məlumat üçün funksiyaların siyahısına baxın).
- libirc.a- prosessordan asılı olaraq profilləşdirmə (PGO) və kod göndərilməsi üçün iş vaxtı dəstəyi (yuxarıya baxın).
- libguide.a- OpenMP tətbiqi.
Bu siyahıda statik kitabxanalar var, lakin onların əksəriyyəti üçün dinamik olanlar da var, yəni. başlanğıc zamanı qoşulmuş seçimlər ( .belə ki).
Aşağıdakı kitabxanalar Fortran kompilyatoru ilə təchiz edilmişdir: libCEPCF90.a, libIEPCF90.a, libintrins.a, libF90.a, libimf.a riyazi funksiyalar kitabxanasından da istifadə olunur.
İcra edilə bilən faylın qurulması
Kitabxanalar statik (qurulma zamanı) və ya dinamik (proqramın işə salınması zamanı) bağlana bilər. Dinamik yanaşma icra olunan faylın ölçüsünü azaltmağa imkan verir və kitabxananın eyni nüsxəsini yaddaşda paylaşmağa imkan verir, lakin bunun üçün proqramların işlədiləcəyi hər bir qovşaqda istifadə olunan dinamik kitabxanaların tam dəstini quraşdırmaq lazımdır. .
Beləliklə, əgər siz Intel kompilyatorunu Linux kompüterinizdə quraşdırmısınızsa və tərtib edilmiş icra edilə bilən faylları digər maşınlarda işə salmaq istəyirsinizsə, ya statik quruluşdan istifadə etməlisiniz (bu daha asandır) və ya Intel dinamik kitabxanalarını bu maşınlara kopyalamalısınız (adətən aşağıdakılardan /opt/intel /compiler70/ia32/lib) kimi bir kataloqu /etc/ld.so.conf faylında sadalanan qovluqlardan birinə köçürün və eyni zamanda GNU/Linux dinamik kitabxanalarının eyni dəstinin bunlarda quraşdırıldığından əmin olun. maşınlar.
Varsayılan olaraq, bütün Intel inkişaf kitabxanaları (libcxa.so istisna olmaqla) statik olaraq əlaqələndirilir və bütün Linux sistem kitabxanaları və GNU kitabxanaları dinamik şəkildə əlaqələndirilir. Seçimdən istifadə etməklə -statik siz kollektoru (link redaktoru) bütün kitabxanaları statik olaraq birləşdirməyə məcbur edə bilərsiniz (bu, həcmi artıracaq) icra edilə bilən fayl) və seçimdən istifadə edin -i_dinamik Siz bütün Intel inkişaf kitabxanalarını dinamik şəkildə əlaqələndirə bilərsiniz.
Görünüş seçimindən istifadə edərək əlavə kitabxanaları birləşdirərkən -kitabxana seçimindən istifadə etməli ola bilərsiniz -Kataloq kitabxanaların yerləşdiyi yolu müəyyən etmək üçün.
Seçimlərdən istifadə -Bstatik Və -Bdinamik-də göstərilən kitabxanaların hər birinin dinamik və ya statik əlaqəsini açıq şəkildə təyin edə bilərsiniz komanda xətti.
Seçimdən istifadə etməklə -c icra olunan faylın yığılması dayandırılır və yalnız kompilyasiya yerinə yetirilir (obyekt modulunun yaradılması).
Fortran və C-də modulların paylaşılması
Fortran və C-də yazılmış modulları paylaşmaq üçün obyekt modullarında prosedurların adlandırılması, parametrlərin ötürülməsi və əgər varsa, qlobal dəyişənlərə giriş haqqında razılaşmaq lazımdır.
Varsayılan olaraq, Intel Fortran tərtibçisi prosedur adlarını kiçik hərflərə çevirir və adın sonuna alt xətt əlavə edir. C kompilyatoru heç vaxt funksiya adlarını dəyişdirmir. Beləliklə, əgər biz Fortran modulundan C-də həyata keçirilən FNNAME funksiyasını və ya prosedurunu çağırmaq istəyiriksə, onda C modulunda onu fnname_ adlandırmaq lazımdır.
Fortran kompilyatoru seçimi dəstəkləyir -nus [fayl adı], bu, daxili prosedur adlarına alt xətt əlavə edilməsini söndürməyə imkan verir. Əgər fayl adı göstərilibsə, bu, yalnız göstərilən faylda sadalanan prosedur adları üçün edilir.
Varsayılan olaraq, Fortran-da parametrlər istinadla, C-də isə həmişə dəyərlə ötürülür. Beləliklə, bir C modulundan Fortran prosedurunu çağırarkən, parametrlər kimi faktiki parametrlərin dəyərlərini ehtiva edən müvafiq dəyişənlərə göstəriciləri ötürməliyik. Fortran modulundan çağırılmalı olan funksiyanı C dilində yazarkən biz formal parametrləri müvafiq tiplərə göstəricilər kimi təsvir etməliyik.
C modullarında Fortran modullarında müəyyən edilmiş ÜMUMİ bloklardan istifadə etmək mümkündür (ətraflı məlumat üçün Intel Fortran Kompilyatorunun İstifadəçi Təlimatına, C və Fortran Qarışıqları bölməsinə baxın).
Intel və GCC kompilyatorlarının paylaşılması
Intel C++ kompilyatoru tərəfindən istehsal edilən C obyekt modulları GCC kompilyatoru və GNU C kitabxanası tərəfindən hazırlanmış modullarla uyğun gəlir. Beləliklə, bu modullar icc və ya gcc əmrləri ilə tərtib edilmiş vahid proqramda birlikdə istifadə edilə bilər, lakin Intel kitabxanalarını düzgün daxil etmək üçün icc-dən istifadə etmək tövsiyə olunur.
Intel kompilyatoru GNU layihəsi tərəfindən istifadə edilən və GCC kompilyatoru tərəfindən dəstəklənən bir sıra qeyri-standart C dili uzantılarını dəstəkləyir (lakin onların hamısı deyil, daha ətraflı məlumat üçün buraya baxın).
İstifadəçi təlimatı C++ və Fortran dillərində obyekt modullarının uyğunluğu haqqında heç nə demir, görünür, dəstəklənmir.
Standart dəstəyi
Linux üçün Intel C++ Compiler 7.0 ANSI/ISO C dil standartını (ISO/IEC 9899/1990) dəstəkləyir. ANSI C standartı ilə ciddi uyğunluq qurmaq mümkündür ( -ansi) və ya uzadılmış ANSI C dialekti ( -Xa). Seçimdən istifadə edərkən -c99
Jurnalın əvvəlki sayında biz Intel VTune Performance Analyzer ailəsinin məhsullarını - proqram tərtibatçıları arasında layiqincə populyar olan və kodda aşkarlanmağa imkan verən performans təhlili alətlərini müzakirə etdik. komanda tətbiqləri inkişaf etdiricilərə potensialı müəyyən etmək və aradan qaldırmaq imkanı verən çox CPU resursunu sərf edən dar yerlər, kodun oxşar bölmələri ilə əlaqələndirilir və bununla da tətbiqin inkişaf prosesini sürətləndirir. Bununla belə, nəzərə alın ki, tətbiqlərin performansı onların işlənib hazırlanmasında istifadə olunan kompilyatorların nə qədər səmərəli olmasından və hansı xüsusiyyətlərdən asılıdır. aparat onlar maşın kodunu yaradan zaman istifadə olunur.
Windows və Linux üçün Intel Intel C++ və Intel Fortran kompilyatorlarının ən son versiyaları sizə aşağıdakılara əsaslanan sistemlər üçün proqram performansı üstünlükləri əldə etməyə imkan verir. Intel prosessorları Itanium 2, Intel Xeon və Intel Pentium Bu prosessorların Hyper-Threading texnologiyası kimi xüsusiyyətlərinin istifadəsi səbəbindən digər istehsalçıların mövcud kompilyatorları ilə müqayisədə 4-dən 40% -ə qədər.
Bu kompilyatorlar ailəsi tərəfindən kodun optimallaşdırılması ilə bağlı fərqlər arasında üzən nöqtə əməliyyatlarını yerinə yetirmək üçün yığının istifadəsi, prosedurlararası optimallaşdırma (IPO), tətbiq profilinə uyğun optimallaşdırma (Profilin idarəolunan optimallaşdırılması (PGO), məlumatların önbelleğe yüklənməsi (PGO) daxildir. Yaddaş girişi ilə bağlı gecikmənin qarşısını alan verilənlərin əvvəlcədən alınması), Intel prosessorlarının xarakterik xüsusiyyətlərinə dəstək (məsələn, məlumatların axın emalı üçün genişlənmələr Intel Streaming SIMD Extensions 2, Intel Pentium 4 üçün xarakterik), kodun icrasının avtomatik paralelləşdirilməsi, tətbiqetmə yaradılması, bir neçə üzərində işləyir fərqli növlər onlardan biri üçün optimallaşdırarkən prosessorlar, sonrakı kodu "proqnozlaşdırmaq" üçün alətlər (filial proqnozu), icra ipləri ilə işləmək üçün genişləndirilmiş dəstək.
Qeyd edək ki, Intel kompilyatorlarından Alias/Wavefront, Oracle, Fujitsu Siemens, ABAQUS, Silicon Graphics, IBM kimi tanınmış şirkətlərdə istifadə olunur. Bir sıra şirkətlər tərəfindən aparılan müstəqil sınaqlara əsasən, Intel kompilyatorlarının performansı digər istehsalçıların kompilyatorlarının performansından əhəmiyyətli dərəcədə yüksəkdir (bax, məsələn, http://intel.com/software/products/compilers/techtopics/compiler_gnu_perf .pdf).
Aşağıda bəzi xüsusiyyətlərə baxacağıq son versiyalar Masaüstü və server üçün Intel kompilyatorları əməliyyat sistemləri.
Microsoft Windows platforması üçün kompilyatorlar
Windows üçün Intel C++ Compiler 7.1
Intel C++ Compiler 7.1 bu ilin əvvəlində buraxılmış kompilyatordur və Intel Itanium, Intel Itanium 2, Intel Pentium 4 və Intel Xeon prosessorları, eləcə də Intel Centrino texnologiyasından istifadə edən Intel Pentium M prosessoru üçün yüksək optimallaşdırılmış kod təmin edir və bu proqramda istifadə üçün nəzərdə tutulub. mobil cihazlar.
Göstərilən kompilyator Microsoft Visual C++ 6.0 və Microsoft Visual Studio .NET inkişaf alətləri ilə tam uyğundur: o, müvafiq inkişaf mühitlərinə daxil edilə bilər.
Bu kompilyator ANSI və ISO C/C++ standartlarını dəstəkləyir.
Windows üçün Intel Fortran Compiler 7.1
Bu ilin əvvəlində də buraxılmış Windows üçün Intel Fortran Compiler 7.1 sizə Intel Itanium, Intel Itanium 2, Intel Pentium 4 və Intel Xeon, Intel Pentium M prosessorları üçün optimallaşdırılmış kod yaratmağa imkan verir.
Bu kompilyator Microsoft Visual C++ 6.0 və Microsoft Visual Studio .NET inkişaf alətləri ilə tam uyğundur, yəni müvafiq inkişaf mühitlərinə daxil edilə bilər. Bundan əlavə, bu kompilyator 64 bitlik Intel Fortran Kompilyatorundan istifadə edərək 32 bitlik Pentium prosessorunda Microsoft Visual Studio proqramından istifadə etməklə Itanium/Itanium 2 prosessorlarında işləyən əməliyyat sistemləri üçün 64 bit proqramlar hazırlamağa imkan verir. Kodu sazlayarkən, bu tərtibçi sizə sazlayıcıdan istifadə etməyə imkan verir Microsoft platformaları.NET.
Əgər sizdə Compaq məhsulu quraşdırılıbsa, orijinal Intel Fortran Compiler 7.1 əvəzinə Visual Fortran 6.6 istifadə edilə bilər, çünki bu tərtibçilər səviyyəyə uyğundur. mənbə kodu.
Windows üçün Intel Fortran Compiler 7.1 ISO Fortran 95 standartı ilə tam uyğun gəlir və iki dildə kodu olan proqramların yaradılmasını və sazlanmasını dəstəkləyir: C və Fortran.
Linux platforması üçün kompilyatorlar
Linux üçün Intel C++ Compiler 7.1
İlin əvvəlində buraxılmış digər kompilyator, Linux üçün Intel C++ Compiler 7.1, Intel Itanium, Intel Itanium 2, Intel Pentium 4, Intel Pentium M prosessorları üçün yüksək kod optimallaşdırılmasına nail olmağa imkan verir.Bu kompilyator tam mənbə kodunda və obyekt modullarında GNU C kompilyatoru ilə uyğun gəlir ki, bu da GNU C-dən istifadə etməklə yaradılmış proqramları əlavə xərc çəkmədən ona köçürməyə imkan verir. altında Linux nəzarəti erkən ŞƏT əməliyyat sistemləri kimi digər platformalar üçün tərtib edilmiş kod, erkən versiyalar Sun Solaris və s.), bu ikili kod səviyyəsində gcc 3.2 kompilyatoru ilə tam uyğunluq deməkdir. Nəhayət, Linux üçün Intel C++ Compiler 7.1 ilə siz hətta mənbə kodunda bir neçə kiçik dəyişiklik etməklə Linux nüvəsini yenidən tərtib edə bilərsiniz.
Linux üçün Intel Fortran Compiler 7.1
Linux üçün Intel Fortran Compiler 7.1 sizə Intel Itanium, Intel Itanium 2, Intel Pentium 4, Intel Pentium M prosessorları üçün optimallaşdırılmış kod yaratmağa imkan verir.Bu kompilyator Compaq Visual Fortran 6.6 kompilyatoru ilə mənbə kodu səviyyəsində tam uyğundur və sizə imkan verir. Compaq Visual Fortran istifadə edərək yaradılmış proqramları istifadə edərək yenidən tərtib etmək və bununla da onların performansını artırmaq.
Bundan əlavə, göstərilən kompilyator emacs redaktoru, gdb debugger və make application build utiliti kimi tərtibatçılar tərəfindən istifadə olunan yardım proqramları ilə uyğun gəlir.
Bu kompilyatorun Windows versiyası kimi, Linux üçün Intel Fortran Compiler 7.1 də ISO Fortran 95 standartına tam uyğundur və iki dildə kodu olan proqramların yaradılmasını və sazlanmasını dəstəkləyir: C və Fortran.
Xüsusilə vurğulanmalıdır ki, sadalanan Intel kompilyatorlarının yaradılmasına Nijni Novqoroddakı Intel Rus Proqram təminatının İnkişafı Mərkəzinin mütəxəssisləri mühüm töhfə vermişlər. Daha çox ətraflı məlumat Intel kompilyatorları haqqında məlumatı www.intel.com/software/products/ ünvanındakı Intel veb saytında tapa bilərsiniz.
Bu məqalənin ikinci hissəsi mobil qurğular üçün proqramlar yaradan Intel kompilyatorlarına həsr olunacaq.
Sən qul deyilsən!
Elit təbəqənin uşaqları üçün qapalı təhsil kursu: "Dünyanın əsl tənzimləməsi".
http://noslave.org
Vikipediyadan material - pulsuz ensiklopediya
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). | ||||||||||||||||||||||||||||||||||||
Növ | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Müəllif |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
İnkişaf etdirici | ||||||||||||||||||||||||||||||||||||
Tərtibatçılar |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
Üzərində yazılmışdır |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
İnterfeys |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
əməliyyat sistemi | ||||||||||||||||||||||||||||||||||||
İnterfeys dilləri |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
Birinci nəşr |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
Aparat platforması | ||||||||||||||||||||||||||||||||||||
Ən son versiya | ||||||||||||||||||||||||||||||||||||
Namizədi azad edin |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
Beta versiyası |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
Alfa versiyası |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
Test versiyası |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
Oxunan fayl formatları |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
Yaradılmış fayl formatları |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
dövlət |
170-ci sətirdə Modul:Vikiməlumatda Lua xətası: "wikibase" sahəsini indeksləşdirməyə cəhd (sıfır dəyər). |
|||||||||||||||||||||||||||||||||||
Lisenziya |
Əsas xüsusiyyətləri:
Kompilyator paralel proqramların yazılması üçün OpenMP 3.0 standartını dəstəkləyir. Həmçinin, OpenMP-nin Cluster OpenMP adlı modifikasiyasını ehtiva edir, onunla MPI istifadə edən klasterlərdə OpenMP-ə uyğun yazılmış proqramları işlədə bilərsiniz. Intel C++ Kompilyatoru Edison Design Group-un ön hissəsindən (kompilyatorun tərtib edilmiş proqramı təhlil edən hissəsi) istifadə edir. Eyni frontend SGI MIPSpro, Comeau C++ və Portland Group tərtibçiləri tərəfindən istifadə olunur. Bu kompilyator SPEC CPU benchmarklarını tərtib etmək üçün geniş istifadə olunur. Kompilyatoru ehtiva edən Intel-dən 4 məhsul seriyası var:
Kompilyatorun Linux versiyasının çatışmazlıqlarına bəzi proqramların tərtibi zamanı problemlər yarada bilən C dilinin GNU genişlənmələri (GCC tərtibçisi tərəfindən dəstəklənir) ilə qismən uyğunsuzluq daxildir.
Eksperimental seçimlərKompilyatorun aşağıdakı eksperimental versiyaları nəşr edilmişdir:
Əsas bayraqlar
"Intel C++ kompilyatoru" məqaləsi haqqında rəy yazınQeydlərhəmçinin baxBağlantılar
Intel C++ kompilyatorunu xarakterizə edən çıxarışHəm də o, Ağ Maqusunu sonuncu dəfə görmək üçün qayıtdı... Heç vaxt unuda bilmədiyi əri və ən sadiq dostu. Ürəyində onu bağışladı. Lakin o, böyük təəssüf hissi ilə ona Maqdalenanın bağışlanmasını gətirə bilmədi... Beləliklə, gördüyünüz kimi, İsidora, “bağışlanma” haqqında böyük xristian nağılı sadəlövh möminlər üçün uşaqca bir yalandır. hər hansı bir pislik etmək, bilə-bilə ki, nə edirlərsə etsinlər, sonunda bağışlanacaqlar. Siz ancaq bağışlanmağa layiq olanı bağışlaya bilərsiniz. İnsan başa düşməlidir ki, hər hansı bir Pisliyə görə cavab verməlidir... Həm də hansısa sirli Tanrının qarşısında yox, özünü amansız əzablara məcbur edərək. Magdalena Vladykanı bağışlamadı, baxmayaraq ki, ona dərin hörmət bəsləyir və səmimiyyətlə sevirdi. Radomirin dəhşətli ölümünə görə hamımızı bağışlaya bilmədiyi kimi. Axı O, hamıdan yaxşı başa düşürdü - biz ona kömək edə bilərdik, onu amansız ölümdən xilas edə bilərdik... Amma istəmirdik. Ağ Maqusun təqsirini çox qəddar hesab edib, bir dəqiqə belə unutmadan bu təqsiri ilə yaşamağa buraxdı... Ona asan bağışlanmaq istəmədi. Biz onu bir daha görmədik. Necə ki, körpələrini heç görmədilər. Məbədin cəngavərlərindən biri - sehrbazımız - Maqdalena vasitəsilə Vladikanın bizə qayıtmaq xahişinin cavabını çatdırdı: “Günəş eyni gündə iki dəfə doğmur... Sizin dünyanızın (Radomir) sevinci heç vaxt sənə qayıtmaram, necə ki, mən də sənə qayıtmayacağam və mən də... İMAMIMI və HƏQİQİMİ tapdım, onlar diri, səninki isə ÖLÜ... Oğullarına ağla - səni sevirdilər. Mən sağ ikən onların ölümünü səni heç vaxt bağışlamayacağam. Və günahın səninlə qalsın. Ola bilsin ki, bir gün sənə Nur və Bağışlar gətirsin... Amma məndən deyil”. Maqus Conun başını eyni səbəbdən Meteora gətirmədilər - Məbədin Cəngavərlərindən heç biri bizə qayıtmaq istəmədi... Biz də onları itirdik, çünki biz bir dəfədən çox itirmişik, onlar da istəməyənlərdir. qurbanlarımızı anlayın və qəbul edin... Sizin kimi kim etdi - bizi qınayıb getdilər.Başım fırlanırdı!.. Susuz bir insan kimi, biliyə olan sonsuz aclığımı yatırdım, Şimalın səxavətlə verdiyi heyrətamiz məlumat axınını acgözlüklə uddum... Və daha çox şey istədim!.. Hər şeyi bilmək istədim. son. Ağrıdan, dərddən yanan səhrada şirin su nəfəsi idi! Və doya bilmədim... - Minlərlə sualım var! Amma vaxt qalmayıb... Nə edim, Şimal?.. - Soruş, İsidora!.. Sor, sənə cavab verməyə çalışacağam... – Sever, de görüm, niyə mənə elə gəlir ki, bu hekayə iki həyat hekayəsini birləşdirir, oxşar hadisələrlə iç-içədir və onlar bir insanın həyatı kimi təqdim olunur? Yoxsa mən haqlı deyiləm? - Tamamilə haqlısan, İsidora. Bayaq sizə dediyim kimi, bəşəriyyətin yalançı tarixini yaradan “dünyanın gücləri” bir min yarım il əvvəl yaşamış yəhudi peyğəmbəri Yeşuanın yad həyatını Məsihin həqiqi həyatına “qoymuşlar” ( Şimal hekayəsi dövründən). Həm də təkcə özü deyil, həm də ailəsi, qohumları və dostları, dostları və ardıcılları. Axı bu, Yeşua peyğəmbərin arvadı, bir bacısı Marta və bir qardaşı Lazar, anası Mariya Yakobenin bacısı və Radomir və Maqdalenanın yanında olmayan başqaları olan yəhudi Məryəm idi. Necə ki, onların yanında başqa “həvarilər” yox idi - Paul, Matta, Peter, Luka və başqaları... Məhz Yeşua peyğəmbərin ailəsi min yarım il əvvəl Provansa (o vaxtlar Transalp Qala adlanırdı), Yunanıstanın Massaliya şəhərinə (indiki Marsel) köçmüşdü, çünki o zaman Massaliya Avropa ilə Asiya arasında “qapı” idi və bu, bütün “təqib olunanlar” üçün təqiblərdən və bəlalardan qaçmaq üçün ən asan yol idi.
|