ඉන්ටෙල් සම්පාදක. නව සම්පාදක අවශ්‍ය වූයේ ඇයි?

Intel C++ සහ Fortran compilers සහ MKL පුස්තකාලය

ලිනක්ස් සඳහා සම්මත GNU සම්පාදක සමඟින්, Intel C++ සහ Fortran සම්පාදක NIVC පරිගණක සංකීර්ණයේ පොකුරු මත ස්ථාපනය කර ඇත. දැනට (2006 ආරම්භයේ), compilers අනුවාදය 9.1 සියලුම පොකුරු මත ස්ථාපනය කර ඇත. මෙම පිටුව මෙම සම්පාදකයන්ගේ වඩාත් වැදගත් විකල්ප සහ සැකසුම් විස්තර කිරීමට මෙන්ම GNU සම්පාදකයන්ගෙන් ඒවායේ ප්‍රධාන වෙනස්කම් විස්තර කිරීමට කැපවී ඇත. පිටුව ප්‍රධාන වශයෙන් MSU පර්යේෂණ පරිගණක මධ්‍යස්ථාන පොකුරු භාවිතා කරන්නන් ඉලක්ක කර ඇත, නමුත් අනෙකුත් රුසියානු භාෂාව කතා කරන පරිශීලකයින්ට ද ප්‍රයෝජනවත් විය හැකිය. IA-64 වේදිකාව සඳහා සම්පාදනය සම්බන්ධ ගැටළු මෙහි ආමන්ත්‍රණය නොකෙරේ.

එසේම, Intel පුස්තකාලය සියලුම පොකුරු මත ස්ථාපනය කර ඇත කර්නල් ගණිත පුස්තකාලය(MKL) අනුවාදය 8.0.2. පුස්තකාලය /usr/mkl නාමාවලියෙහි පිහිටා ඇත. 32, 64 සහ em64t උප බහලුම් lib නාමාවලියෙහි ඇති බව කරුණාවෙන් සලකන්න. කුහුඹු පොකුරේ ඔබ em64t උප බහලුමෙන් පුස්තකාල භාවිතා කළ යුතු අතර අනෙකුත් පොකුරු 32 උප බහලුමෙන් භාවිතා කළ යුතුය. අවශ්‍ය සියලුම ලියකියවිලි සහ උදාහරණ /usr/mkl/doc නාමාවලියෙන් ලබා ගත හැක.

නව සම්පාදක අවශ්‍ය වූයේ ඇයි?

නව සම්පාදකයන්ගේ අවශ්‍යතාවය ප්‍රධාන වශයෙන් පැන නැගුනේ a) Fortran 90 හි සහය දක්වන ක්‍රමලේඛනයට සහ b) G77 සම්පාදකයෙන් සපයන ෆෝට්‍රාන් වැඩසටහන් වලට වඩා බලවත් ප්‍රශස්තිකරණයක් සඳහා වන අතර, එය C වෙත පරිවර්තනය කර පසුව gcc භාවිතයෙන් සම්පාදනය කරයි.

PGI (Portland Group) සම්පාදකයින් ද මෙම අවශ්‍යතා සපුරාලන නමුත් සංවර්ධක සමාගම රුසියාවට ඒවා සැපයීම ප්‍රතික්ෂේප කළේය.

භාවිතා කරන්නේ කෙසේද?

ඉන්ටෙල් සම්පාදකයන් විධාන භාවිතා කර ඇත icc(C හෝ C++), icpc(C++) සහ ifort(ෆෝට්‍රාන් 77/90). MPI වැඩසටහන් සම්පාදනය කිරීම සහ එකලස් කිරීම සඳහා mpicc, mpiCC, සහ mpif77 විධාන ද Intel සම්පාදක භාවිතා කිරීමට වින්‍යාස කර ඇත.

mpigcc, mpig++ සහ mpig77 විධාන භාවිතා කරමින් GNU සම්පාදක භාවිතා කිරීමටද හැකිය (Fortran 90 සඳහා සහය නොදක්වයි).

ආදාන ගොනු

පෙරනිමියෙන්, දිගුව සහිත ගොනු .cppසහ .cxx C++ භාෂාවේ මූලාශ්‍ර පාඨ ලෙස සලකනු ලැබේ, දිගුව සහිත ගොනු .c- C මූලාශ්‍ර කේතය, සහ icpc සම්පාදකය .c ගොනු C++ ප්‍රභව කේතය ලෙස සම්පාදනය කරයි.

දිගු සහිත ගොනු .එෆ්, .ftnසහ .සදහාෆොට්‍රාන් භාෂාවේ ප්‍රභව පාඨ ලෙස පිළිගනු ලැබේ, ස්ථාවර ආකාරයේ අංකනයකින් සහ ගොනු .fppසහ .එෆ්අතිරේකව Fortran භාෂා පූර්ව සකසනය හරහා ගමන් කරයි. දිගුව සහිත ගොනු .f90ෆෝට්‍රාන් 90/95 මූලාශ්‍ර පාඨ ලෙස සලකනු ලබන්නේ නිදහස් ආකෘති අංකනය සමඟිනි. ඔබට විකල්ප භාවිතා කරමින් Fortran වැඩසටහන් සඳහා ස්ථාවර හෝ නොමිලයේ අංකනය පැහැදිලිව සඳහන් කළ හැක - FIසහ -FRපිළිවෙලින්.

දිගුව සහිත ගොනු .එස් IA-32 සඳහා එකලස් කිරීමේ භාෂා කේතය ලෙස පිළිගෙන ඇත.

Intel Compiler විශේෂාංග

පරිශීලක අත්පොතෙහි සංවර්ධකයා විසින් ප්‍රකාශ කර ඇති පරිදි Intel සම්පාදකයන්ගේ ලක්ෂණ අපගේ සමහර අදහස් සමඟ අපි මෙහි ඉදිරිපත් කරමු.

  • සැලකිය යුතු ප්රශස්තකරණය
    පෙනෙන විදිහට, මෙයින් අදහස් කරන්නේ කේතය ඉහළ මට්ටමක ප්රශස්ත කිරීමයි, i.e. පළමුවෙන්ම, සියලුම සම්පාදකයින් පාහේ වැඩි හෝ අඩු සාර්ථකත්වයකින් සිදු කරන විවිධ ලූප පරිවර්තන
  • පාවෙන ලක්ෂ්ය ප්රශස්තකරණය
    පෙනෙන විදිහට, මෙයින් අදහස් කරන්නේ, පළමුවෙන්ම, දෘඪාංග මට්ටමින් ක්රියාත්මක කරන ලද උපරිම විධාන භාවිතා කිරීමයි
  • අන්තර් ක්‍රියා පටිපාටි ප්‍රශස්තකරණය
    එම. සාමාන්‍ය ප්‍රශස්තකරණයට ප්‍රතිවිරුද්ධව, සම්පූර්ණ වැඩසටහනේ ගෝලීය ප්‍රශස්තකරණය, විශේෂිත ශ්‍රිතවල කේතයට පමණක් බලපායි.
  • පැතිකඩ පදනම් ප්‍රශස්තකරණය
    එම. පරීක්ෂණ මාදිලියේ වැඩසටහනක් ක්‍රියාත්මක කිරීමේ හැකියාව, නිතර භාවිතා කරන ශ්‍රිතයන් තුළට ඇතැම් කේත කොටස් යැවීමට ගතවන කාලය පිළිබඳ දත්ත රැස් කිරීම, පසුව ප්‍රශස්තකරණය සඳහා මෙම දත්ත භාවිතා කිරීම
  • Pentium III ප්‍රොසෙසරවල SSE උපදෙස් කට්ටලය සඳහා සහය දක්වයි
    සටහන: පරිගණක කාර්යයන් සඳහා, SSE2 විධාන වැඩි උනන්දුවක් දක්වයි, i.e. දෛශිකය 64-bit තාත්වික සංඛ්‍යා වලට වඩා විධාන කරයි, නමුත් ඒවා සහය දක්වන්නේ 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 වාරයක් දක්වා ලූපය ඉවත් කිරීම සබල කරයි.
නිශ්චිත ප්‍රොසෙසරයක් සඳහා ප්‍රශස්තකරණය
විකල්පයවිස්තර
-tpp6Penitum Pro, Pentium II සහ Pentium III ප්‍රොසෙසර සඳහා ප්‍රශස්තකරණය
-tpp7Penitum 4 ප්‍රොසෙසර සඳහා ප්‍රශස්තකරණය (IA-32 සම්පාදකය සඳහා මෙම විකල්පය පෙරනිමියෙන් සක්‍රීය කර ඇත)
-xMPentium MMX, Pentium II සහ පසු ප්‍රොසෙසර සඳහා විශේෂිත MMX දිගු භාවිතා කරමින් කේත උත්පාදනය
-xKPentium III ප්‍රොසෙසර සඳහා විශේෂිත වූ SSE දිගු භාවිතා කරමින් කේත උත්පාදනය
-xWPentium 4 ප්‍රොසෙසර සඳහා විශේෂිත වූ SSE2 දිගු භාවිතයෙන් කේත උත්පාදනය
අන්තර් ක්රියා පටිපාටි ප්රශස්තකරණය
-ipඑක් ගොනුවක් තුළ අන්තර් ක්‍රියා පටිපාටි ප්‍රශස්තිකරණය සක්‍රීය කර ඇත. ඔබ විකල්පය සඳහන් කරන්නේ නම් -ip_no_inlining, පසුව පේළිගත ශ්‍රිත ඇතුළත් කිරීම් අක්‍රිය වේ.
-ipoවිවිධ ගොනු අතර අන්තර් ක්‍රියාපටිපාටි ප්‍රශස්තකරණය සක්‍රීය කරයි
පැතිකඩ භාවිතයෙන් ප්‍රශස්තකරණය
-prof_genපැතිකඩ කිරීම සඳහා භාවිතා කරනු ලබන "පැතිකඩ" කේතයක් ජනනය වේ, i.e. වැඩසටහනේ ඇතැම් ස්ථාන පසු කිරීමේ වාර ගණන පිළිබඳ දත්ත රැස් කිරීම
-prof_useපැතිකඩ කිරීමේ අදියරේදී ලබාගත් දත්ත මත පදනම්ව ප්රශස්තකරණය සිදු කරනු ලැබේ. අන්තර් ක්‍රියා පටිපාටි ප්‍රශස්තිකරණ විකල්පය සමඟ එය භාවිතා කිරීම අර්ථවත් කරයි -ipo.
SMP පද්ධති සඳහා සමාන්තරකරණය
- openmpOpenMP 2.0 ප්‍රමිතිය සඳහා සහය සක්‍රීය කරයි
- සමාන්තරවස්වයංක්‍රීය ලූප සමාන්තරකරණය සක්‍රීය කර ඇත

කාර්ය සාධනය

ixbt.com සේවාදායකයේ ප්‍රකාශිත SPEC CPU2000 පරීක්ෂණ ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලවලට අනුව, Gcc සම්පාදක අනුවාද 2.95.3, 2.96 සහ 3.1 සහ PGI අනුවාදය 4.0.2 සමඟ සසඳන විට Intel compilers අනුවාදය 6.0 විශ්වීය වශයෙන් වඩා හොඳ විය. මෙම පරීක්ෂණ 2002 දී Pentium 4/1.7 GHz ප්‍රොසෙසරයක් සහ RedHat Linux 7.3 සහිත පරිගණකයක් මත සිදු කරන ලදී.

Polyhedron විසින් සිදු කරන ලද පරීක්ෂණවලට අනුව, Intel Fortran compiler අනුවාදය 7.0 Linux (Absoft, GNU, Lahey, NAG, NAS, PGI) සඳහා අනෙකුත් Fortran 77 සම්පාදකයින්ට වඩා විශ්වීය වශයෙන් උසස් විය. සමහර පරීක්ෂණ වලදී පමණක් Intel සම්පාදකය Absoft, NAG සහ Lahey සම්පාදක වලට වඩා තරමක් පහත් වේ. මෙම පරීක්ෂණ සිදු කරන ලද්දේ Pentium 4/1.8 GHz ප්‍රොසෙසරයක් සහ Mandrake Linux 8.1 සහිත පරිගණකයක් මතය.

Intel compilers අනුවාදය 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 ක්රියාත්මක කිරීම.

මෙම ලැයිස්තුවේ ස්ථිතික පුස්තකාල අඩංගු වේ, නමුත් ඒවායින් බොහොමයක් සඳහා ගතික ඒවා ද ඇත, i.e. ආරම්භයේදී සම්බන්ධ විකල්ප ( .ඒ නිසා).

පහත පුස්තකාල Fortran සම්පාදකය සමඟ සපයා ඇත: libCEPCF90.a, libIEPCF90.a, libintrins.a, libF90.a, libimf.a ගණිතමය ශ්‍රිතවල පුස්තකාලය ද භාවිතා වේ.

ක්රියාත්මක කළ හැකි ගොනුව ගොඩනැගීම

පුස්තකාල ස්ථිතිකව (ඉදිකිරීමේදී) හෝ ගතිකව (වැඩසටහන් ආරම්භයේදී) සම්බන්ධ කළ හැක. ගතික ප්‍රවේශය මඟින් ක්‍රියාත්මක කළ හැකි ගොනුවේ ප්‍රමාණය අඩු කිරීමට ඔබට ඉඩ සලසයි, පුස්තකාලයේ එකම පිටපත මතකයේ බෙදා ගැනීමට ඔබට ඉඩ සලසයි, නමුත් මේ සඳහා ඔබ වැඩසටහන් දියත් කරන සෑම නෝඩයකම භාවිතා කරන සම්පූර්ණ ගතික පුස්තකාල කට්ටලයක් ස්ථාපනය කළ යුතුය. .

මේ අනුව, ඔබ ඔබේ Linux යන්ත්‍රයේ Intel සම්පාදකය ස්ථාපනය කර ඇත්නම් සහ සම්පාදනය කරන ලද ක්‍රියාත්මක කළ හැකි ගොනු වෙනත් යන්ත්‍රවල ධාවනය කිරීමට අවශ්‍ය නම්, ඔබට ස්ථිතික ගොඩනැගීමක් (එය පහසු) භාවිතා කිරීමට හෝ Intel ගතික පුස්තකාල මෙම යන්ත්‍රවලට පිටපත් කිරීමට අවශ්‍ය වේ (සාමාන්‍යයෙන් /opt/intel /compiler70/ia32/lib) වැනි ඩිරෙක්ටරියක් /etc/ld.so.conf ගොනුවේ ලැයිස්තුගත කර ඇති එක් නාමාවලියකට, සහ GNU/Linux ගතික පුස්තකාල කට්ටලයම මේවායේ ස්ථාපනය කර ඇති බවට වග බලා ගන්න. යන්ත්ර.

පෙරනිමියෙන්, සියලුම Intel සංවර්ධන පුස්තකාල (libcxa.so හැර) ස්ථිතිකව සම්බන්ධ කර ඇති අතර සියලුම Linux පද්ධති පුස්තකාල සහ GNU පුස්තකාල ගතිකව සම්බන්ධ වේ. විකල්පය භාවිතා කිරීම -ස්ථිතිකසියලුම පුස්තකාල ස්ථිතිකව සම්බන්ධ කිරීමට ඔබට එකතු කරන්නාට (සබැඳිය සංස්කාරකයට) බල කළ හැක (එය පරිමාව වැඩි කරයි ක්රියාත්මක කළ හැකි ගොනුව), සහ විකල්පය භාවිතා කිරීම -i_dynamicඔබට සියලුම Intel සංවර්ධන පුස්තකාල ගතිකව සම්බන්ධ කළ හැක.

දර්ශන විකල්පය භාවිතා කරමින් අතිරේක පුස්තකාල සම්බන්ධ කරන විට - පුස්තකාලයඔබට විකල්පය භාවිතා කිරීමට අවශ්‍ය විය හැකිය - නාමාවලියපුස්තකාල පිහිටා ඇති මාර්ගය සඳහන් කිරීමට.

විකල්ප භාවිතා කිරීම - Bstaticසහ -Bdynamicඔබට නිශ්චිතව දක්වා ඇති එක් එක් පුස්තකාලයේ ගතික හෝ ස්ථිතික සම්බන්ධතාව පැහැදිලිව සඳහන් කළ හැක විධාන රේඛාව.

විකල්පය භාවිතා කිරීම -ඇක්‍රියාත්මක කළ හැකි ගොනුව එකලස් කිරීම අක්‍රිය කර ඇති අතර සම්පාදනය පමණක් සිදු කෙරේ (වස්තු මොඩියුල උත්පාදනය).

Fortran සහ C හි මොඩියුල බෙදාගැනීම

Fortran සහ C හි ලියා ඇති මොඩියුල බෙදා ගැනීමට, ඔබ වස්තු මොඩියුලවල ක්‍රියා පටිපාටි නම් කිරීම, පරාමිති සම්මත කිරීම සහ ගෝලීය විචල්‍යයන් වෙත ප්‍රවේශය තිබේ නම් එකඟ විය යුතුය.

පෙරනිමියෙන්, Intel Fortran සම්පාදකය ක්‍රියා පටිපාටි නම් කුඩා අකුරට පරිවර්තනය කරන අතර නමේ අවසානයට යටි ඉරක් එකතු කරයි. C සම්පාදකය කිසිවිටෙක ශ්‍රිත නාම වෙනස් නොකරයි. මේ අනුව, අපට Fortran මොඩියුලයකින් C හි ක්‍රියාත්මක කරන ලද FNNAME ශ්‍රිතයක් හෝ ක්‍රියා පටිපාටියක් ඇමතීමට අවශ්‍ය නම්, C මොඩියුලයේ එය fname_ ලෙස හැඳින්විය යුතුය.

Fortran compiler විකල්පය සඳහා සහය දක්වයි -nus [ගොනු නාමය], අභ්‍යන්තර ක්‍රියා පටිපාටි නම් වලට යටි ඉරි එකතු කිරීම අක්‍රිය කිරීමට ඔබට ඉඩ සලසයි. ගොනු නාමයක් නියම කර ඇත්නම්, මෙය සිදු කරනු ලබන්නේ නිශ්චිත ගොනුවේ ලැයිස්තුගත කර ඇති ක්රියාපටිපාටි නම් සඳහා පමණි.

පෙරනිමියෙන්, Fortran හි පරාමිති යොමුවෙන් සම්මත වන අතර C හි ඒවා සැමවිටම අගයෙන් සම්මත වේ. මේ අනුව, C මොඩියුලයකින් Fortran ක්‍රියා පටිපාටියක් ඇමතීමේ දී, අපි පරාමිති ලෙස සත්‍ය පරාමිතිවල අගයන් අඩංගු අනුරූප විචල්‍යයන් වෙත පොයින්ටර් ලබා දිය යුතුය. Fortran මොඩියුලයකින් ඇමතීමට අවශ්‍ය වන C හි ශ්‍රිතයක් ලිවීමේදී, අපි විධිමත් පරාමිති අනුරූප වර්ග සඳහා දර්ශක ලෙස විස්තර කළ යුතුය.

C මොඩියුලවල, Fortran මොඩියුල තුළ අර්ථ දක්වා ඇති COMMON blocks භාවිතා කළ හැක (වැඩිදුර තොරතුරු සඳහා Intel Fortran Compiler User's Guide, Chapter Mixing C සහ Fortran බලන්න).

Intel සහ GCC සම්පාදක බෙදාගැනීම

Intel C++ සම්පාදකය විසින් නිෂ්පාදනය කරන ලද C වස්තු මොඩියුල GCC සම්පාදකය සහ GNU C පුස්තකාලය මඟින් නිපදවන මොඩියුල සමඟ අනුකූල වේ. මේ අනුව, මෙම මොඩියුල icc හෝ gcc විධාන භාවිතයෙන් සම්පාදනය කරන ලද තනි වැඩසටහනක එකට භාවිතා කළ හැක, නමුත් Intel පුස්තකාල නිවැරදිව ඇතුළත් කිරීම සඳහා icc භාවිතා කිරීම රෙකමදාරු කරනු ලැබේ.

Intel සම්පාදකය GNU ව්‍යාපෘතිය මගින් භාවිතා කරන සම්මත නොවන C භාෂා දිගු ගණනාවකට සහය දක්වන අතර GCC සම්පාදකයෙන් සහය දක්වයි (නමුත් ඒවා සියල්ලම නොවේ, වැඩි විස්තර සඳහා මෙතැන බලන්න).

පරිශීලක අත්පොත C++ සහ Fortran භාෂා වල වස්තු මොඩියුලවල ගැළපුම ගැන කිසිවක් නොකියයි; පෙනෙන විදිහට, එය සහාය නොදක්වයි.

ප්රමිති සහාය

Linux සඳහා Intel C++ Compiler 7.0 ANSI/ISO C භාෂා ප්‍රමිතියට (ISO/IEC 9899/1990) සහය දක්වයි. ANSI C ප්‍රමිතිය සමඟ දැඩි අනුකූලතාවයක් ඇති කර ගත හැකිය ( - අන්සි) හෝ දීර්ඝ ANSI C උපභාෂාව ( -ක්සා) විකල්පය භාවිතා කරන විට -c99

  • HTML ආකෘතියෙන් සම්පාදක අත්පොත් (අපගේ සේවාදායකයේ "මාර්ගගතව" ඇත, නමුත් ජාවා භාෂා සහාය අවශ්‍ය වේ)
    • Intel C++ Compiler User's Guide.
    • Intel Fortran Compiler පරිශීලක මාර්ගෝපදේශය.
  • සඳහා සම්පාදක අත්පොත් ඉංග්රීසි භාෂාව PDF ආකෘතියෙන් (Acrobat Reader අවශ්‍ය වේ, ඔබ ඔබේ පරිගණකයට PDF ගොනු බාගත කළ යුතුය)
    • Intel C++ Compiler User Guide: Intel C++ Compiler User's Guide (1.3 MB, 395 pages).
    • Intel Fortran Compiler User Guide: Intel Fortran Compiler User's Guide (1.1 MB, 285 pages).
    • Fortran හි ක්‍රමලේඛකගේ යොමුව: Intel Fortran ක්‍රමලේඛකගේ යොමුව (7 MB, 566 පිටු).
    • Fortran භාෂාව සඳහා පුස්තකාල සඳහා යොමු: Intel Fortran Libraries Reference Manual (9.5 MB, 881 පිටු).
  • Intel යෙදුම් නිදොස් කිරීමේ මාර්ගෝපදේශය.
  • SPEC CPU2000 පරීක්ෂණවල සම්පාදක සංසන්දනය (රුසියානු භාෂාවෙන් ixbt.com හි ලිපිය).
  • Polyhedron වෙබ් අඩවිය විවිධ සම්පාදකයන් අතර සංසන්දනාත්මක ප්රතිඵල ඉදිරිපත් කරයි.
  • සඟරාවේ පෙර කලාපයේ, අපි Intel VTune කාර්ය සාධන විශ්ලේෂක පවුලෙන් නිෂ්පාදන සාකච්ඡා කළෙමු - යෙදුම් සංවර්ධකයින් අතර ඉතා ජනප්‍රිය සහ කේතයෙන් හඳුනා ගැනීමට ඉඩ සලසන කාර්ය සාධන විශ්ලේෂණ මෙවලම් කණ්ඩායම් යෙදුම්, CPU සම්පත් ඕනෑවට වඩා නාස්ති කරන, සංවර්ධකයින්ට විභව හඳුනා ගැනීමට සහ ඉවත් කිරීමට අවස්ථාව ලබා දෙයි පටු ස්ථාන, සමාන කේත කොටස් සමඟ සම්බන්ධ වන අතර එමඟින් යෙදුම් සංවර්ධන ක්‍රියාවලිය වේගවත් කරයි. කෙසේ වෙතත්, යෙදුම්වල ක්‍රියාකාරිත්වය බොහෝ දුරට රඳා පවතින්නේ ඒවායේ සංවර්ධනය සඳහා භාවිතා කරන සම්පාදකයින් කෙතරම් කාර්යක්ෂමද සහ කුමන විශේෂාංග මතද යන්න මත බව සලකන්න. දෘඩාංගයන්ත්‍ර කේතය ජනනය කිරීමේදී ඒවා භාවිතා වේ.

    Windows සහ Linux සඳහා Intel Intel C++ සහ Intel Fortran සම්පාදකයන්ගේ නවතම අනුවාදයන් මත පදනම්ව පද්ධති සඳහා යෙදුම් කාර්ය සාධන ප්‍රතිලාභ ලබා ගැනීමට ඔබට ඉඩ සලසයි. ඉන්ටෙල් ප්‍රොසෙසර Itanium 2, Intel Xeon සහ ඉන්ටෙල් පෙන්ටියම් Hyper-Threading තාක්‍ෂණය වැනි මෙම ප්‍රොසෙසරවල එවැනි විශේෂාංග භාවිතා කිරීම හේතුවෙන් අනෙකුත් නිෂ්පාදකයන්ගෙන් දැනට පවතින සම්පාදකයන්ට සාපේක්ෂව 4 සිට 40% දක්වා.

    මෙම සම්පාදක පවුල විසින් කේත ප්‍රශස්තකරණය හා සම්බන්ධ වෙනස්කම් අතරට පාවෙන ලක්ෂ්‍ය මෙහෙයුම් සිදු කිරීම සඳහා තොගයක් භාවිතා කිරීම, අන්තර් ක්‍රියා පටිපාටි ප්‍රශස්තිකරණය (IPO), යෙදුම් පැතිකඩට අනුකූලව ප්‍රශස්තකරණය (පැතිකඩ මඟ පෙන්වන ප්‍රශස්තකරණය (PGO), දත්ත හැඹිලියට පූර්ව පූරණය කිරීම ඇතුළත් වේ. දත්ත පෙර ලබා ගැනීම), මතක ප්‍රවේශය හා සම්බන්ධ ප්‍රමාදය වළක්වයි, Intel ප්‍රොසෙසරවල ලාක්ෂණික ලක්ෂණ සඳහා සහාය (උදාහරණයක් ලෙස, ප්‍රවාහ දත්ත සැකසීම සඳහා දිගු කිරීම් Intel Streaming SIMD දිගු 2, Intel Pentium 4 හි ලක්ෂණය), කේත ක්‍රියාත්මක කිරීම ස්වයංක්‍රීයව සමාන්තරකරණය කිරීම, යෙදුම නිර්මාණය, කිහිපයක් මත ධාවනය විවිධ වර්ගප්‍රොසෙසර ඒවායින් එකක් සඳහා ප්‍රශස්ත කරන විට, පසුකාලීන කේතය (ශාඛා පුරෝකථනය) “අනාවැකි” සඳහා මෙවලම්, ක්‍රියාත්මක කිරීමේ නූල් සමඟ වැඩ කිරීම සඳහා පුළුල් සහාය.

    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 ප්‍රොසෙසරය සඳහා ඉතා ප්‍රශස්ත කේතයක් සපයන මෙම වසර මුලදී නිකුත් කරන ලද සම්පාදකයකි. ජංගම උපාංග.

    නිශ්චිත සම්පාදකය මයික්‍රොසොෆ්ට් විෂුවල් සී++ 6.0 සහ මයික්‍රොසොෆ්ට් විෂුවල් ස්ටුඩියෝ .නෙට් සංවර්ධන මෙවලම් සමඟ සම්පුර්ණයෙන්ම අනුකූල වේ: එය අනුරූප සංවර්ධන පරිසරයන් තුළට ගොඩනගා ගත හැකිය.

    මෙම සම්පාදකය 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 ප්‍රොසෙසර සඳහා ප්‍රශස්ත කේතයක් නිර්මාණය කිරීමට ඔබට ඉඩ සලසයි.

    මෙම සම්පාදකය මයික්‍රොසොෆ්ට් විෂුවල් සී++ 6.0 සහ මයික්‍රොසොෆ්ට් විෂුවල් ස්ටුඩියෝ .නෙට් සංවර්ධන මෙවලම් සමඟ සම්පුර්ණයෙන්ම අනුකූල වේ, එනම් එය අනුරූප සංවර්ධන පරිසරයන් තුළට ගොඩනගා ගත හැකිය. මීට අමතරව, මෙම සම්පාදකය ඔබට 64-bit Intel Fortran Compiler භාවිතා කරමින් 32-bit Pentium ප්‍රොසෙසරයක් මත Microsoft Visual Studio භාවිතා කරමින් Itanium/Itanium 2 ප්‍රොසෙසර මත ක්‍රියාත්මක වන මෙහෙයුම් පද්ධති සඳහා 64-bit යෙදුම් සංවර්ධනය කිරීමට ඉඩ සලසයි. කේතය නිදොස් කිරීමේදී, මෙම සම්පාදකය ඔබට නිදොස්කරණයක් භාවිතා කිරීමට ඉඩ සලසයි Microsoft වේදිකා.ශුද්ධ.

    ඔබ Compaq නිෂ්පාදනය ස්ථාපනය කර ඇත්නම්, මුල් Intel Fortran Compiler 7.1 වෙනුවට Visual Fortran 6.6 භාවිතා කළ හැක, මන්ද මෙම සම්පාදක මට්ටමට අනුකූල වේ. ප්රභව කේතය.

    Windows සඳහා Intel Fortran Compiler 7.1 ISO Fortran 95 ප්‍රමිතිය සමඟ සම්පුර්ණයෙන්ම අනුකූල වන අතර C සහ Fortran යන භාෂා දෙකෙන් කේත අඩංගු යෙදුම් නිර්මාණය කිරීම සහ දෝෂහරණය කිරීම සඳහා සහය දක්වයි.

    ලිනක්ස් වේදිකාව සඳහා සම්පාදක

    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++ Compiler C++ ABI (ඔබට ධාවනය කිරීමට ඉඩ සලසන Linux කර්නලයට එකතු කිරීමකි. යටතේ ලිනක්ස් පාලනයමුල් SCO මෙහෙයුම් පද්ධති වැනි වෙනත් වේදිකා සඳහා සම්පාදනය කරන ලද කේතය, මුල් අනුවාදසන් සොලාරිස්, ආදිය), එනම් ද්විමය කේත මට්ටමින් 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 නිදොස්කරණය සහ යෙදුම ගොඩනැගීමේ උපයෝගීතාව වැනි සංවර්ධකයින් විසින් භාවිතා කරන එවැනි උපයෝගිතා සමඟ අනුකූල වේ.

    මෙම සම්පාදකයේ Windows අනුවාදය මෙන්ම, Linux සඳහා Intel Fortran Compiler 7.1 ISO Fortran 95 ප්‍රමිතිය සමඟ සම්පුර්ණයෙන්ම අනුකූල වන අතර C සහ Fortran යන භාෂා දෙකෙන් කේත අඩංගු යෙදුම් නිර්මාණය කිරීම සහ දෝෂහරණය කිරීම සඳහා සහය දක්වයි.

    ලැයිස්තුගත Intel සම්පාදකයන් නිර්මාණය කිරීම සඳහා සැලකිය යුතු දායකත්වයක් නිශ්නි නොව්ගොරොද්හි Intel රුසියානු මෘදුකාංග සංවර්ධන මධ්යස්ථානයේ විශේෂඥයින් විසින් සිදු කරන ලද බව විශේෂයෙන් අවධාරණය කළ යුතුය. තව විස්තරාත්මක තොරතුරු Intel compilers පිළිබඳ තොරතුරු Intel වෙබ් අඩවියෙන් www.intel.com/software/products/ හි සොයා ගත හැක.

    මෙම ලිපියේ දෙවන කොටස ජංගම උපාංග සඳහා යෙදුම් නිර්මාණය කරන Intel සම්පාදක සඳහා කැප කෙරේ.

    සැබෑ හැක් සඳහා උදාහරණ: Intel C++ 7.0 Compiler - Archive WASM.RU

    ...Intel C++ 7.0 compiler එක ඩවුන්ලෝඩ් උනේ රෑ වෙලා, පාන්දර පහට විතර. මට ඇත්තටම නිදා ගැනීමට අවශ්‍ය විය, නමුත් මම කුතුහලයෙන් ද ඉරා දැමුවෙමි: ආරක්ෂාව ශක්තිමත් කර තිබේද නැද්ද යන්න. මම ආරක්ෂාව තේරුම් ගන්නා තුරු මට තවමත් නින්ද නොයන බව තීරණය කර මම විවෘත කළෙමි නව කොන්සෝලය, සහ පද්ධති විචල්‍යයන් TEMP සහ TMP C:\TEMP නාමාවලිය වෙත යළි පිහිටුවීම, කඩිමුඩියේ අවිනීත ලෙස ටයිප් කර ඇත. දිගු නමවිධාන රේඛාවේ W_CC_P_7.0.073.exe ස්ථාපකය (TEMP සහ TMP විචල්‍යයන් සැකසීමේ අවශ්‍යතාවය පැහැදිලි කරනුයේ වින්ඩෝස් 2000 හි ඒවා පෙරනිමියෙන් ඉතා ගැඹුරින් කැදැලි නාමාවලියකට සහ Intel C++ ස්ථාපකය වෙතට - එය පමණක් නොවේ. - එතරම් විශාල ප්‍රමාණයේ මාර්ග සඳහා සහය නොදක්වයි).

    ආරක්ෂණ ප්‍රතිපත්තිය රැඩිකල් ලෙස සංශෝධනය කර ඇති බව වහාම පැහැදිලි වූ අතර දැන් වැඩසටහන ස්ථාපනය කිරීමේ අදියරේදී බලපත්‍රයක් තිබීම දැනටමත් පරීක්ෂා කර ඇත (5.x අනුවාදයේ ස්ථාපනය ගැටළු නොමැතිව සිදු කරන ලදී). හරි, අපි dir විධානය ලබා දී අපට දැන් සටන් කිරීමට ඇති දේවල අන්තර්ගතය දෙස බලමු:

      C:\TMP\IntelC++Compiler70 ෆෝල්ඩරයේ අන්තර්ගතය

      17.03.2003 05:10

      html

      17.03.2003 05:11

      x86

      17.03.2003 05:11

      ඉටානියම්

      17.03.2003 05:11

      සටහන්

      06/05/2002 10:35 45 056 AutoRun.exe

      07/10/2001 12:56 27 autorun.inf

      29.10.2002 11:25 2 831 ccompindex.htm

      10/24/2002 08:12 126 976 ChkLic.dll

      10/18/2002 22:37 552 960 chklic.exe

      10/17/2002 16:29 28 663 CLicense.rtf

      17.10.2002 16:35 386 credist.txt

      16.10.2002 17:02 34 136 Crellnotes.htm

      03/19/2002 14:28 4 635 PLSuite.htm

      02/21/2002 12:39 2 478 register.htm

      02.10.2002 14:51 40 960 Setup.exe

      2002.10.02 10:40 151 Setup.ini

      07/10/2001 12:56 184 setup.mwg

      ගොනු 19 බයිට් 2,519,238

      ෆෝල්ඩර 6ක් බයිට් 886,571,008 නොමිලේ

    ඔව්! setup.exe ස්ථාපන වැඩසටහන සඳහා ගත වන්නේ කිලෝබයිට් හතළිහක් පමණි. ඉතා හොඳයි! එවැනි පරිමාවක් තුළ ඔබට බරපතල ආරක්ෂාවක් සැඟවිය නොහැක, එසේ වුවද, මෙම කුඩා ගොනුව සම්පූර්ණයෙන්ම විශ්ලේෂණය කිරීමට කිසිවක් වටින්නේ නැත - විසුරුවා හරින ලද ලැයිස්තුවේ අවසාන බයිටය දක්වා. කෙසේ වෙතත්, එය සත්‍යයක් නොවේ ආරක්ෂණ කේතයහරියටම setup.exe හි පිහිටා ඇත, එය වෙනත් ස්ථානයක ස්ථානගත කළ හැක, උදාහරණයක් ලෙස... ChkLic.dll/ChkLic.exe, එකට කිලෝබයිට් හත්සියයකට වඩා අඩුවෙන් වාසය කරයි. ඉන්න, ChkLic යනු කුමක්ද? මෙය චෙක් බලපත්‍රය සඳහා කෙටිද නැතහොත් කුමක් ද?! හ්ම්ම්, ඉන්ටෙල් හි කොල්ලන්ට පැහැදිලිවම හාස්‍යය පිළිබඳ බරපතල ගැටළු තිබේ. ඔවුන් මෙම ගොනුවට අවංකව "හැක් මී" ලෙස නම් කළහොත් වඩා හොඳය! හරි, පරිමාව අනුව විනිශ්චය කිරීම, ChkLic එකම FLEX lm වන අතර, අපි එය දැනටමත් හමු වී ඇත ("Intel C++ 5.0 Compiler" බලන්න) සහ එය බිඳ දැමිය යුතු ආකාරය පිළිබඳ දළ අදහසක් ඇත.

    අපනයනය කරන ලද කාර්යයන් පරීක්ෂා කිරීමට අපි “dumpbin /EXPORTS ChkLic.dll” විධානය ලබා දෙන අතර... පුටුවෙන් නොවැටෙන ලෙස Klava තදින් අල්ලාගෙන සිටින්න:

      ChkLic.dll ගොනුව ඩම්ප්

    1. කොටසෙහි ChkLic.dll සඳහා පහත අපනයන අඩංගු වේ

      0 ලක්ෂණ

      3DB438B4 කාල දින මුද්දරය 2002 ඔක්තෝබර් 21 21:26:12

    2. කාර්යයන් 1 ක්

      නම් 1ක්

      සාමාන්‍ය ඉඟිය RVA නම

      1 0 000010A0 _CheckValidLicense

    ඒකට සාප වේවා! ආරක්‍ෂාව අපනයනය කරන්නේ CheckValidLicense යන අපූරු නාමය සහිත එක් කාර්යයක් පමණි. “පුදුම” - ශ්‍රිතයේ අරමුණ එහි නමෙන් පැහැදිලි වන අතර විසංයෝජන කේතයේ වේදනාකාරී විශ්ලේෂණය වළක්වා ගත හැකි බැවිනි. හොඳයි, ඔවුන්ට සියලු උනන්දුව නැති වී ඇත... ඔවුන් එය සාමාන්‍ය ලෙස හෝ වෙනත් දෙයක් අපනයනය කිරීම හෝ අඩුම තරමින් DES Decrypt වැනි බිය උපදවන නමකින් එය බෞතිස්ම කිරීම වඩා හොඳය.

    ...දවල් හීන දකිනවා! හරි, අපි අපේ බැටළුවන් වෙත ආපසු යමු. අපි තාර්කිකව සිතමු: සියලුම ආරක්‍ෂක කේතය කෙලින්ම ChkLic.dll හි සංකේන්ද්‍රණය වී ඇත්නම් (සහ, ආරක්ෂාවේ “උගුරන ලද” ස්වභාවය අනුව විනිශ්චය කිරීම ඇත්ත වශයෙන්ම මෙයයි), එවිට සියලු “ආරක්ෂාව” සැකසීමෙන් CheckValidLicense ඇමතීමට පැමිණේ. exe සහ එය ලබා දුන් ප්රතිඵලය පරීක්ෂා කිරීම. එමනිසා, "හැක්" කිරීමට, ChkLic.dll නැතිවීම පමණක් ප්‍රමාණවත් වේ, ChekValidLicense ශ්‍රිතයට සෑම විටම ආපසු යාමට බල කරමින්... සහ, මාර්ගය වන විට, එය ආපසු ලබා දිය යුත්තේ කුමක් ද? වඩාත් නිවැරදිව: සාර්ථක බලපත්‍ර පරීක්ෂාවකට අනුරූප වන ප්‍රතිලාභ අගය හරියටම කුමක්ද? නැත, එය තීරණය කිරීමට setup.exe විසුරුවා හැරීමට ඉක්මන් නොවන්න, මන්ද හැකි විකල්පතවදුරටත් එතරම් නොවේ: අසත්‍ය හෝ සත්‍ය. ඔබ සත්‍ය මත ඔට්ටු අල්ලනවාද? හොඳයි, එක් අතකින්, මෙය තාර්කික ය, නමුත් අනෙක් අතට: CheckValidLicense ශ්‍රිතය හරියටම මෙහෙයුමේ සාර්ථකත්වයේ ධජය ලබා දෙන අතර දෝෂ කේතය නොවන බව අපි ඇත්ත වශයෙන්ම තීරණය කළේ ඇයි? සියල්ලට පසු, එය සම්පාදකය ස්ථාපනය කිරීම ප්රතික්ෂේප කිරීම සඳහා හේතු කෙසේ හෝ පෙළඹවිය යුතුය: බලපත්රය සහිත ගොනුව සොයාගත නොහැකි විය, ගොනුව හානි වී ඇත, බලපත්රය කල් ඉකුත් වී ඇත, සහ එසේ ද? හරි, අපි බිංදුව ආපසු ලබා දීමට උත්සාහ කරමු, එය ක්‍රියා නොකරන්නේ නම්, අපි එකක් ආපසු දෙන්නෙමු.

    හරි, බකල් කරන්න, අපි යමු! අපි HIEW දියත් කරමු, ChkLic.dll ගොනුව විවෘත කරන්න (එය විවෘත නොවන්නේ නම්, ගොෆර් තුන් වරක් මතක තබා ගන්න, එය තාවකාලිකව එය root වෙත හෝ hiew කැමති නැති එහි නමේ විශේෂ අක්ෂර අඩංගු නොවන වෙනත් නාමාවලියකට පිටපත් කරන්න) ඉන්පසුව, dumpbin භාවිතයෙන් ලබාගත් අපනයන වගුව වෙත නැවත හැරී, අපි CheckValidLicense ශ්‍රිතයේ ලිපිනය තීරණය කරමු (මෙම අවස්ථාවේදී 010A0h) සහ "10A0" හරහා අපි එහි ආරම්භයට යමු. දැන්, අපි එය "සජීවී" ලෙස කපා, උඩින් ලියමින් පැරණි කේතය "XOR EAX, EAX/RETN 4". හරියටම "REN 4" සහ "RET" පමණක් නොවේ ඇයි? ඔව්, ශ්‍රිතය stdcall සම්මුතියට සහය දක්වන නිසා, HIEW"e හි එහි කථාංගය බැලීමෙන් ඔබට එය දැනගත හැක. RET හමුවන තෙක් විසුරුවා හැරීමේ තිරය පහළට අනුචලනය කරන්න).

    බලමු... වැඩේ හරි!!! බලපත්‍රයක් නොමැතිකම තිබියදීත්, ස්ථාපකය කිසිදු ප්‍රශ්නයක් ඇසීමෙන් තොරව ස්ථාපනය ආරම්භ කරයි! ඒ නිසා ආරක්‍ෂාව වැටුණා. ඔහ්, සෑම දෙයක්ම ඉතා සරල යැයි අපට විශ්වාස කළ නොහැකි අතර, වැඩසටහන ස්ථාපන ක්‍රියාවලිය සම්පූර්ණ වන තෙක් මොනිටරය දෙස මෝඩ ලෙස බලා නොසිටීම සඳහා, අපි setup.exe හි අපගේ ප්‍රියතම IDA disassembler භාවිතා කරමු. ඔබගේ ඇසට හසුවන පළමු දෙය නම් ආනයනය කරන ලද කාර්යයන් ලැයිස්තුවේ CheckValidLicense නොමැති වීමයි. සමහර විට එය කෙසේ හෝ ChkLic.exe ගොනුව දියත් කරයිද? අපි ස්වයංක්‍රීයව හඳුනාගත් රේඛා අතර අනුරූප සබැඳිය සොයා ගැනීමට උත්සාහ කරමු: "~View aNames", "ChkLic"... ඔව්, "Chklic.exe" රේඛාව කිසිසේත්ම නැත, නමුත් "Chklic.dll" අනාවරණය කර ඇත. ඔව්, මට පේනවා, ඒ කියන්නේ LoadLibrary හරහා පැහැදිලි සම්බන්ධ කිරීමකින් ChkLic පුස්තකාලය පූරණය වී ඇති බවයි. හරස් යොමුව අනුගමනය කිරීමෙන් මෙය සනාථ වේ:

      පෙළ:0040175D push offset aChklic_dll ; lpLibFileName

      පෙළ:00401762 අමතන්න ds:LoadLibraryA

      පෙළ:00401762 ; ChkLic.dll පූරණය කරන්න ^^^^^^^^^^^^^^^^^^^

      පෙළ:00401762 ;

      පෙළ:00401768 mov esi, eax

      පෙළ:0040176A push offset a_checkvalidlic ; lpProcName

      පෙළ:0040176F push esi ; hModule

      පෙළ:00401770 අමතන්න ds:GetProcAddress

      පෙළ:00401770 ; CheckValidLicense කාර්යයේ ලිපිනය ලබා ගන්න

      පෙළ:00401770 ;

      පෙළ:00401776 cmp esi, ebx

      පෙළ:00401778 jz loc_40192E

      පෙළ:00401778 ; එවැනි පුස්තකාලයක් නොමැති නම්, ස්ථාපන වැඩසටහනෙන් ඉවත් වන්න

      පෙළ:00401778 ;

      පෙළ:0040177E cmp eax, ebx

      පෙළ:00401780 jz loc_40192E

      පෙළ:00401780 ; පුස්තකාලයේ එවැනි කාර්යයක් නොමැති නම්, ස්ථාපනයෙන් පිටවන්න

      පෙළ:00401780 ;

      පෙළ:00401786 push ebx

      පෙළ: 00401787 අමතන්න EAx

      පෙළ:00401787 ; ChekValidLicense කාර්යය අමතන්න

      පෙළ:00401787 ;

      පෙළ:00401789 test eax, eax

      පෙළ:0040178B jnz loc_4019A3

    පෙළ:0040178 ; ශ්‍රිතය ශුන්‍ය නොවන බව ආපසු හැරුනේ නම්, ස්ථාපන වැඩසටහනෙන් ඉවත් වන්න

    ඇදහිය නොහැකි තරම්, මෙම භයානක ප්‍රාථමික ආරක්ෂාව හරියටම මේ ආකාරයටම ගොඩනගා ඇත! එපමණක් නොව, අර්ධ-මීටර් ගොනුව ChkLic.exe කිසිසේත් අවශ්ය නොවේ! එය අන්තර්ජාලයෙන් ඇදගෙන යාමට වටින්නේ ඇයි? මාර්ගය වන විට, ඔබ සම්පාදක ව්‍යාප්තිය සුරැකීමට තීරණය කරන්නේ නම් (අවධානය: මම “බෙදාහරින්න” යැයි කීවේ නැත!), එවිට තැටි ඉඩ ඉතිරි කර ගැනීමට, ChkLic.* මකා දැමිය හැක: එක්කෝ setup.exe මකා දැමීමෙන්, එය සදහටම ඉවත් කිරීමෙන් ඒවාට ප්‍රවේශ වීම, හෝ ඔබේම ChkLic.dll නිර්මාණය කිරීමෙන්, stdcall ශ්‍රිතය අපනයනය කිරීමෙන් CheckValidLicence පෝරමයේ: int CheckValidLicence(int some_flag) (ආපසු 0;)

    හොඳයි, අපි මේ සියල්ල සාකච්ඡා කරමින් සිටියදී, ස්ථාපකය compiler එක ස්ථාපනය කර අවසන් කර එහි කාර්යය සාර්ථකව නිම කළේය. සම්පාදකය ආරම්භ වන්නේද නැතහොත් විනෝදය ආරම්භ වන්නේද යන්න සිත්ගන්නාසුළුද? අපි දැඩි ලෙස උප ෆෝල්ඩරවල අතු ධුරාවලියට බැස, යමෙකු අපේක්ෂා කරන පරිදි, බින් නාමාවලියෙහි පිහිටා ඇති icl.exe සොයා, ක්ලික් කරන්න සහ... "icl: දෝෂය:" යන කරුණ උපුටා දක්වමින් සම්පාදකය ස්වභාවිකවම ආරම්භ නොවේ. FLEX lm බලපත්‍රය පිටවීමට නොහැකි විය" , එසේ නොමැතිව ඔහුට ඔහුගේ වැඩ කරගෙන යාමට නොහැකි විය.

    ඉන්ටෙල් බහු මට්ටමේ ආරක්ෂාවක් භාවිතා කළ අතර පළමු මට්ටම මෝඩයන්ට එරෙහිව රළු ආරක්ෂාවක් බවට පත් විය. හොඳින්! අපි මෙම අභියෝගය භාර ගන්නා අතර, අපගේ පෙර අත්දැකීම් මත පදනම්ව, සම්පාදක නාමාවලිය තුළ ස්වයංක්‍රීයව LMGR*.DLL ගොනුව සොයයි. නිෂ්ඵලයි! මෙවර එවැනි ගොනුවක් මෙහි නොමැත, නමුත් icl.exe කිලෝබයිට් හයසියය ඉක්මවා විශාල බරක් ලබාගෙන ඇති බව පෙනේ ... නවත්වන්න! සම්පාදක සංවර්ධකයින් මෙම FLEX lm ස්ථිතික සම්බන්ධ කිරීම සමඟ සම්බන්ධ කළේ නැද්ද? අපි බලමු: Intel C++ 5.0 හි, lmgr327.dll සහ icl.exe හි ප්‍රමාණයේ එකතුව 598 KB වූ අතර, දැන් icl.exe පමණක් 684 KB ලබා ගනී. ස්වභාවික වයෝවෘද්ධ "තරබාරුකම" සඳහා ගැලපීම සැලකිල්ලට ගනිමින්, සංඛ්යා ඉතා හොඳින් එකඟ වේ. ඉතින්, සියල්ලට පසු, FLEX lm! ඔහ් ඔහ්! නමුත් දැන්, සංකේතාත්මක ශ්රිත නාමයන් නොමැතිව, ආරක්ෂාව බිඳ දැමීම වඩා දුෂ්කර වනු ඇත ... කෙසේ වෙතත්, අපි කලින් කලබල නොවන්න! අපි හිතමු, සන්සුන්ව! මෙම "ලියුම් කවර" ආරක්ෂාව සමඟ අන්තර්ක්‍රියා කරන සියලුම කේතය සංවර්ධන කණ්ඩායම සම්පූර්ණයෙන්ම නැවත ලියා ඇතැයි සිතිය නොහැක. බොහෝ දුරට ඉඩ ඇති පරිදි, එහි "වැඩිදියුණු කිරීම" අවසන් වූයේ පිරිසැලසුම් වර්ගය වෙනස් කිරීමෙනි. එසේ නම්, වැඩසටහන අනවසරයෙන් ඇතුළුවීමේ සම්භාවිතාව තවමත් විශිෂ්ටයි!

    අවසාන වරට ආරක්ෂක කේතය ප්‍රධාන කාර්යයේ තිබූ බව මතක තබා ගනිමින්, අපි, එහි ලිපිනය තීරණය කර, විරාම ලක්ෂ්‍යයක් සකසා, නිදොස්කරණය උත්පතන වන තෙක් බලා සිටිමු, මෝඩ ලෙස කේතය සොයා ගන්න, විකල්ප වශයෙන් දෝශ නිරාකරණය දෙස බලමින්, පසුව වැඩසටහන් ප්‍රතිදානයේදී කවුළුව: පැහැදිලි පණිවිඩයක් තිබේද? ඒ සමගම, අපි මුහුණ දෙන සියලුම කොන්දේසි සහිත සංක්‍රාන්ති වෙනම කඩදාසි කැබැල්ලක සලකුණු කරමු (හෝ ඔබට අවශ්‍ය නම් එය අපගේ මතකයේ තබන්න), එක් එක් කොන්දේසි සහිත සංක්‍රාන්තිය සිදු කළේද නැද්ද යන්න සඳහන් කිරීමට අමතක නොකරමු... නවත්වන්න! ඔබ සහ මම යමක් ගැන කතා කරමින් සිටියෙමු, නමුත් අපවාදාත්මක පණිවිඩයක් දැනටමත් මතු වී ඇත! හරි හොඳයි! එයට අනුරූප වූ කොන්දේසි සහිත සංක්‍රාන්තිය කුමක්දැයි බලමු. අපගේ වාර්තා පෙන්නුම් කරන්නේ JNZ කොන්දේසි සහිත පැනීම, 0401075h ලිපිනයේ පිහිටා ඇති අතර sub_404C0E මගින් ලබා දුන් ප්‍රතිඵලයට "ප්‍රතික්‍රියා" වන බවයි.

  • පෙළ:0040107F loc_40107F: ; CODE XREF: _main+75^j

    පෙළ:0040107F mov eax, offset aFfrps ; "FFrps"

    පෙළ:00401084 mov edx, 21h

    පෙළ:00401089 අමතන්න sub_404C0E

    පෙළ:0040108E පරීක්ෂණ eax, eax

    පෙළ:00401090 jnz කෙටි loc_40109A

    පැහැදිලිවම, sub_404C0E බලපත්‍රය එහි පැමිණීම සඳහා පරීක්ෂා කරන ඉතා ආරක්ෂිත ක්‍රියා පටිපාටියයි. ඇයව රවට්ටන්නේ කෙසේද? හොඳයි, බොහෝ විකල්ප තිබේ... පළමුව, ඔබට sub_404C0E හි අන්තර්ගතය හොඳින් සිතා බලා සහ සූක්ෂම ලෙස විශ්ලේෂණය කර එය හරියටම පරීක්ෂා කරන්නේ කුමක්ද සහ එය හරියටම පරීක්ෂා කරන්නේ කෙසේද යන්න සොයා බැලිය හැකිය. දෙවනුව, ඔබට JNZ short loc_40107F JZ short loc_40107F හෝ NOP, NOP සමඟ ප්‍රතිස්ථාපනය කළ හැක. තෙවනුව, ප්‍රතිපල පරීක්ෂා කිරීමේ විධානය TEST EAX, EAX ශුන්‍ය විධානයක් බවට පත් කළ හැක: XOR EAX, EAX. හතරවනුව, ඔබට sub_404C0E ම අතුරුදහන් කළ හැකි අතර එමඟින් එය සෑම විටම බිංදුව ලබා දෙයි. මම ඔබ ගැන දන්නේ නැහැ, නමුත් මම වඩාත් කැමති ක්‍රමය අංක තුනට. අපි බයිට් දෙකක් වෙනස් කර සම්පාදකය දියත් කරමු. ආරක්ෂාව තුළ එහි “බලපත්‍ර” පිළිබඳ වෙනත් චෙක්පත් නොමැති නම්, වැඩසටහන ක්‍රියාත්මක වන අතර, ඒ අනුව, අනෙක් අතට. (අපට මතක ඇති පරිදි, පස්වන අනුවාදයේ එවැනි චෙක්පත් දෙකක් තිබුණි). පුදුමයට කරුණක් නම්, සම්පාදකයා තවදුරටත් පැමිණිලි කර ක්‍රියා නොකරයි !!! ඇත්ත වශයෙන්ම, යමෙකු අපේක්ෂා කරන පරිදි, එහි සංවර්ධකයින් ආරක්ෂාව කිසිසේත් ශක්තිමත් නොකළ නමුත්, ඊට පටහැනිව, එය දුර්වල කර ඇත! ක්රිස් කැස්පර්ස්කි

  • ඔබ වහලෙක් නොවේ!
    ප්‍රභූ ළමුන් සඳහා සංවෘත අධ්‍යාපන පාඨමාලාව: "ලෝකයේ සැබෑ විධිවිධානය."
    http://noslave.org

    විකිපීඩියාවෙන් ද්‍රව්‍ය - නිදහස් විශ්වකෝෂය

    Intel C++ Compiler
    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).
    ටයිප් කරන්න
    කර්තෘ

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    සංවර්ධකයා
    සංවර්ධකයින්

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    මත ලියා ඇත

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    අතුරුමුහුණත

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    මෙහෙයුම් පද්ධතිය
    අතුරු මුහුණත් භාෂා

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    පළමු සංස්කරණය

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    දෘඪාංග වේදිකාව
    නවතම අනුවාදය
    අපේක්ෂකයා නිදහස් කරන්න

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    බීටා අනුවාදය

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    ඇල්ෆා අනුවාදය

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    පරීක්ෂණ අනුවාදය

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    කියවිය හැකි ගොනු ආකෘති

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    ජනනය කරන ලද ගොනු ආකෘති

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    රජයේ

    මොඩියුලයේ Lua දෝෂය:170 පේළියේ Wikidata: "wikibase" ක්ෂේත්‍රය සුචිගත කිරීමට උත්සාහ කරන්න (අගය බිංදුවක්).

    බලපත්රය

    ප්රධාන ලක්ෂණ:

    • SSE, SSE2, SSE3, SSE4 සඳහා දෛශිකකරණය

    සමාන්තර වැඩසටහන් ලිවීම සඳහා සම්පාදකය OpenMP 3.0 ප්‍රමිතියට සහය දක්වයි. ක්ලස්ටර් OpenMP ලෙස හඳුන්වන OpenMP හි වෙනස් කිරීමක් ද අඩංගු වන අතර, ඔබට MPI භාවිතයෙන් පොකුරු මත OpenMP අනුව ලියා ඇති යෙදුම් ධාවනය කළ හැක.

    Intel C++ Compiler විසින් Edison Design Group වෙතින් ඉදිරිපස (සම්පාදිත වැඩසටහන විග්‍රහ කරන සම්පාදක කොටස) භාවිතා කරයි. SGI MIPSpro, Comeau C++, සහ Portland Group සම්පාදකයින් විසින් එකම ඉදිරිපස කොටස භාවිතා කරයි.

    SPEC CPU මිණුම් සලකුණු සම්පාදනය කිරීම සඳහා මෙම සම්පාදකය බහුලව භාවිතා වේ.

    සම්පාදකය අඩංගු Intel වෙතින් නිෂ්පාදන මාලාවක් 4ක් ඇත:

    • Intel C++ Compiler Professional Edition
    • Intel Cluster Toolkit (සම්පාදක සංස්කරණය)

    සම්පාදකයේ Linux අනුවාදයේ අවාසි අතර C භාෂාවේ GNU දිගු සමඟ අර්ධ නොගැලපීම ඇතුළත් වේ (GCC සම්පාදකයෙන් සහය දක්වයි), සමහර වැඩසටහන් සම්පාදනය කිරීමේදී ගැටළු ඇති විය හැක.

    පර්යේෂණාත්මක විකල්ප

    සම්පාදකයේ පහත පර්යේෂණාත්මක අනුවාදයන් ප්‍රකාශයට පත් කරන ලදී:

    • Intel STM Compiler Prototype Edition දිනැති සැප්තැම්බර් 17, 2007. මෘදුකාංග ගනුදෙනු මතක (STM) සහාය. ලිනක්ස් සහ වින්ඩෝස් සඳහා නිකුත් කර ඇත, IA-32 (x86 ප්‍රොසෙසර) සඳහා පමණි;
    • 2008 සැප්තැම්බර් සිට C/C++ 0.3 සඳහා Intel සමගාමී එකතු කිරීම්. සමාන්තර C++ වැඩසටහන් ලිවීම පහසු කරන යාන්ත්‍රණ අඩංගු වේ.

    මූලික කොඩි

    වින්ඩෝස් Linux, MacOSX විස්තර
    / Od -O0 ප්‍රශස්තිකරණය අක්‍රීය කරන්න
    /O1 -O1 ක්‍රියාත්මක කළ හැකි ගොනු ප්‍රමාණය අවම කිරීමට ප්‍රශස්ත කරන්න
    /O2 -O2 වේගය සඳහා ප්‍රශස්ත කරන්න. සමහර ප්‍රශස්තකරණයන් ඇතුළත් වේ
    /O3 -O3 O2 වෙතින් සියලුම ප්‍රශස්තකරණයන් සබල කරන්න. තීව්‍ර චක්‍ර ප්‍රශස්තිකරණය ද සිදු කරන්න
    /ඔයිප් - ඔයිප් ගොනුවෙන් ගොනු අන්තර් ක්‍රියාපටිපාටි ප්‍රශස්තකරණය සක්‍රීය කරන්න
    /ඔයිපෝ - ඔයිපෝ ගෝලීය අන්තර් ක්‍රියා පටිපාටි ප්‍රශස්තකරණය සබල කරන්න
    /QxO -xO ඕනෑම සමාගමක් විසින් නිෂ්පාදනය කරන ලද ප්‍රොසෙසර සඳහා SSE3, SSE2 සහ SSE දිගු භාවිතා කිරීමට ඉඩ දෙන්න
    /ඉක්මනින් -ඉක්මනින් "වේගවත් මාදිලිය". වින්ඩෝස් මත "/O3 /Qipo /QxHost /no-prec-div" සහ Linux මත "-O3 -ipo -static -xHOST -no-prec-div" විකල්පයන්ට සමාන වේ. "-xHOST" ධජය යනු සම්පාදකය ක්‍රියාත්මක වන ප්‍රොසෙසරය සඳහා ප්‍රශස්තකරණය බව කරුණාවෙන් සලකන්න.
    /Qprof-gen -prof_gen කාර්ය සාධන පැතිකඩක් එකලස් කරන වැඩසටහනේ උපකරණ සහිත අනුවාදයක් සාදන්න
    /Qprof-භාවිතය -prof_use Prof_gen ධජය සමඟ එකතු කරන ලද වැඩසටහන් දියත් කිරීම් වලින් පැතිකඩ තොරතුරු භාවිතා කරන්න.

    "Intel C++ සම්පාදක" ලිපිය ගැන සමාලෝචනයක් ලියන්න

    සටහන්

    ද බලන්න

    සබැඳි

    Intel C++ සම්පාදකයේ ගුනාංගීකරනය උපුටා ගැනීමකි

    තවද, ඇය අවසන් වරට සුදු මැගස් බැලීමට ආපසු පැමිණියේය ... ඇයට කිසිදා අමතක කළ නොහැකි ඇගේ සැමියා සහ සැබෑ මිතුරා. ඇගේ සිතින් ඇය ඔහුට සමාව දුන්නාය. එහෙත්, ඔහුගේ බලවත් පසුතැවිල්ලට, ඇයට ඔහුට මැග්ඩලේනාගේ සමාව ගෙන ඒමට නොහැකි විය.... එබැවින්, ඔබ දකින පරිදි, ඉසිඩෝරා, "සමාව" පිළිබඳ මහා ක්‍රිස්තියානි ප්‍රබන්ධය බොළඳ ඇදහිලිවන්තයන්ට ඔවුන්ට ඉඩ දීම සඳහා බොළඳ බොරුවක් පමණි. ඕනෑම නපුරක් කිරීමට, ඔවුන් කුමක් කළත් අවසානයේ ඔවුන්ට සමාව ලැබෙන බව දැන සිටීම. නමුත් ඔබට සමාව දිය හැක්කේ සමාව ලැබීමට සුදුසු දේට පමණි. කරන ලද ඕනෑම නපුරකට පිළිතුරු දිය යුතු බව පුද්ගලයෙකු තේරුම් ගත යුතුය ... සහ යම් අද්භූත දෙවියන් ඉදිරියේ නොව, තමා ඉදිරියේ, තමාට කුරිරු ලෙස දුක් විඳීමට බල කරයි. මැග්ඩලේනා ව්ලැඩිකාට සමාව දුන්නේ නැත, නමුත් ඇය ඔහුට ගැඹුරින් ගරු කළත් අවංකව ආදරය කළත්. රදොමිර්ගේ බිහිසුණු මරණයට අප සැමට සමාව දීමට ඇය අසමත් වූවා සේම. සියල්ලට පසු, ඇය අන් සියල්ලන්ට වඩා හොඳින් තේරුම් ගත්තා - අපට ඔහුට උදව් කළ හැකිව තිබුණි, අපට ඔහුව කුරිරු මරණයකින් ගලවා ගත හැකිය ... නමුත් අපට අවශ්‍ය නොවීය. සුදු මගුස්ගේ වරද ඉතා කුරිරු යැයි සැලකූ ඇය විනාඩියකටවත් එය අමතක නොකර මේ වරදින් ජීවත් වීමට ඔහු හැර ගියාය... ඔහුට පහසු සමාවක් දීමට ඇයට අවශ්‍ය නොවීය. අපි ඇයව නැවත කිසි දිනෙක දැක නැත. හරියට එයාලා කවදාවත් එයාලගේ බබාලා දැකලා නෑ වගේ. අප වෙත ආපසු යන ලෙස කරන ලද ඉල්ලීමට ව්ලැඩිකාට පිළිතුර ඇගේ දේවමාළිගාවේ එක් නයිට්වරයෙකු හරහා - අපගේ මායාකාරිය - මැග්ඩලීන් විසින් ලබා දුන්නාය: “සූර්‍යයා එකම දිනයේ දෙවරක් උදා නොවේ ... ඔබේ ලෝකයේ ප්‍රීතිය (රඩොමීර්) වනු ඇත. කිසිදා ඔබ වෙත ආපසු නොඑන්න, මම ඔබ වෙත ආපසු නොඑන සේම, මමද... මම මගේ ඇදහිල්ල සහ මගේ සත්‍යය සොයා ගත්තෙමි, ඔවුන් ජීවතුන් අතර, නමුත් ඔබගේ මිය ගොස් ඇත... වැලපෙන්න ඔබේ පුතුන් - ඔවුන් ඔබට ආදරය කළා. මම ජීවත්ව සිටියදී ඔවුන්ගේ මරණයට මම ඔබට කිසිදා සමාව නොදෙමි. ඔබේ වරද ඔබ සමඟ පවතිනු ඇත. සමහර විට කවදා හෝ ඇය ඔබට ආලෝකය සහ සමාව ගෙන එනු ඇත ... නමුත් මගෙන් නොවේ. Magus John ගේ හිස Meteora වෙත ගෙන ආවේ එකම හේතුව නිසා නොවේ - පන්සලේ නයිට්වරුන් කිසිවෙකු අප වෙත ආපසු යාමට අවශ්‍ය නොවීය ... අපට ඔවුන්ව අහිමි විය, අපට ඔවුන්ව අහිමි වූයේ එක් වරකට වඩා තවත් බොහෝ දෙනෙක් අහිමි වූ බැවිනි. අපගේ වින්දිතයන් තේරුම් ගෙන පිළිගන්න ... ඔබ මෙන් කළේ කවුද - ඔවුන් අපව හෙළා දකිමින් පිටව ගියහ.
    මගේ ඔළුව කැරකෙනවා!.. පිපාසයෙන් පෙළෙන්නෙකු මෙන්, මගේ සදාකාලික දැනුමේ කුසගින්න නිවා ගනිමින්, මම උතුරෙන් නොමසුරුව ලබා දුන් විශ්මිත තොරතුරු ගලායාම කෑදර ලෙස අවශෝෂණය කර ගත්තෙමි ... මට තවත් බොහෝ දේ අවශ්‍ය විය!.. මට සියල්ල දැන ගැනීමට අවශ්‍ය විය. අවසානය. එය වේදනාවෙන් හා කරදරවලින් දැවී ගිය කාන්තාරයක මිරිදිය හුස්මක් විය! අනික මට ඒක ප්‍රමාණවත් වුනේ නෑ...
    - මට ප්‍රශ්න දහස් ගණනක් තිබේ! ඒත් තව වෙලාවක් නෑ... මම මොනවා කරන්නද උතුර?..
    - අහන්න, ඉසිඩෝරා!.. අහන්න, මම ඔබට පිළිතුරු දීමට උත්සාහ කරමි ...
    - මට කියන්න, සෙවර්, මෙම කතාව සමාන සිදුවීම් සමඟ බැඳී ඇති ජීවිත කථා දෙකක් ඒකාබද්ධ කර ඒවා එක් පුද්ගලයෙකුගේ ජීවිතයක් ලෙස ඉදිරිපත් කරන බව මට පෙනෙන්නේ ඇයි? නැත්නම් මම හරි නැද්ද?
    - ඔබ සම්පූර්ණයෙන්ම හරි, ඉසිඩෝරා. මා ඔබට කලින් කී පරිදි, මනුෂ්‍ය වර්ගයාගේ ව්‍යාජ ඉතිහාසය නිර්මාණය කළ “මේ ලෝකයේ බලවතුන්” ක්‍රිස්තුස් වහන්සේගේ සැබෑ ජීවිතය මත “තැබුවේ” වසර එකහමාරකට පෙර ජීවත් වූ යුදෙව් අනාගතවක්තෘ ජෝෂුවාගේ පිටසක්වල ජීවිතය ( උතුරේ කතාවේ කාලයේ සිට). තවද තමා පමණක් නොව, ඔහුගේ පවුලේ අය, ඔහුගේ ඥාතීන් සහ මිතුරන්, ඔහුගේ මිතුරන් සහ අනුගාමිකයන් ද වේ. ඇත්ත වශයෙන්ම, එය අනාගතවක්තෘ ජෝෂුවාගේ භාර්යාව වූ යුදෙව් මරියාට, මාර්තා සහෝදරියක් සහ සහෝදර ලාසරස්, ඔහුගේ මව මාරියා යාකෝබේගේ සහෝදරිය සහ වෙනත් අය කිසි විටෙකත් රදොමිර් සහ මැග්ඩලීන් අසල නොසිටියහ. ඔවුන් අසල වෙනත් “ප්‍රේරිතයන්” නොසිටි ආකාරයටම - පාවුල්, මතෙව්, පේතෘස්, ලූක් සහ සෙසු අය ...
    වසර එකහමාරකට පෙර ප්‍රොවෙන්ස් (එදා ට්‍රාන්ස්ල්පයින් ගෝල් ලෙස හැඳින්වූ) ග්‍රීක නගරයක් වන මස්සාලියා (වර්තමාන මර්සෙයිල්) වෙත සංක්‍රමණය වූයේ අනාගතවක්තෘ ජෝෂුවාගේ පවුලයි. යුරෝපය සහ ආසියාව අතර "දොරටුව", එය පීඩා සහ කරදර වලක්වා ගැනීම සඳහා "පීඩාවට ලක් වූ" සියල්ලන්ට පහසුම මාර්ගය විය.



    
    ඉහල