Amazon Best VPN GoSearch

OnWorks ഫെവിക്കോൺ

orterun - ക്ലൗഡിൽ ഓൺലൈനിൽ

ഉബുണ്ടു ഓൺലൈൻ, ഫെഡോറ ഓൺലൈൻ, വിൻഡോസ് ഓൺലൈൻ എമുലേറ്റർ അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിവയിലൂടെ OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ orterun പ്രവർത്തിപ്പിക്കുക

Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്‌സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാവുന്ന കമാൻഡ് orterun ഇതാണ്.

പട്ടിക:

NAME


orterun, mpirun, mpiexec - ഓപ്പൺ എംപിഐയിൽ സീരിയൽ, പാരലൽ ജോലികൾ എക്സിക്യൂട്ട് ചെയ്യുക. ഓഷ്രുൺ, ഷ്മെംരുൺ
- ഓപ്പൺ SHMEM-ൽ സീരിയൽ, പാരലൽ ജോലികൾ എക്സിക്യൂട്ട് ചെയ്യുക.

കുറിപ്പ്: എംപിരുൺ, mpiexec, ഒപ്പം orterun എല്ലാം പരസ്പരം പര്യായപദങ്ങളാണ് ഒഷ്രുൺ,
shmemrun ഓപ്പൺ SHMEM ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെങ്കിൽ. ഏതെങ്കിലും പേരുകൾ ഉപയോഗിച്ചാൽ അതുതന്നെ ലഭിക്കും
പെരുമാറ്റം.

സിനോപ്സിസ്


സിംഗിൾ പ്രോസസ് മൾട്ടിപ്പിൾ ഡാറ്റ (SPMD) മോഡൽ:

എംപിരുൺ [ഓപ്‌ഷനുകൾ] [ ]

മൾട്ടിപ്പിൾ ഇൻസ്ട്രക്ഷൻ മൾട്ടിപ്പിൾ ഡാറ്റ (MIMD) മോഡൽ:

എംപിരുൺ [ ആഗോള_ഓപ്ഷനുകൾ ]
[ ലോക്കൽ_ഓപ്ഷനുകൾ1 ] [ ] :
[ ലോക്കൽ_ഓപ്ഷനുകൾ2 ] [ ] :
... :
[ local_optionsN ] [ ]

രണ്ട് മോഡലുകളിലും, ഇൻവോക്കിംഗ് എന്നത് ശ്രദ്ധിക്കുക എംപിരുൺ ഒരു സമ്പൂർണ്ണ പാതയുടെ പേര് ഇതിന് തുല്യമാണ്
വ്യക്തമാക്കുന്നത് --പ്രിഫിക്സ് a ഉള്ള ഓപ്ഷൻ ഡയറക്‌ടറിക്ക് തുല്യമായ മൂല്യം എംപിരുൺ
വസിക്കുന്നു, അതിന്റെ അവസാനത്തെ ഉപഡയറക്‌ടറിയിൽ നിന്ന് കുറയുന്നു. ഉദാഹരണത്തിന്:

% /usr/local/bin/mpirun ...

എന്നതിന് തുല്യമാണ്

% mpirun --പ്രിഫിക്സ് / usr / local

ദ്രുത സംഗ്രഹം


ഒരു MPI ആപ്ലിക്കേഷൻ എങ്ങനെ പ്രവർത്തിപ്പിക്കാമെന്ന് നിങ്ങൾ അന്വേഷിക്കുകയാണെങ്കിൽ, നിങ്ങൾ ഒരു ഉപയോഗിക്കണം
ഇനിപ്പറയുന്ന ഫോമിന്റെ കമാൻഡ് ലൈൻ:

% mpirun [ -np X ] [ --hostfile ]

ഇത് X പകർപ്പുകൾ പ്രവർത്തിപ്പിക്കും നിങ്ങളുടെ നിലവിലെ റൺ-ടൈം പരിതസ്ഥിതിയിൽ (കീഴിൽ പ്രവർത്തിക്കുകയാണെങ്കിൽ
ഒരു പിന്തുണയുള്ള റിസോഴ്സ് മാനേജർ, ഓപ്പൺ MPI-കൾ എംപിരുൺ സാധാരണയായി സ്വയമേവ ഉപയോഗിക്കും
അനുബന്ധ റിസോഴ്സ് മാനേജർ പ്രോസസ് സ്റ്റാർട്ടർ, ഉദാഹരണത്തിന്, വിപരീതമായി, rsh or ssh,
ഒരു ഹോസ്റ്റ് ഫയലിന്റെ ഉപയോഗം ആവശ്യമാണ്, അല്ലെങ്കിൽ എല്ലാ X പകർപ്പുകളും പ്രവർത്തിപ്പിക്കുന്നതിന് ഡിഫോൾട്ടായിരിക്കും
ലോക്കൽഹോസ്റ്റ്), CPU സ്ലോട്ട് വഴി ഒരു റൗണ്ട്-റോബിൻ രീതിയിൽ ഷെഡ്യൂളിംഗ് (സ്ഥിരസ്ഥിതിയായി). ബാക്കി കാണുക
കൂടുതൽ വിവരങ്ങൾക്ക് ഈ പേജ്.

v1.8 സീരീസിന്റെ ആരംഭം മുതൽ mpirun പ്രക്രിയകളെ യാന്ത്രികമായി ബന്ധിപ്പിക്കുന്നു എന്നത് ശ്രദ്ധിക്കുക.
കൂടുതൽ നിർദ്ദേശങ്ങളുടെ അഭാവത്തിൽ രണ്ട് ബൈൻഡിംഗ് പാറ്റേണുകൾ ഉപയോഗിക്കുന്നു:

ബൈൻഡ് ചെയ്യുക ലേക്ക് കാമ്പ്: പ്രക്രിയകളുടെ എണ്ണം <= 2 ആയിരിക്കുമ്പോൾ

ബൈൻഡ് ചെയ്യുക ലേക്ക് സോക്കറ്റ്: പ്രക്രിയകളുടെ എണ്ണം > 2 ആയിരിക്കുമ്പോൾ

നിങ്ങളുടെ ആപ്ലിക്കേഷൻ ത്രെഡുകൾ ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, നിങ്ങൾ ഒന്നുകിൽ അല്ലെന്ന് ഉറപ്പാക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം
എല്ലാം ബന്ധിപ്പിച്ചിരിക്കുന്നു (--ബൈൻഡ്-ടു നോൺ വ്യക്തമാക്കുന്നതിലൂടെ), അല്ലെങ്കിൽ ഒന്നിലധികം കോറുകളിലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു
ഓരോ ആപ്ലിക്കേഷനും ഉചിതമായ ബൈൻഡിംഗ് ലെവൽ അല്ലെങ്കിൽ പ്രോസസ്സിംഗ് ഘടകങ്ങളുടെ നിർദ്ദിഷ്ട എണ്ണം
പ്രക്രിയ.

ഓപ്ഷനുകൾ


എംപിരുൺ ഓരോന്നിനും ലോക്കൽ നോഡിൽ അഭ്യർത്ഥിച്ച ഡയറക്ടറിയുടെ പേര് അയയ്ക്കും
റിമോട്ട് നോഡുകളുടെ, ആ ഡയറക്ടറിയിലേക്ക് മാറ്റാൻ ശ്രമിക്കുക. "നിലവിലെ പ്രവർത്തനം കാണുക
കൂടുതൽ വിവരങ്ങൾക്ക് ചുവടെയുള്ള ഡയറക്ടറി" വിഭാഗം.

പ്രോഗ്രാം എക്സിക്യൂട്ടബിൾ. ഇത് അംഗീകരിക്കപ്പെടാത്ത ആദ്യത്തെ വാദമായി തിരിച്ചറിയപ്പെടുന്നു
എംപിരുന്.

ഓരോ പുതിയ പ്രക്രിയയ്ക്കും ഈ റൺ-ടൈം ആർഗ്യുമെന്റുകൾ കൈമാറുക. ഇവ എപ്പോഴും ആയിരിക്കണം
അവസാന വാദങ്ങൾ എംപിരുൺ. ഒരു ആപ്പ് സന്ദർഭ ഫയൽ ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ, ആയിരിക്കും
അവഗണിച്ചു.

-h, --സഹായിക്കൂ
ഈ കമാൻഡിനുള്ള സഹായം പ്രദർശിപ്പിക്കുക

-q, --നിശബ്ദമായി
ആപ്ലിക്കേഷൻ എക്സിക്യൂഷൻ സമയത്ത് orterun-ൽ നിന്നുള്ള വിജ്ഞാനപ്രദമായ സന്ദേശങ്ങൾ അടിച്ചമർത്തുക.

-v, --വാക്കുകൾ
വാചാലരായിരിക്കുക

-V, --പതിപ്പ്
പതിപ്പ് നമ്പർ പ്രിന്റ് ചെയ്യുക. മറ്റ് വാദങ്ങളൊന്നും നൽകിയില്ലെങ്കിൽ, ഇതും കാരണമാകും
പുറത്തുകടക്കാൻ orterun.

-പ്രദർശനം-മാപ്പ്, --ഡിസ്പ്ലേ-മാപ്പ്
സമാരംഭിക്കുന്നതിന് മുമ്പ് ഓരോ പ്രക്രിയയുടെയും മാപ്പ് ചെയ്ത സ്ഥാനം കാണിക്കുന്ന ഒരു പട്ടിക പ്രദർശിപ്പിക്കുക.

-ഡിസ്പ്ലേ-ഡെവലപ്പ്-മാപ്പ്, --display-devel-map
മുമ്പുള്ള ഓരോ പ്രക്രിയയുടെയും മാപ്പ് ചെയ്ത സ്ഥാനം കാണിക്കുന്ന കൂടുതൽ വിശദമായ പട്ടിക പ്രദർശിപ്പിക്കുക
സമാരംഭിക്കാൻ (സാധാരണയായി ഡവലപ്പർമാർക്ക് താൽപ്പര്യമുള്ളത്).

-ഡിസ്പ്ലേ-അലോക്കേഷൻ, --ഡിസ്പ്ലേ-അലോക്കേഷൻ
കണ്ടെത്തിയ റിസോഴ്സ് അലോക്കേഷൻ പ്രദർശിപ്പിക്കുക.

ക്ലസ്റ്ററിന്റെ ഏതൊക്കെ ഹോസ്റ്റുകൾ (നോഡുകൾ) പ്രവർത്തിപ്പിക്കണമെന്ന് വ്യക്തമാക്കുന്നതിന് ഇനിപ്പറയുന്ന ഓപ്ഷനുകളിലൊന്ന് ഉപയോഗിക്കുക.
v1.8 റിലീസ് ആരംഭിക്കുമ്പോൾ, ഓരോ ഹോസ്റ്റിലേക്കും mpirun ഒരു ഡെമൺ ലോഞ്ച് ചെയ്യും.
അലോക്കേഷനിൽ (ഇനിപ്പറയുന്ന ഓപ്ഷനുകളാൽ പരിഷ്കരിച്ചത്) തുടക്കത്തിൽ തന്നെ
നിർവ്വഹണം, ആപ്ലിക്കേഷൻ പ്രക്രിയകൾ ഒടുവിൽ മാപ്പ് ചെയ്യപ്പെടുമോ ഇല്ലയോ എന്നത് പരിഗണിക്കാതെ തന്നെ
അവിടെ നിർവ്വഹിക്കുക. ഹാർഡ്‌വെയർ ടോപ്പോളജി വിവരങ്ങൾ ശേഖരിക്കാൻ അനുവദിക്കുന്നതിനാണ് ഇത് ചെയ്യുന്നത്
റിമോട്ട് നോഡുകൾ, അങ്ങനെ അറിയപ്പെടുന്ന ടോപ്പോളജിക്കെതിരായ പ്രക്രിയകൾ മാപ്പ് ചെയ്യാൻ ഞങ്ങളെ അനുവദിക്കുന്നു. എന്നിരുന്നാലും, ഇത് എ
മാപ്പിംഗിന് ശേഷം മാത്രം ഡെമണുകൾ വിക്ഷേപിച്ച മുൻ പതിപ്പുകളിലെ സ്വഭാവത്തിൽ നിന്ന് മാറ്റം
പൂർത്തിയായി, അതിനാൽ ആപ്ലിക്കേഷൻ പ്രക്രിയകൾ യഥാർത്ഥത്തിൽ നടക്കുന്ന നോഡുകളിൽ മാത്രമാണ് സംഭവിച്ചത്
നടപ്പിലാക്കുക.

-H, - ഹോസ്റ്റ്, --ഹോസ്റ്റ്
പ്രോസസ്സുകൾ അഭ്യർത്ഥിക്കേണ്ട ഹോസ്റ്റുകളുടെ ലിസ്റ്റ്.

-hostfile, --hostfile
ഉപയോഗിക്കുന്നതിന് ഒരു ഹോസ്റ്റ് ഫയൽ നൽകുക.

-മെഷീൻ ഫയൽ, --മെഷീൻ ഫയൽ
എന്നതിന്റെ പര്യായപദം -hostfile.

-സിപിയു-സെറ്റ്, --സിപിയു-സെറ്റ്
ഓരോ നോഡിലുമുള്ള നിർദ്ദിഷ്ട ലോജിക്കൽ cpus-ലേക്ക് സമാരംഭിച്ച പ്രക്രിയകൾ പരിമിതപ്പെടുത്തുക. അതല്ല
നിർദ്ദിഷ്ട എൻവലപ്പിനുള്ളിൽ ബൈൻഡിംഗ് ഓപ്ഷനുകൾ തുടർന്നും ബാധകമാകും - ഉദാ, നിങ്ങൾക്ക് കഴിയും
ഓരോ പ്രക്രിയയും നിർദ്ദിഷ്ട സിപിയു സെറ്റിനുള്ളിൽ ഒരു സിപിയുവിലേക്ക് മാത്രം ബന്ധിപ്പിക്കാൻ തിരഞ്ഞെടുക്കുക.

ലോഞ്ച് ചെയ്യേണ്ട പ്രക്രിയകളുടെ എണ്ണം ഇനിപ്പറയുന്ന ഓപ്ഷനുകൾ വ്യക്തമാക്കുന്നു. ഒന്നുമില്ല എന്നത് ശ്രദ്ധിക്കുക
ഓപ്ഷനുകൾ ഒരു പ്രത്യേക ബൈൻഡിംഗ് നയത്തെ സൂചിപ്പിക്കുന്നു - ഉദാ, ഓരോ സോക്കറ്റിനും N പ്രക്രിയകൾ അഭ്യർത്ഥിക്കുന്നു
പ്രക്രിയകൾ സോക്കറ്റിലേക്ക് ബന്ധിക്കപ്പെടുമെന്ന് സൂചിപ്പിക്കുന്നില്ല.

-c, -n, --എൻ, -np <#>
തന്നിരിക്കുന്ന നോഡുകളിൽ പ്രോഗ്രാമിന്റെ ഇത്രയും പകർപ്പുകൾ പ്രവർത്തിപ്പിക്കുക. ഈ ഓപ്ഷൻ അത് സൂചിപ്പിക്കുന്നു
നിർദ്ദിഷ്ട ഫയൽ ഒരു എക്സിക്യൂട്ടബിൾ പ്രോഗ്രാമാണ്, ഒരു ആപ്ലിക്കേഷൻ സന്ദർഭമല്ല. അല്ലെങ്കിൽ
എക്സിക്യൂട്ട് ചെയ്യാനുള്ള പകർപ്പുകളുടെ എണ്ണത്തിന് മൂല്യം നൽകിയിരിക്കുന്നു (അതായത്, "-np" അല്ലെങ്കിൽ അല്ല
അതിന്റെ പര്യായങ്ങൾ കമാൻഡ് ലൈനിൽ നൽകിയിരിക്കുന്നു), ഓപ്പൺ MPI യാന്ത്രികമായി എക്സിക്യൂട്ട് ചെയ്യും
ഓരോ പ്രോസസ് സ്ലോട്ടിലും പ്രോഗ്രാമിന്റെ ഒരു പകർപ്പ് ("പ്രോസസ്സിന്റെ വിവരണത്തിനായി താഴെ കാണുക
സ്ലോട്ട്"). എന്നിരുന്നാലും, ഈ സവിശേഷത SPMD മോഡലിൽ മാത്രമേ ഉപയോഗിക്കാനാവൂ, അത് തിരികെ നൽകും
ഒരു പിശക് (അപ്ലിക്കേഷൻ എക്സിക്യൂഷൻ ആരംഭിക്കാതെ) അല്ലെങ്കിൽ.

-മാപ്പ്-ബൈ ppr:N:
ഓരോ നോഡിലും നിർദ്ദിഷ്‌ട തരത്തിലുള്ള ഒബ്‌ജക്‌റ്റുകളുടെ എണ്ണത്തിന്റെ N മടങ്ങ് സമാരംഭിക്കുക.

-npersocket, --npersocket <#persocket>
ഓരോ നോഡിലും, പ്രോസസ്സർ സോക്കറ്റുകളുടെ എണ്ണത്തിന്റെ ഇരട്ടി പ്രക്രിയകൾ സമാരംഭിക്കുക
നോഡ്. ദി -npersocket എന്ന ഓപ്ഷനും ഓണാക്കുന്നു -ബൈൻഡ്-ടു-സോക്കറ്റ് ഓപ്ഷൻ.
(--map-by ppr:n:socket-ന് അനുകൂലമായി ഒഴിവാക്കി)

-npernode, --npernode <#പെർനോഡ്>
ഓരോ നോഡിലും, ഇത്രയും പ്രക്രിയകൾ സമാരംഭിക്കുക. (--map-by ന് അനുകൂലമായി ഒഴിവാക്കി
ppr:n:നോഡ്)

-പെർനോഡ്, --പെർനോഡ്
ഓരോ നോഡിലും, ഒരു പ്രോസസ്സ് സമാരംഭിക്കുക -- ഇതിന് തുല്യമാണ് -npernode 1. (ഇൽ ഒഴിവാക്കി
--map-by ppr:1:node)

പ്രക്രിയകൾ മാപ്പ് ചെയ്യാൻ:

--മാപ്പ്-ബൈ
നിർദ്ദിഷ്‌ട ഒബ്‌ജക്‌റ്റിലേക്കുള്ള മാപ്പ്, സ്ഥിരസ്ഥിതിയായി സോക്കറ്റ്. പിന്തുണയ്ക്കുന്ന ഓപ്ഷനുകളിൽ സ്ലോട്ട് ഉൾപ്പെടുന്നു,
hwthread, core, L1cache, L2cache, L3cache, socket, numa, board, node, sequential,
ദൂരം, കൂടാതെ പിപിആർ. ഏതെങ്കിലും ഒബ്‌ജക്‌റ്റിന് ഒരു : കൂടാതെ ഏതെങ്കിലും ചേർക്കുന്നതിലൂടെ മോഡിഫയറുകൾ ഉൾപ്പെടുത്താം
PE=n (ഓരോ പ്രോസിലേയ്ക്കും n പ്രോസസ്സിംഗ് ഘടകങ്ങൾ ബൈൻഡ് ചെയ്യുക), SPAN (ലോഡ് ബാലൻസ്
അലോക്കേഷനിലുടനീളമുള്ള പ്രക്രിയകൾ), ഓവർസബ്‌സ്‌ക്രൈബ് (ഒരു നോഡിൽ കൂടുതൽ പ്രക്രിയകൾ അനുവദിക്കുക
പ്രോസസ്സിംഗ് ഘടകങ്ങളേക്കാൾ), കൂടാതെ NOOVERSUBSCRIBE ചെയ്യുക. ഇതിൽ PPR ഉൾപ്പെടുന്നു
മോഡിഫയറുകളിൽ നിന്ന് വേർതിരിക്കാൻ മറ്റൊരു കോളൻ പാറ്റേൺ അവസാനിപ്പിക്കും.

-ബൈകോർ, --ബൈകോർ
കോർ പ്രകാരമുള്ള മാപ്പ് പ്രക്രിയകൾ (--map-by core-ന് അനുകൂലമായി ഒഴിവാക്കി)

-ബൈസോക്കറ്റ്, --ബൈസോക്കറ്റ്
സോക്കറ്റ് വഴിയുള്ള മാപ്പ് പ്രക്രിയകൾ (--map-by socket-ന് അനുകൂലമായി ഒഴിവാക്കി)

- നോലോക്കൽ, --നോലോക്കൽ
ലോഞ്ച് ചെയ്ത ആപ്ലിക്കേഷന്റെ പകർപ്പുകളൊന്നും orterun ഉള്ള അതേ നോഡിൽ പ്രവർത്തിപ്പിക്കരുത്
പ്രവർത്തിക്കുന്ന. ഈ ഓപ്‌ഷൻ ലോക്കൽ ഹോസ്റ്റിനെ ലിസ്റ്റുചെയ്യുന്നത് അസാധുവാക്കും --ഹോസ്റ്റ് അല്ലെങ്കിൽ മറ്റേതെങ്കിലും
ഹോസ്റ്റ്-സ്പെസിഫൈയിംഗ് മെക്കാനിസം.

-ഓവർസബ്‌സ്‌ക്രൈബ്, --nooversubscribe
നോഡുകളൊന്നും ഓവർസബ്‌സ്‌ക്രൈബ് ചെയ്യരുത്; പിശക് (പ്രക്രിയകളൊന്നും ആരംഭിക്കാതെ) എങ്കിൽ
അഭ്യർത്ഥിച്ച പ്രക്രിയകളുടെ എണ്ണം അധിക സബ്‌സ്‌ക്രിപ്‌ഷന് കാരണമാകും. ഈ ഓപ്ഷൻ പരോക്ഷമായി
ഓരോ നോഡിന്റെയും "സ്ലോട്ടുകൾ" മൂല്യത്തിന് തുല്യമായ "max_slots" സജ്ജമാക്കുന്നു.

-ബൈനോഡ്, --ബൈനോഡ്
ഒരു നോഡിന് ഒന്ന് എന്ന തോതിൽ ലോഞ്ച് പ്രോസസ്സ് ചെയ്യുന്നു, റൗണ്ട് റോബിൻ രീതിയിൽ നോഡ് ബൈ സൈക്ലിംഗ്. ഈ
നോഡുകൾക്കിടയിൽ പ്രക്രിയകൾ തുല്യമായി വ്യാപിക്കുകയും ഒരു റൗണ്ടിൽ MPI_COMM_WORLD റാങ്കുകൾ നൽകുകയും ചെയ്യുന്നു-
റോബിൻ, "ബൈ നോഡ്" രീതിയിൽ.

MPI_COMM_WORLD-ൽ പ്രോസസ്സുകളുടെ റാങ്കുകൾ ഓർഡർ ചെയ്യാൻ:

--റാങ്ക്-ബൈ
നിർദ്ദിഷ്ട ഒബ്‌ജക്റ്റ് അനുസരിച്ച് റൗണ്ട് റോബിൻ രീതിയിൽ റാങ്ക് ചെയ്യുക, ഡിഫോൾട്ട് സ്ലോട്ട്.
പിന്തുണയ്‌ക്കുന്ന ഓപ്ഷനുകളിൽ സ്ലോട്ട്, hwthread, core, L1cache, L2cache, L3cache, socket എന്നിവ ഉൾപ്പെടുന്നു
നുമ, ബോർഡ്, നോഡ്.

പ്രോസസ്സ് ബൈൻഡിംഗിനായി:

--ബന്ധിക്കുക
നിർദ്ദിഷ്ട ഒബ്‌ജക്‌റ്റിലേക്ക് പ്രോസസ്സുകൾ ബൈൻഡ് ചെയ്യുക, ഡിഫോൾട്ട് കോർ. പിന്തുണയ്ക്കുന്ന ഓപ്ഷനുകളിൽ ഉൾപ്പെടുന്നു
സ്ലോട്ട്, hwthread, core, l1cache, l2cache, l3cache, socket, numa, board, ഒന്നുമില്ല.

-cpus-per-proc, --cpus-per-proc <#perproc>
ഓരോ പ്രക്രിയയും നിർദ്ദിഷ്ട cpus-ലേക്ക് ബന്ധിപ്പിക്കുക. (--മാപ്പ്--ന് അനുകൂലമായി ഒഴിവാക്കി
വഴി :PE=n)

-cpus-per-rank, --cpus-per-rank <#perrank>
അപരനാമം -cpus-per-proc. (--map-by ന് അനുകൂലമായി ഒഴിവാക്കി :PE=n)

-ബൈൻഡ്-ടു-കോർ, --ബൈൻഡ്-ടു-കോർ
കോറുകളിലേക്ക് പ്രക്രിയകൾ ബന്ധിപ്പിക്കുക (-ബൈൻഡ്-ടു കോറിന് അനുകൂലമായി ഒഴിവാക്കിയിരിക്കുന്നു)

-ബൈൻഡ്-ടു-സോക്കറ്റ്, --ബൈൻഡ്-ടു-സോക്കറ്റ്
പ്രോസസർ സോക്കറ്റുകളിലേക്ക് പ്രക്രിയകൾ ബൈൻഡ് ചെയ്യുക (-ബൈൻഡ്-ടു സോക്കറ്റിന് അനുകൂലമായി ഒഴിവാക്കി)

-ഒന്നും ബന്ധിക്കരുത്, --ബൈൻഡ്-ടു-ഒന്നും
പ്രക്രിയകൾ ബന്ധിപ്പിക്കരുത് (--ബൈൻഡ്-ടു നോൺ എന്നതിന് അനുകൂലമായി ഒഴിവാക്കിയിരിക്കുന്നു)

-റിപ്പോർട്ട്-ബൈൻഡിംഗുകൾ, --റിപ്പോർട്ട്-ബൈൻഡിംഗുകൾ
സമാരംഭിച്ച പ്രക്രിയകൾക്കായി എന്തെങ്കിലും ബൈൻഡിംഗുകൾ റിപ്പോർട്ട് ചെയ്യുക.

-സ്ലോട്ട്-ലിസ്റ്റ്, --സ്ലോട്ട്-ലിസ്റ്റ്
MPI പ്രോസസ്സുകൾ ബൈൻഡുചെയ്യുന്നതിന് ഉപയോഗിക്കേണ്ട പ്രോസസ്സർ ഐഡികളുടെ ലിസ്റ്റ്. നിർദ്ദിഷ്ട ബൈൻഡിംഗുകൾ
എല്ലാ MPI പ്രക്രിയകളിലും പ്രയോഗിക്കും. വാക്യഘടനയ്ക്ക് താഴെയുള്ള വിശദീകരണം കാണുക.

റാങ്ക് ഫയലുകൾക്കായി:

-ആർഎഫ്, --റാങ്ക് ഫയൽ
ഒരു റാങ്ക് ഫയൽ നൽകുക.

സ്റ്റാൻഡേർഡ് I/O മാനേജ് ചെയ്യാൻ:

-ഔട്ട്പുട്ട്-ഫയലിന്റെ പേര്, --ഔട്ട്പുട്ട്-ഫയലിന്റെ പേര്
എല്ലാ പ്രക്രിയകളുടെയും stdout, stderr, stddiag എന്നിവ ഒരു പ്രക്രിയ-അതുല്യതയിലേക്ക് റീഡയറക്‌ട് ചെയ്യുക
നിർദ്ദിഷ്ട ഫയൽ നാമത്തിന്റെ പതിപ്പ്. ഫയലിന്റെ പേരിലുള്ള ഏത് ഡയറക്ടറികളും ചെയ്യും
യാന്ത്രികമായി സൃഷ്ടിക്കപ്പെടും. ഓരോ ഔട്ട്‌പുട്ട് ഫയലിലും filename.id അടങ്ങിയിരിക്കുന്നു, അവിടെ
id എന്നത് MPI_COMM_WORLD എന്നതിലെ പ്രക്രിയകളുടെ റാങ്ക് ആയിരിക്കും, ഇടതുവശത്ത് പൂജ്യങ്ങൾ നിറഞ്ഞതാണ്
ലിസ്റ്റിംഗിലെ ശരിയായ ക്രമം.

-stdin, --stdin
stdin ലഭിക്കേണ്ട പ്രക്രിയയുടെ MPI_COMM_WORLD റാങ്ക്. ഡിഫോൾട്ട് ആണ്
MPI_COMM_WORLD റാങ്ക് 0-ലേക്ക് stdin ഫോർവേഡ് ചെയ്യുക, എന്നാൽ ഫോർവേഡ് ചെയ്യാൻ ഈ ഓപ്ഷൻ ഉപയോഗിക്കാം
ഏതെങ്കിലും പ്രക്രിയയിലേക്ക് stdin. വ്യക്തമാക്കുന്നതും സ്വീകാര്യമാണ് ആരുംഇല്ല എന്ന് സൂചിപ്പിക്കുന്നു
stdin സ്വീകരിക്കാനുള്ള പ്രക്രിയകളാണ്.

-ടാഗ്-ഔട്ട്പുട്ട്, --ടാഗ്-ഔട്ട്പുട്ട്
ഔട്ട്‌പുട്ടിന്റെ ഓരോ വരിയും stdout, stderr, stddiag എന്നിവയിലേക്ക് ടാഗ് ചെയ്യുക [ജോലി,
MCW_rank] പ്രക്രിയ ജോബിഡും MPI_COMM_WORLD റാങ്കും സൂചിപ്പിക്കുന്നു
ഔട്ട്പുട്ട് ജനറേറ്റ് ചെയ്ത പ്രക്രിയയും അത് സൃഷ്ടിച്ച ചാനലും.

-ടൈംസ്റ്റാമ്പ്-ഔട്ട്പുട്ട്, --ടൈംസ്റ്റാമ്പ്-ഔട്ട്പുട്ട്
ഔട്ട്‌പുട്ടിന്റെ ഓരോ വരിയും stdout, stderr, stddiag എന്നിവയിലേക്ക് ടൈംസ്റ്റാമ്പ് ചെയ്യുക.

-xml, --xml
stdout, stderr, stddiag എന്നിവയ്‌ക്ക് ഒരു xml ഫോർമാറ്റിൽ എല്ലാ ഔട്ട്‌പുട്ടും നൽകുക.

-xterm, --xterm
അവരുടെ MPI_COMM_WORLD റാങ്കുകൾ തിരിച്ചറിഞ്ഞ പ്രക്രിയകളിൽ നിന്നുള്ള ഔട്ട്‌പുട്ട് പ്രദർശിപ്പിക്കുക
പ്രത്യേക xterm വിൻഡോകൾ. കോമയാൽ വേർതിരിച്ച ലിസ്റ്റായി റാങ്കുകൾ വ്യക്തമാക്കിയിരിക്കുന്നു
ശ്രേണികൾ, എല്ലാം സൂചിപ്പിക്കുന്ന -1. ഓരോന്നിനും ഒരു പ്രത്യേക വിൻഡോ സൃഷ്ടിക്കും
നിർദ്ദിഷ്ട പ്രക്രിയ. കുറിപ്പ്: xterm സാധാരണയായി വിൻഡോ അവസാനിപ്പിക്കുമ്പോൾ അവസാനിപ്പിക്കും
അതിനുള്ളിൽ പ്രവർത്തിക്കുന്ന പ്രക്രിയയുടെ. എന്നിരുന്നാലും, ഒരു "!" ചേർത്തുകൊണ്ട് പട്ടികയുടെ അവസാനം വരെ
നിർദ്ദിഷ്ട റാങ്കുകളുടെ, xterm നിലനിർത്തുന്നുവെന്ന് ഉറപ്പാക്കാൻ ശരിയായ ഓപ്ഷനുകൾ നൽകും
ജനൽ തുറന്നു ശേഷം പ്രക്രിയ അവസാനിക്കുന്നു, അങ്ങനെ പ്രക്രിയ കാണാൻ നിങ്ങളെ അനുവദിക്കുന്നു'
ഔട്ട്പുട്ട്. ഓരോ xterm വിൻഡോയും പിന്നീട് സ്വമേധയാ അടയ്ക്കേണ്ടതുണ്ട്. കുറിപ്പ്: In
ചില പരിതസ്ഥിതികൾ, എക്സിക്യൂട്ടബിൾ ഉപയോക്താവിന്റെ പാതയിലായിരിക്കണമെന്ന് xterm ആവശ്യപ്പെടാം, അല്ലെങ്കിൽ
കേവലമോ ആപേക്ഷികമോ ആയ പദങ്ങളിൽ വ്യക്തമാക്കണം. അതിനാൽ, a വ്യക്തമാക്കേണ്ടത് ആവശ്യമായി വന്നേക്കാം
"foo" എന്നതിന് പകരം "./foo" ആയി ലോക്കൽ എക്സിക്യൂട്ടബിൾ. xterm കണ്ടെത്തുന്നതിൽ പരാജയപ്പെട്ടാൽ
എക്സിക്യൂട്ടബിൾ, mpirun തൂങ്ങിക്കിടക്കും, പക്ഷേ ഇപ്പോഴും ഒരു ctrl-c-ലേക്ക് ശരിയായി പ്രതികരിക്കും. ഇത് എങ്കിൽ
സംഭവിക്കുന്നു, എക്സിക്യൂട്ടബിൾ ശരിയായി വ്യക്തമാക്കുന്നുണ്ടോയെന്ന് പരിശോധിച്ച് ശ്രമിക്കുക
വീണ്ടും.

ഫയലുകളും റൺടൈം പരിതസ്ഥിതിയും നിയന്ത്രിക്കാൻ:

-പാത, --പാത
അഭ്യർത്ഥിച്ച എക്സിക്യൂട്ടബിളുകൾ കണ്ടെത്താൻ ശ്രമിക്കുമ്പോൾ അത് ഉപയോഗിക്കും. ഈ
പ്രാദേശിക PATH ക്രമീകരണം ഉപയോഗിക്കുന്നതിന് മുമ്പ് ഉപയോഗിക്കുന്നു.

--പ്രിഫിക്സ്
സെറ്റ് ചെയ്യാൻ ഉപയോഗിക്കുന്ന പ്രിഫിക്‌സ് ഡയറക്‌ടറി PATH ഒപ്പം LD_LIBRARY_PATH ന്
ഓപ്പൺ MPI അല്ലെങ്കിൽ ടാർഗെറ്റ് പ്രോസസ്സ് അഭ്യർത്ഥിക്കുന്നതിന് മുമ്പ് റിമോട്ട് നോഡ്. "റിമോട്ട് കാണുക
നിർവ്വഹണം" വിഭാഗം, താഴെ.

--പ്രീലോഡ്-ബൈനറി
റിമോട്ട് ആരംഭിക്കുന്നതിന് മുമ്പ് നിർദ്ദിഷ്‌ട എക്‌സിക്യൂട്ടബിൾ(കൾ) റിമോട്ട് മെഷീനുകളിലേക്ക് പകർത്തുക
പ്രക്രിയകൾ. എക്സിക്യൂട്ടബിളുകൾ ഓപ്പൺ MPI സെഷൻ ഡയറക്‌ടറിയിലേക്ക് പകർത്തും
ജോലി പൂർത്തിയാകുമ്പോൾ ഇല്ലാതാക്കപ്പെടും.

--പ്രീലോഡ്-ഫയലുകൾ
കോമ ഉപയോഗിച്ച് വേർതിരിച്ച ഫയലുകളുടെ ലിസ്റ്റ് നിലവിലെ വർക്കിംഗ് ഡയറക്ടറിയിലേക്ക് പ്രീലോഡ് ചെയ്യുക
റിമോട്ട് മെഷീനുകൾ, ആ പ്രക്രിയകൾ ആരംഭിക്കുന്നതിന് മുമ്പ് പ്രോസസ്സുകൾ സമാരംഭിക്കും.

--preload-files-dest-dir
നിലവിലുള്ളതല്ലെങ്കിൽ, പ്രീലോഡ് ഫയലുകൾക്കായി ഉപയോഗിക്കേണ്ട ഡെസ്റ്റിനേഷൻ ഡയറക്‌ടറി
പ്രവർത്തന ഡയറക്ടറി. സ്ഥിരസ്ഥിതിയായി, നൽകിയിരിക്കുന്നത് കേവലവും ആപേക്ഷികവുമായ പാതകൾ
--preload-files ഉപയോഗിക്കുന്നു.

--tmpdir
mpirun-ന് വേണ്ടി മാത്രം സെഷൻ ഡയറക്‌ടറി ട്രീയുടെ റൂട്ട് സജ്ജമാക്കുക.

-ഡബ്ല്യു.ഡി
എന്നതിന്റെ പര്യായപദം -wdir.

-wdir
ഡയറക്ടറിയിലേക്ക് മാറ്റുക ഉപയോക്താവിന്റെ പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ്. "നിലവിലെ" കാണുക
ആപേക്ഷിക പാതകളെക്കുറിച്ചുള്ള കുറിപ്പുകൾക്കായുള്ള വർക്കിംഗ് ഡയറക്ടറി" വിഭാഗം. കുറിപ്പ്: എങ്കില് -wdir ഓപ്ഷൻ
കമാൻഡ് ലൈനിലും ഒരു ആപ്ലിക്കേഷൻ സന്ദർഭത്തിലും ദൃശ്യമാകും, സന്ദർഭം ചെയ്യും
കമാൻഡ് ലൈനിൽ മുൻഗണന നൽകുക. അങ്ങനെ, ആവശ്യമുള്ള wdir-ലേക്കുള്ള പാത ആണെങ്കിൽ
ബാക്കെൻഡ് നോഡുകളിൽ വ്യത്യസ്‌തമാണ്, അപ്പോൾ അത് ഒരു കേവല പാതയായി വ്യക്തമാക്കണം
ബാക്കെൻഡ് നോഡിന് ശരിയാണ്.

-x
എക്സിക്യൂട്ട് ചെയ്യുന്നതിന് മുമ്പ് നിർദ്ദിഷ്‌ട പരിസ്ഥിതി വേരിയബിളുകൾ റിമോട്ട് നോഡുകളിലേക്ക് എക്‌സ്‌പോർട്ട് ചെയ്യുക
പ്രോഗ്രാം. ഓരോന്നിനും ഒരു പരിസ്ഥിതി വേരിയബിൾ മാത്രമേ വ്യക്തമാക്കാൻ കഴിയൂ -x ഓപ്ഷൻ. നിലവിലുള്ള
പരിസ്ഥിതി വേരിയബിളുകൾ വ്യക്തമാക്കാം അല്ലെങ്കിൽ പുതിയ വേരിയബിൾ പേരുകൾ ഉപയോഗിച്ച് വ്യക്തമാക്കാം
അനുബന്ധ മൂല്യങ്ങൾ. ഉദാഹരണത്തിന്:
% mpirun -x DISPLAY -x OFILE=/tmp/out ...

എന്നതിനായുള്ള പാഴ്സർ -x ഓപ്ഷൻ വളരെ സങ്കീർണ്ണമല്ല; അതു പോലും മനസ്സിലാകുന്നില്ല
ഉദ്ധരിച്ച മൂല്യങ്ങൾ. പരിസ്ഥിതിയിൽ വേരിയബിളുകൾ സജ്ജീകരിക്കാനും തുടർന്ന് ഉപയോഗിക്കാനും ഉപയോക്താക്കൾ നിർദ്ദേശിക്കുന്നു
-x അവ കയറ്റുമതി ചെയ്യാൻ (നിർവചിക്കുന്നില്ല).

MCA പാരാമീറ്ററുകൾ ക്രമീകരിക്കുന്നു:

-ജിഎംസിഎ, --ജിഎംസിഎ
എല്ലാ സന്ദർഭങ്ങൾക്കും ബാധകമായ ആഗോള MCA പാരാമീറ്ററുകൾ പാസാക്കുക. ആകുന്നു
പരാമീറ്റർ പേര്; പരാമീറ്റർ മൂല്യമാണ്.

-എംസിഎ, --എംസിഎ
വിവിധ MCA മൊഡ്യൂളുകളിലേക്ക് ആർഗ്യുമെന്റുകൾ അയയ്ക്കുക. താഴെയുള്ള "MCA" വിഭാഗം കാണുക.

ഡീബഗ്ഗിംഗിന്:

- ഡീബഗ്, --ഡീബഗ്
സൂചിപ്പിക്കുന്ന ഉപയോക്തൃ-തല ഡീബഗ്ഗർ അഭ്യർത്ഥിക്കുക orte_base_user_debugger എം.സി.എ.
പാരാമീറ്റർ.

-ഡീബഗ്ഗർ, --ഡീബഗ്ഗർ
എപ്പോൾ എന്ന് തിരയാനുള്ള ഡീബഗ്ഗറുകളുടെ ക്രമം --ഡീബഗ് ഉപയോഗിക്കുന്നു (അതായത് എന്നതിന്റെ പര്യായപദം
orte_base_user_debugger MCA പരാമീറ്റർ).

-ടിവി, --ടിവി
TotalView ഡീബഗ്ഗറിന് കീഴിൽ പ്രോസസ്സുകൾ സമാരംഭിക്കുക. പിന്നോക്ക അനുയോജ്യത ഒഴിവാക്കി
പതാക. എന്നതിന്റെ പര്യായപദം --ഡീബഗ്.

മറ്റ് ഓപ്ഷനുകളും ഉണ്ട്:

--aullow-run-as-root
അനുവദിക്കുക എംപിരുൺ റൂട്ട് ഉപയോക്താവ് എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ പ്രവർത്തിപ്പിക്കാൻ (എംപിരുൺ അലസിപ്പിക്കാനുള്ള സ്ഥിരസ്ഥിതി
റൂട്ട് ഉപയോക്താവായി സമാരംഭിക്കുമ്പോൾ).

- അലസിപ്പിച്ചു, --അലസിപ്പിച്ചു <#>
ഡിസ്പ്ലേ ചെയ്യുന്നതിനായി നിർത്തലാക്കിയ പ്രക്രിയകളുടെ പരമാവധി എണ്ണം സജ്ജമാക്കുക.

--ആപ്പ്
മറ്റെല്ലാ കമാൻഡ് ലൈൻ ഓപ്ഷനുകളും അവഗണിച്ച് ഒരു appfile നൽകുക.

-സി.എഫ്, --കാർട്ടോഫിൽ
ഒരു കാർട്ടോഗ്രാഫി ഫയൽ നൽകുക.

--ഹെറ്ററോ
32/64-ബിറ്റിന്റെ മിശ്രിതമായ ഒന്നിലധികം app_contexts നൽകുന്നുണ്ടെന്ന് സൂചിപ്പിക്കുന്നു
ബൈനറികൾ.

-ലീവ്-സെഷൻ-അറ്റാച്ച്ഡ്, --ലീവ്-സെഷൻ-അറ്റാച്ച്ഡ്
ഈ ആപ്ലിക്കേഷൻ ഉപയോഗിക്കുന്ന OmpiRTE ഡെമണുകൾ വേർപെടുത്തരുത്. ഇത് പിശക് സന്ദേശങ്ങൾ അനുവദിക്കുന്നു
ഡെമണുകളിൽ നിന്നും അടിസ്ഥാന പരിതസ്ഥിതിയിൽ നിന്നും (ഉദാ. പരാജയപ്പെടുമ്പോൾ
ഒരു ഡെമൺ സമാരംഭിക്കുക) ഔട്ട്പുട്ട് ആകാൻ.

-ഓംപി-സെർവർ, --ompi-server <ഉരി or ഫയൽ>
ഓപ്പൺ MPI സെർവറിന്റെ URI വ്യക്തമാക്കുക (അല്ലെങ്കിൽ സെർവറായി ഉപയോഗിക്കേണ്ട mpirun) ,
ആ വിവരം ഉൾക്കൊള്ളുന്ന ഫയലിന്റെ പേര് (ഫയൽ:ഫയലിന്റെ പേര് എന്ന് വ്യക്തമാക്കിയിരിക്കുന്നു) അല്ലെങ്കിൽ
ഉപയോഗിക്കേണ്ട എംപിറൂണിന്റെ PID (pid:# എന്ന് വ്യക്തമാക്കിയിരിക്കുന്നു).
സെർവർ. മൾട്ടി-ആപ്ലിക്കേഷൻ ഡാറ്റയെ പിന്തുണയ്ക്കാൻ ഓപ്പൺ എംപിഐ സെർവർ ഉപയോഗിക്കുന്നു
MPI-2 MPI_Publish_name, MPI_Lookup_name ഫംഗ്‌ഷനുകൾ വഴി കൈമാറ്റം ചെയ്യുക.

-റിപ്പോർട്ട്-pid, --report-pid
സ്റ്റാർട്ടപ്പ് സമയത്ത് mpirun ന്റെ PID പ്രിന്റ് ഔട്ട് ചെയ്യുക. ചാനൽ ഇൻഡിയിലേക്ക് ഒന്നുകിൽ '-' ആയിരിക്കണം
pid stdout-ലേക്ക് ഔട്ട്പുട്ട് ചെയ്യണം, pid എന്നത് സൂചിപ്പിക്കാൻ '+'
stderr ലേക്ക് ഔട്ട്‌പ്പ് ചെയ്യുക, അല്ലെങ്കിൽ pid എഴുതേണ്ട ഫയലിന്റെ പേര്.

-റിപ്പോർട്ട്-ഉറി, --report-uri
സ്റ്റാർട്ടപ്പ് സമയത്ത് mpirun ന്റെ URI പ്രിന്റ് ഔട്ട് ചെയ്യുക. ചാനൽ ഇൻഡിയിലേക്ക് ഒന്നുകിൽ '-' ആയിരിക്കണം
URI എന്നത് stdout-ലേക്ക് ഔട്ട്‌പുട്ട് ചെയ്യണം, URI എന്നത് സൂചിപ്പിക്കുന്നതിന് '+'
stderr ലേക്ക് ഔട്ട്‌പ്പ് ചെയ്യുക, അല്ലെങ്കിൽ URI എഴുതേണ്ട ഒരു ഫയൽ നാമം.

സെർവറിനായി കാത്തിരിക്കുക, സെർവറിനായി കാത്തിരിക്കുക
ompi-സെർവർ കണ്ടെത്തുന്നത് വരെ ജോലി ആരംഭിക്കുന്നതിന് മുമ്പ് mpirun താൽക്കാലികമായി നിർത്തുക. ഇത് ഉപയോഗപ്രദമാണ്
പശ്ചാത്തലത്തിൽ ompi-സെർവർ ആരംഭിച്ചേക്കാവുന്ന സ്ക്രിപ്റ്റുകളിൽ, ഉടനടി പിന്തുടരുന്നു
ഒരു എംപിരുൺ അതിലേക്ക് ബന്ധിപ്പിക്കാൻ ആഗ്രഹിക്കുന്ന കമാൻഡ്. ഒന്നുകിൽ Mpirun താൽക്കാലികമായി നിർത്തും
നിർദ്ദിഷ്‌ട ഓംപി-സെർവറുമായി ബന്ധപ്പെടുകയോ സെർവർ-കാത്തിരിപ്പ് സമയം കവിയുകയോ ചെയ്യുന്നു.

-സെർവർ-കാത്തിരിപ്പ് സമയം, --സെർവർ-കാത്തിരിപ്പ് സമയം
പരമാവധി സമയം (സെക്കൻഡിൽ) mpirun ompi-സെർവറിന് വേണ്ടി കാത്തിരിക്കണം
ആരംഭിക്കുക. സ്ഥിരസ്ഥിതി 10 സെക്കൻഡ് ആണ്.

ഇനിപ്പറയുന്ന ഓപ്ഷനുകൾ ഡെവലപ്പർമാർക്ക് ഉപയോഗപ്രദമാണ്; അവ സാധാരണയായി മിക്കവർക്കും ഉപയോഗപ്രദമല്ല
ORTE കൂടാതെ/അല്ലെങ്കിൽ MPI ഉപയോക്താക്കൾ:

-d, --ഡീബഗ്-ഡെവൽ
OmpiRTE (ഓപ്പൺ MPI-യിലെ റൺ-ടൈം ലെയർ) ഡീബഗ്ഗിംഗ് പ്രവർത്തനക്ഷമമാക്കുക. ഇതല്ല
മിക്ക ഉപയോക്താക്കൾക്കും സാധാരണയായി ഉപയോഗപ്രദമാണ്.

--ഡീബഗ്-ഡെമൺസ്
ഈ ആപ്ലിക്കേഷൻ ഉപയോഗിക്കുന്ന ഏതെങ്കിലും OmpiRTE ഡെമണുകളുടെ ഡീബഗ്ഗിംഗ് പ്രവർത്തനക്ഷമമാക്കുക.

--debug-daemons-file
ഔട്ട്‌പുട്ട് സംഭരിച്ച് ഈ ആപ്ലിക്കേഷൻ ഉപയോഗിക്കുന്ന ഏതെങ്കിലും OmpiRTE ഡെമണുകളുടെ ഡീബഗ്ഗിംഗ് പ്രവർത്തനക്ഷമമാക്കുക
ഫയലുകൾ.

-ലോഞ്ച്-ഏജന്റ്, --ലോഞ്ച്-ഏജന്റ്
റിമോട്ട് നോഡുകളിൽ പ്രോസസ്സുകൾ ആരംഭിക്കാൻ ഉപയോഗിക്കേണ്ട എക്സിക്യൂട്ടബിളിന്റെ പേര്.
സ്ഥിരസ്ഥിതി "orted" ആണ്. പുതിയ ഡെമൺ ആശയങ്ങൾ പരീക്ഷിക്കാൻ ഈ ഓപ്ഷൻ ഉപയോഗിക്കാം, അല്ലെങ്കിൽ
mpirun തന്നെ കാണാതെ തന്നെ ഡെമണുകളിലേക്ക് ഓപ്ഷനുകൾ കൈമാറുക. വേണ്ടി
ഉദാഹരണത്തിന്, orted -mca odls_base_verbose 5-ന്റെ ഒരു ലോഞ്ച് ഏജന്റ് വ്യക്തമാക്കുന്നത് അനുവദിക്കുന്നു
mpirun-ൽ നിന്ന് തന്നെ ഡീബഗ്ഗിംഗ് ഔട്ട്‌പുട്ടിനായി ഡവലപ്പർ ആവശ്യപ്പെടുന്നു.

--നോപ്രിഫിക്സ്
ഓട്ടോമാറ്റിക് --പ്രിഫിക്സ് സ്വഭാവം പ്രവർത്തനരഹിതമാക്കുക

പട്ടികപ്പെടുത്തിയിരിക്കുന്ന മറ്റ് ഓപ്ഷനുകൾ ഉണ്ടായിരിക്കാം എംപിരുൺ --സഹായിക്കൂ.

പരിസ്ഥിതി വേരിയബിളുകൾ
MPIEXEC_TIMEOUT
അത് പരമാവധി സെക്കന്റുകൾ എംപിരുൺ (mpiexec) ഓടും. ഇതിനുശേഷം നിരവധി
സെക്കൻഡ്, എംപിരുൺ ലോഞ്ച് ചെയ്‌ത ജോലി ഉപേക്ഷിച്ച് പുറത്തുകടക്കും.

വിവരണം


ഒരു അഭ്യർത്ഥന എംപിരുൺ ഓപ്പൺ MPI-ന് കീഴിൽ പ്രവർത്തിക്കുന്ന ഒരു MPI ആപ്ലിക്കേഷൻ ആരംഭിക്കുന്നു. എങ്കിൽ
ആപ്ലിക്കേഷൻ സിംഗിൾ പ്രോസസ്സ് മൾട്ടിപ്പിൾ ഡാറ്റയാണ് (SPMD), ആപ്ലിക്കേഷൻ വ്യക്തമാക്കാൻ കഴിയും
The എംപിരുൺ കമാൻഡ് ലൈൻ.

ആപ്ലിക്കേഷൻ മൾട്ടിപ്പിൾ ഇൻസ്ട്രക്ഷൻ മൾട്ടിപ്പിൾ ഡാറ്റയാണെങ്കിൽ (എംഐഎംഡി), ഒന്നിലധികം ഉൾപ്പെടുന്നു
പ്രോഗ്രാമുകൾ, പ്രോഗ്രാമുകളുടെ സെറ്റും ആർഗ്യുമെന്റും രണ്ട് വഴികളിൽ ഒന്നിൽ വ്യക്തമാക്കാം: വിപുലീകരിച്ചത്
കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റുകളും ആപ്ലിക്കേഷൻ സന്ദർഭവും.

എയിലെ എല്ലാ ആർഗ്യുമെന്റുകളും ഉൾപ്പെടെ MIMD പ്രോഗ്രാം സെറ്റിനെ ഒരു ആപ്ലിക്കേഷൻ സന്ദർഭം വിവരിക്കുന്നു
പ്രത്യേക ഫയൽ. ഈ ഫയലിൽ പ്രധാനമായും ഒന്നിലധികം അടങ്ങിയിരിക്കുന്നു എംപിരുൺ കമാൻഡ് ലൈനുകൾ, കുറവ്
കമാൻഡ് നാമം തന്നെ. വ്യത്യസ്ത ഓപ്ഷനുകൾക്കായി വ്യത്യസ്ത ഓപ്ഷനുകൾ വ്യക്തമാക്കാനുള്ള കഴിവ്
ഒരു ആപ്ലിക്കേഷന്റെ സന്ദർഭം ഉപയോഗിക്കുന്നതിനുള്ള മറ്റൊരു കാരണം പ്രോഗ്രാമിന്റെ ഇൻസ്റ്റന്റേഷനുകളാണ്.

വിപുലീകരിച്ച കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റുകൾ ആപ്ലിക്കേഷൻ ലേഔട്ടിന്റെ വിവരണം അനുവദിക്കുന്നു
കോളണുകൾ ഉപയോഗിക്കുന്ന കമാൻഡ് ലൈൻ (:) പ്രോഗ്രാമുകളുടെയും ആർഗ്യുമെന്റുകളുടെയും സ്പെസിഫിക്കേഷൻ വേർതിരിക്കുന്നതിന്.
ചില ഓപ്ഷനുകൾ ആഗോളതലത്തിൽ എല്ലാ നിർദ്ദിഷ്ട പ്രോഗ്രാമുകളിലും (ഉദാ --hostfile) സജ്ജീകരിച്ചിരിക്കുന്നു
മറ്റുള്ളവ ഒരു പ്രോഗ്രാമിന് മാത്രമുള്ളതാണ് (ഉദാ -np).

വ്യക്തമാക്കുന്നത് ഹോസ്റ്റ് നോഡുകൾ
ഹോസ്റ്റ് നോഡുകൾ തിരിച്ചറിയാൻ കഴിയും എംപിരുൺ കൂടെ കമാൻഡ് ലൈൻ - ഹോസ്റ്റ് ഓപ്ഷൻ അല്ലെങ്കിൽ ഒരു
ഹോസ്റ്റ് ഫയൽ.

ഉദാഹരണത്തിന്,

mpirun -H aa,aa,bb ./a.out
നോഡ് aa-യിലും ഒന്ന് bb-ലും രണ്ട് പ്രക്രിയകൾ സമാരംഭിക്കുന്നു.

അല്ലെങ്കിൽ, ഹോസ്റ്റ് ഫയൽ പരിഗണിക്കുക

% പൂച്ച myhostfile
aa സ്ലോട്ടുകൾ=2
bb സ്ലോട്ടുകൾ=2
cc സ്ലോട്ടുകൾ=2

ഇവിടെ, ഞങ്ങൾ രണ്ട് ഹോസ്റ്റ് പേരുകളും (aa, bb, cc) ലിസ്റ്റ് ചെയ്യുന്നു, കൂടാതെ എത്ര "സ്ലോട്ടുകൾ" ഉണ്ട്
ഓരോന്നും. ഒരു നോഡിൽ എത്ര പ്രോസസുകൾ നടപ്പിലാക്കാൻ കഴിയുമെന്ന് സ്ലോട്ടുകൾ സൂചിപ്പിക്കുന്നു. മികച്ചതിന്
പ്രകടനം, സ്ലോട്ടുകളുടെ എണ്ണം നോഡിലെ കോറുകളുടെ എണ്ണമായി തിരഞ്ഞെടുക്കാം അല്ലെങ്കിൽ
പ്രോസസ്സർ സോക്കറ്റുകളുടെ എണ്ണം. ഹോസ്റ്റ്ഫയൽ സ്ലോട്ടുകളുടെ വിവരങ്ങൾ നൽകുന്നില്ലെങ്കിൽ, a
1 ന്റെ സ്ഥിരസ്ഥിതി അനുമാനിക്കപ്പെടുന്നു. റിസോഴ്സ് മാനേജർമാരുടെ കീഴിൽ പ്രവർത്തിക്കുമ്പോൾ (ഉദാ, SLURM, ടോർക്ക്,
മുതലായവ), ഓപ്പൺ എംപിഐ ഹോസ്റ്റ്നാമങ്ങളും സ്ലോട്ടുകളുടെ എണ്ണവും നേരിട്ട് ലഭിക്കും
റിസോഴ്സ് മാനേജർ.

mpirun -hostfile myhostfile ./a.out
മൂന്ന് നോഡുകളിൽ ഓരോന്നിലും രണ്ട് പ്രക്രിയകൾ സമാരംഭിക്കും.

mpirun -hostfile myhostfile -host aa ./a.out
നോഡ് aa-ൽ രണ്ട് പ്രക്രിയകൾ സമാരംഭിക്കും.

mpirun -hostfile myhostfile -host dd ./a.out
ഒരു പിശക് ഉപയോഗിച്ച് പ്രവർത്തിപ്പിക്കാനും നിർത്തലാക്കാനും ഹോസ്റ്റുകളൊന്നും കണ്ടെത്തില്ല. അതായത്, നിർദ്ദിഷ്ട ഹോസ്റ്റ് dd
നിർദ്ദിഷ്ട ഹോസ്റ്റ് ഫയലിൽ ഇല്ല.

വ്യക്തമാക്കുന്നത് അക്കം of പ്രോസസുകൾ
നമ്മൾ ഇപ്പോൾ കണ്ടതുപോലെ, ഹോസ്റ്റ് ഫയൽ ഉപയോഗിച്ച് പ്രവർത്തിപ്പിക്കേണ്ട പ്രക്രിയകളുടെ എണ്ണം സജ്ജീകരിക്കാം. മറ്റുള്ളവ
മെക്കാനിസങ്ങൾ നിലവിലുണ്ട്.

സമാരംഭിച്ച പ്രക്രിയകളുടെ എണ്ണം നോഡുകളുടെ എണ്ണത്തിന്റെ ഗുണിതമായി സൂചിപ്പിക്കാം അല്ലെങ്കിൽ
പ്രോസസർ സോക്കറ്റുകൾ ലഭ്യമാണ്. ഉദാഹരണത്തിന്,

mpirun -H aa,bb -npersocket 2 ./a.out
നോഡ് aa-യിൽ 0-3 പ്രോസസ്സുകൾ സമാരംഭിക്കുകയും നോഡ് bb-ൽ 4-7 പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യുന്നു, ഇവിടെ aa, bb എന്നിവ രണ്ടും
ഇരട്ട-സോക്കറ്റ് നോഡുകൾ. ദി -npersocket എന്ന ഓപ്ഷനും ഓണാക്കുന്നു -ബൈൻഡ്-ടു-സോക്കറ്റ് ഓപ്ഷൻ,
പിന്നീടുള്ള വിഭാഗത്തിൽ ചർച്ച ചെയ്യുന്നത്.

mpirun -H aa,bb -npernode 2 ./a.out
നോഡ് aa-ൽ 0-1 പ്രോസസുകൾ സമാരംഭിക്കുകയും നോഡ് bb-ൽ 2-3 പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യുന്നു.

mpirun -H aa,bb -npernode 1 ./a.out
ഓരോ ഹോസ്റ്റ് നോഡിനും ഒരു പ്രോസസ്സ് സമാരംഭിക്കുന്നു.

mpirun -H aa,bb -pernode ./a.out
എന്നതിന് തുല്യമാണ് -npernode 1.

ഇതുപയോഗിച്ചുള്ള പ്രക്രിയകളുടെ എണ്ണം വ്യക്തമാക്കുക എന്നതാണ് മറ്റൊരു ബദൽ -np ഓപ്ഷൻ. പരിഗണിക്കുക
ഇപ്പോൾ ഹോസ്റ്റ് ഫയൽ

% പൂച്ച myhostfile
aa സ്ലോട്ടുകൾ=4
bb സ്ലോട്ടുകൾ=4
cc സ്ലോട്ടുകൾ=4

ഇപ്പോൾ,

mpirun -hostfile myhostfile -np 6 ./a.out
നോഡ് aa-യിൽ 0-3 പ്രോസസ്സുകളും നോഡ് bb-യിൽ 4-5 പ്രോസസ്സുകളും സമാരംഭിക്കും. ശേഷിക്കുന്നത്
മുതൽ ഹോസ്റ്റ് ഫയലിലെ സ്ലോട്ടുകൾ ഉപയോഗിക്കില്ല -np ഓപ്ഷൻ സൂചിപ്പിച്ചത് 6 മാത്രമാണ്
പ്രക്രിയകൾ ആരംഭിക്കണം.

മാപ്പിംഗ് പ്രോസസുകൾ ലേക്ക് നോഡുകൾ: ഉപയോഗിക്കുന്നു നയങ്ങൾ
മുകളിലെ ഉദാഹരണങ്ങൾ നോഡുകളിലേക്കുള്ള പ്രോസസ്സ് പ്രക്രിയകളുടെ സ്ഥിരസ്ഥിതി മാപ്പിംഗ് വ്യക്തമാക്കുന്നു. ഈ
മാപ്പിംഗ് വിവിധ രീതികൾ ഉപയോഗിച്ച് നിയന്ത്രിക്കാനും കഴിയും എംപിരുൺ മാപ്പിംഗ് നയങ്ങൾ വിവരിക്കുന്ന ഓപ്ഷനുകൾ.

മുകളിൽ പറഞ്ഞ അതേ ഹോസ്റ്റ്ഫയൽ വീണ്ടും പരിഗണിക്കുക -np 6:

നോഡ് aa നോഡ് bb നോഡ് cc

എംപിരുൺ 0 1 2 3 4 5

mpirun --map-by node 0 3 1 4 2 5

mpirun -nolocal 0 1 2 3 4 5

ദി --മാപ്പ്-ബൈ നോഡ് ഓപ്ഷൻ ലഭ്യമായ നോഡുകളിലുടനീളം പ്രക്രിയകൾ ബാലൻസ് ചെയ്യും,
ഓരോ പ്രക്രിയയും ഒരു റൗണ്ട് റോബിൻ രീതിയിൽ അക്കമിടുന്നു.

ദി - നോലോക്കൽ ഏതെങ്കിലും പ്രക്രിയകൾ ലോക്കൽ ഹോസ്റ്റിലേക്ക് മാപ്പ് ചെയ്യുന്നതിൽ നിന്ന് ഓപ്ഷൻ തടയുന്നു (ഇതിൽ
കേസ് നോഡ് aa). അതേസമയം എംപിരുൺ സാധാരണയായി കുറച്ച് സിസ്റ്റം ഉറവിടങ്ങൾ ഉപയോഗിക്കുന്നു, - നോലോക്കൽ കഴിയും
വളരെ വലിയ ജോലികൾ ആരംഭിക്കുന്നതിന് സഹായകമാണ് എംപിരുൺ യഥാർത്ഥത്തിൽ ശ്രദ്ധേയമായത് ഉപയോഗിക്കേണ്ടി വന്നേക്കാം
മെമ്മറിയുടെ അളവ് കൂടാതെ/അല്ലെങ്കിൽ പ്രോസസ്സിംഗ് സമയം.

പോലെ തന്നെ -np സ്ലോട്ടുകളേക്കാൾ കുറച്ച് പ്രക്രിയകൾ വ്യക്തമാക്കാൻ കഴിയും, ഇതിന് ഓവർസബ്സ്ക്രൈബ് ചെയ്യാനും കഴിയും
സ്ലോട്ടുകൾ. ഉദാഹരണത്തിന്, അതേ ഹോസ്റ്റ്ഫയലിനൊപ്പം:

mpirun -hostfile myhostfile -np 14 ./a.out
നോഡ് aa-യിൽ 0-3, bb-യിൽ 4-7, cc-യിൽ 8-11 എന്നീ പ്രക്രിയകൾ സമാരംഭിക്കും. അത് പിന്നീട് ചേർക്കും
അത് തിരഞ്ഞെടുക്കുന്ന നോഡുകളിലേക്കുള്ള ശേഷിക്കുന്ന രണ്ട് പ്രക്രിയകൾ.

ഒരാൾക്ക് ഓവർസബ്‌സ്‌ക്രിപ്‌ഷന്റെ പരിധികൾ വ്യക്തമാക്കാനും കഴിയും. ഉദാഹരണത്തിന്, അതേ ഹോസ്റ്റ്ഫയലിനൊപ്പം:

mpirun -hostfile myhostfile -np 14 -nooversubscribe ./a.out
മുതൽ ഒരു പിശക് സൃഷ്ടിക്കും -ഓവർസബ്‌സ്‌ക്രൈബ് ഓവർസബ്സ്ക്രിപ്ഷൻ തടയുന്നു.

അധിക സബ്‌സ്‌ക്രിപ്‌ഷന്റെ പരിധികൾ ഹോസ്റ്റ് ഫയലിൽ തന്നെ വ്യക്തമാക്കാം:
% cat myhostfile
aa സ്ലോട്ടുകൾ=4 max_slots=4
bb max_slots=4
cc സ്ലോട്ടുകൾ=4

ദി max_slots ഫീൽഡ് അത്തരമൊരു പരിധി വ്യക്തമാക്കുന്നു. അത് ചെയ്യുമ്പോൾ, ദി സ്ലോട്ടുകൾ മൂല്യം സ്ഥിരസ്ഥിതിയായി
പരിധി. ഇപ്പോൾ:

mpirun -hostfile myhostfile -np 14 ./a.out
ആദ്യത്തെ 12 പ്രക്രിയകൾ മുമ്പത്തെപ്പോലെ സമാരംഭിക്കുന്നതിന് കാരണമാകുന്നു, എന്നാൽ ശേഷിക്കുന്ന രണ്ടെണ്ണം
പ്രക്രിയകൾ നോഡ് സിസിയിലേക്ക് നിർബന്ധിതമാക്കപ്പെടും. മറ്റ് രണ്ട് നോഡുകൾ സംരക്ഷിച്ചിരിക്കുന്നു
ഈ ജോലിയുടെ അധിക സബ്‌സ്‌ക്രിപ്‌ഷനെതിരെ hostfile.

ഉപയോഗിച്ച് --nooversubscribe ഓപ്പൺ എംപിഐ നിലവിൽ ലഭിക്കാത്തതിനാൽ ഓപ്ഷൻ സഹായകമാകും
റിസോഴ്സ് മാനേജറിൽ നിന്നുള്ള "max_slots" മൂല്യങ്ങൾ.

തീർച്ചയായും, -np കൂടെയും ഉപയോഗിക്കാം -H or - ഹോസ്റ്റ് ഓപ്ഷൻ. ഉദാഹരണത്തിന്,

mpirun -H aa,bb -np 8 ./a.out
8 പ്രക്രിയകൾ സമാരംഭിക്കുന്നു. രണ്ട് ഹോസ്റ്റുകൾ മാത്രമേ വ്യക്തമാക്കിയിട്ടുള്ളൂ എന്നതിനാൽ, ആദ്യ രണ്ടിന് ശേഷം
പ്രക്രിയകൾ മാപ്പ് ചെയ്‌തിരിക്കുന്നു, ഒന്ന് മുതൽ aa വരെയും ഒന്ന് മുതൽ bb വരെയും, ശേഷിക്കുന്ന പ്രക്രിയകൾ ഓവർ‌സബ്‌സ്‌ക്രൈബുചെയ്യുന്നു
നിർദ്ദിഷ്ട ഹോസ്റ്റുകൾ.

ഒരു MIMD ഉദാഹരണം ഇതാ:

mpirun -H aa -np 1 ഹോസ്റ്റ്നാമം : -H bb,cc -np 2 പ്രവർത്തനസമയം
0 പ്രവർത്തിക്കുന്ന പ്രക്രിയ സമാരംഭിക്കും ഹോസ്റ്റ്നാമം നോഡ് aa-ലും 1-ഉം 2-ഉം ഓരോന്നും പ്രവർത്തിക്കുന്നു
അപ് ടൈം യഥാക്രമം bb, cc എന്നീ നോഡുകളിൽ.

മാപ്പിംഗ്, റാങ്കിങ്, ഒപ്പം ബൈൻഡിംഗ്: Oh Ente!
ഓപ്പൺ എംപിഐ പ്രോസസ് ലൊക്കേഷനുകളും റാങ്കുകളും നൽകുന്നതിന് മൂന്ന്-ഘട്ട നടപടിക്രമം ഉപയോഗിക്കുന്നു:

മാപ്പിംഗ് ഓരോ പ്രക്രിയയ്ക്കും ഒരു ഡിഫോൾട്ട് ലൊക്കേഷൻ നൽകുന്നു

റാങ്കിങ് ഓരോ പ്രോസസ്സിനും MPI_COMM_WORLD റാങ്ക് മൂല്യം നൽകുന്നു

ബന്ധിക്കുക നിർദ്ദിഷ്ട പ്രോസസ്സറുകളിൽ പ്രവർത്തിക്കാൻ ഓരോ പ്രക്രിയയും നിയന്ത്രിക്കുന്നു

ദി മാപ്പിംഗ് മാപ്പറിനെ അടിസ്ഥാനമാക്കി ഓരോ പ്രക്രിയയ്ക്കും സ്ഥിരസ്ഥിതി സ്ഥാനം നൽകുന്നതിന് സ്റ്റെപ്പ് ഉപയോഗിക്കുന്നു
ജോലി ചെയ്യുന്നു. സ്ലോട്ട്, നോഡ്, തുടർച്ചയായി മാപ്പിംഗ് എന്നിവ അസൈൻമെന്റിൽ കലാശിക്കുന്നു
നോഡ് ലെവലിലേക്കുള്ള പ്രക്രിയകൾ. നേരെമറിച്ച്, ഒബ്ജക്റ്റ് പ്രകാരമുള്ള മാപ്പിംഗ്, മാപ്പറെ അസൈൻ ചെയ്യാൻ അനുവദിക്കുന്നു
ഓരോ നോഡിലും ഒരു യഥാർത്ഥ വസ്തുവിലേക്കുള്ള പ്രക്രിയ.

കുറിപ്പ്: പ്രക്രിയയ്ക്ക് നിയുക്തമാക്കിയ സ്ഥലം അത് എവിടെയാണ് ബന്ധിതമാകുന്നത് എന്നതിൽ നിന്ന് സ്വതന്ത്രമാണ്
ബൈൻഡിംഗ് അൽഗോരിതത്തിലേക്കുള്ള ഇൻപുട്ടായി മാത്രമാണ് അസൈൻമെന്റ് ഉപയോഗിക്കുന്നത്.

നോഡുകളിലേക്കുള്ള പ്രോസസ്സ് പ്രക്രിയകളുടെ മാപ്പിംഗ് പൊതുവായ നയങ്ങൾ കൊണ്ട് മാത്രമല്ല നിർവചിക്കാവുന്നതാണ്
കൂടാതെ, ആവശ്യമെങ്കിൽ, ലളിതമായി വിവരിക്കാൻ കഴിയാത്ത ഏകപക്ഷീയമായ മാപ്പിംഗുകൾ ഉപയോഗിക്കുന്നു
നയം. ഒരാൾക്ക് "സീക്വൻഷ്യൽ മാപ്പർ" ഉപയോഗിക്കാം, അത് ഹോസ്റ്റ്ഫയലിനെ വരി വരിയായി വായിക്കുന്നു,
ഹോസ്റ്റ്ഫയൽ വ്യക്തമാക്കുന്ന ഏത് ക്രമത്തിലും നോഡുകളിലേക്ക് പ്രോസസ്സുകൾ അസൈൻ ചെയ്യുന്നു. ഉപയോഗിക്കുക -എംസിഎ rmaps
സെക് ഓപ്ഷൻ. ഉദാഹരണത്തിന്, മുമ്പത്തെ അതേ ഹോസ്റ്റ്ഫയൽ ഉപയോഗിക്കുന്നു:

mpirun -hostfile myhostfile -mca rmaps seq ./a.out

യഥാക്രമം aa, bb, cc എന്നീ നോഡുകളിൽ ഒന്ന് മൂന്ന് പ്രക്രിയകൾ സമാരംഭിക്കും. സ്ലോട്ട്
എണ്ണത്തിൽ കാര്യമില്ല; ലിസ്‌റ്റ് ചെയ്‌തിരിക്കുന്ന ഏത് നോഡിലും ഓരോ വരിയിലും ഒരു പ്രോസസ്സ് സമാരംഭിക്കുന്നു
ലൈൻ.

അനിയന്ത്രിതമായ മാപ്പിംഗുകൾ വ്യക്തമാക്കുന്നതിനുള്ള മറ്റൊരു മാർഗ്ഗം ഒരു റാങ്ക് ഫയലാണ്, അത് നിങ്ങൾക്ക് വിശദമായി നൽകുന്നു
പ്രക്രിയ ബൈൻഡിംഗിലും നിയന്ത്രണം. റാങ്ക് ഫയലുകൾ ചുവടെ ചർച്ചചെയ്യുന്നു.

രണ്ടാം ഘട്ടത്തിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു റാങ്കിങ് ജോലിയുടെ MPI_COMM_WORLD-നുള്ളിലെ പ്രക്രിയയുടെ.
കൂടുതൽ ഫ്ലെക്സിബിലിറ്റി അനുവദിക്കുന്നതിന് ഓപ്പൺ എംപിഐ ഇതിനെ മാപ്പിംഗ് നടപടിക്രമത്തിൽ നിന്ന് വേർതിരിക്കുന്നു
MPI പ്രക്രിയകളുടെ ആപേക്ഷിക പ്ലേസ്മെന്റ്. താഴെപ്പറയുന്ന കാര്യങ്ങൾ പരിഗണിച്ചുകൊണ്ട് ഇത് നന്നായി വ്യക്തമാക്കുന്നു
ഞങ്ങൾ ഉപയോഗിച്ച രണ്ട് സന്ദർഭങ്ങളിൽ —map-by ppr:2:socket ഓപ്ഷൻ:

നോഡ് aa നോഡ് bb

റാങ്ക്-ബൈ കോർ 0 1 ! 2 3 4 5 ! 6 7

റാങ്ക്-ബൈ സോക്കറ്റ് 0 2 ! 1 3 4 6 ! 5 7

റാങ്ക്-ബൈ സോക്കറ്റ്:സ്പാൻ 0 4 ! 1 5 2 6 ! 3 7

കോർ, സ്ലോട്ട് എന്നിവ പ്രകാരം റാങ്കിംഗ് ഒരേ ഫലം നൽകുന്നു - ഒരു ലളിതമായ പുരോഗതി
ഓരോ നോഡിലുടനീളം MPI_COMM_WORLD റാങ്കുകൾ. സോക്കറ്റ് പ്രകാരമുള്ള റാങ്കിംഗ് ഉള്ളിൽ ഒരു റൗണ്ട് റോബിൻ റാങ്കിംഗ് ഉണ്ടാക്കുന്നു
എല്ലാ പ്രക്രിയകൾക്കും ഒരു MCW റാങ്ക് നൽകുന്നതുവരെ ഓരോ നോഡും, തുടർന്ന് ഇതിലേക്ക് പുരോഗമിക്കുന്നു
അടുത്ത നോഡ്. ചേർക്കുന്നു സ്പാൻ റാങ്കിംഗ് നിർദ്ദേശത്തിലേക്കുള്ള മോഡിഫയർ റാങ്കിംഗ് അൽഗോരിതത്തിന് കാരണമാകുന്നു
മുഴുവൻ അലോക്കേഷനും ഒരൊറ്റ എന്റിറ്റിയായി കണക്കാക്കാൻ - അങ്ങനെ, MCW റാങ്കുകൾ നിയുക്തമാക്കിയിരിക്കുന്നു
തുടക്കത്തിലേക്ക് തിരികെ വലംവെക്കുന്നതിന് മുമ്പ് എല്ലാ സോക്കറ്റുകളിലും.

ദി ബന്ധിക്കുക ഘട്ടം യഥാർത്ഥത്തിൽ ഓരോ പ്രക്രിയയും ഒരു നിശ്ചിത പ്രൊസസറുകളുമായി ബന്ധിപ്പിക്കുന്നു. ഇതിന് കഴിയും
ഓപ്പറേറ്റിംഗ് സിസ്റ്റം പ്രോസസുകൾ ഉപയുക്തമായി സ്ഥാപിക്കുകയാണെങ്കിൽ പ്രകടനം മെച്ചപ്പെടുത്തുക. വേണ്ടി
ഉദാഹരണത്തിന്, ഇത് മറ്റ് സോക്കറ്റുകൾ ഉപേക്ഷിച്ച് ചില മൾട്ടി-കോർ പ്രൊസസർ സോക്കറ്റുകൾ ഓവർസബ്സ്ക്രൈബ് ചെയ്തേക്കാം
നിഷ്ക്രിയം; ഇത് സാധാരണ വിഭവങ്ങൾക്കായി അനാവശ്യമായി തർക്കിക്കാൻ പ്രക്രിയകളെ നയിച്ചേക്കാം. അല്ലെങ്കിൽ, അത്
പ്രക്രിയകൾ വളരെ വ്യാപകമായി വ്യാപിച്ചേക്കാം; ആപ്ലിക്കേഷൻ പ്രകടനമാണെങ്കിൽ ഇത് ഉപയുക്തമായിരിക്കും
ഇന്റർപ്രോസസ് കമ്മ്യൂണിക്കേഷൻ ചെലവുകൾക്ക് സെൻസിറ്റീവ് ആണ്. ബൈൻഡിംഗിനും പ്രവർത്തനം നിലനിർത്താനാകും
ആ പ്രക്രിയകൾ എത്രമാത്രം ഒപ്റ്റിമൽ ആയാലും, അമിതമായി മൈഗ്രേറ്റിംഗ് പ്രക്രിയകളിൽ നിന്നുള്ള സിസ്റ്റം
ആരംഭിക്കുന്നതിനായി സ്ഥാപിച്ചു.

ബൈൻഡിംഗിനായി ഉപയോഗിക്കേണ്ട പ്രോസസ്സറുകൾ ടോപ്പോളജിക്കൽ ഗ്രൂപ്പിംഗുകളുടെ അടിസ്ഥാനത്തിൽ തിരിച്ചറിയാൻ കഴിയും
- ഉദാ, ഒരു l3cache-ലേക്ക് ബൈൻഡുചെയ്യുന്നത് ഓരോ പ്രക്രിയയെയും പരിധിയിലുള്ള എല്ലാ പ്രോസസ്സറുകളിലേക്കും ബന്ധിപ്പിക്കും
അവരുടെ നിയുക്ത സ്ഥലത്തിനുള്ളിൽ ഒരൊറ്റ L3 കാഷെ. അങ്ങനെ, ഒരു പ്രക്രിയ നിയുക്തമാക്കിയാൽ
ഒരു നിശ്ചിത സോക്കറ്റിലേക്ക് മാപ്പർ, പിന്നെ a -ബന്ധിക്കുക l3 കാഷെ നിർദ്ദേശം പ്രക്രിയയ്ക്ക് കാരണമാകും
ആ സോക്കറ്റിനുള്ളിൽ ഒരൊറ്റ L3 കാഷെ പങ്കിടുന്ന പ്രോസസ്സറുകളുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു.

ലോഡുകളെ സന്തുലിതമാക്കാൻ സഹായിക്കുന്നതിന്, ബന്ധിപ്പിക്കുമ്പോൾ ബൈൻഡിംഗ് ഡയറക്‌ടീവ് ഒരു റൗണ്ട്-റോബിൻ രീതി ഉപയോഗിക്കുന്നു
മാപ്പറിൽ ഉപയോഗിച്ചതിനേക്കാൾ താഴ്ന്ന നിലകൾ. ഉദാഹരണത്തിന്, ഒരു ജോലി മാപ്പ് ചെയ്ത കേസ് പരിഗണിക്കുക
സോക്കറ്റ് തലത്തിലേക്ക്, തുടർന്ന് കാമ്പിലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു. ഓരോ സോക്കറ്റിനും ഒന്നിലധികം കോറുകൾ ഉണ്ടായിരിക്കും, അങ്ങനെയെങ്കിൽ
തന്നിരിക്കുന്ന സോക്കറ്റിലേക്ക് ഒന്നിലധികം പ്രക്രിയകൾ മാപ്പ് ചെയ്‌തിരിക്കുന്നു, ബൈൻഡിംഗ് അൽഗോരിതം ഓരോന്നും അസൈൻ ചെയ്യും
റൗണ്ട് റോബിൻ രീതിയിൽ ഒരു സോക്കറ്റിലേക്ക് ഒരു അദ്വിതീയ കാമ്പിലേക്ക് സ്ഥിതി ചെയ്യുന്ന പ്രക്രിയ.

പകരമായി, l2cache മാപ്പ് ചെയ്‌ത് സോക്കറ്റിലേക്ക് ബന്ധിപ്പിക്കുന്ന പ്രക്രിയകൾ ലളിതമായി ബൈൻഡ് ചെയ്യപ്പെടും.
അവ സ്ഥിതിചെയ്യുന്ന സോക്കറ്റിലെ എല്ലാ പ്രോസസറുകളിലേക്കും. ഈ രീതിയിൽ, ഉപയോക്താക്കൾക്ക് കഴിയും
ആപേക്ഷിക MCW റാങ്ക് ലൊക്കേഷനിലും ബൈൻഡിംഗിലും വിശദമായ നിയന്ത്രണം ചെലുത്തുക.

ഒടുവിൽ --റിപ്പോർട്ട്-ബൈൻഡിംഗുകൾ ബൈൻഡിംഗുകൾ റിപ്പോർട്ട് ചെയ്യാൻ ഉപയോഗിക്കാം.

ഉദാഹരണമായി, രണ്ട് പ്രോസസർ സോക്കറ്റുകളുള്ള ഒരു നോഡ് പരിഗണിക്കുക, ഓരോന്നിനും നാല് കോറുകൾ ഉൾപ്പെടുന്നു. ഞങ്ങൾ
ഓടുക എംപിരുൺ കൂടെ -np 4 --റിപ്പോർട്ട്-ബൈൻഡിംഗുകൾ കൂടാതെ ഇനിപ്പറയുന്ന അധിക ഓപ്ഷനുകളും:

% mpirun ... --map-by core --bind-to core
[...] ... കുട്ടി [...,0] cpus 0001 ലേക്ക് ബന്ധിപ്പിക്കുന്നു
[...] ... കുട്ടി [...,1] cpus 0002 ലേക്ക് ബന്ധിപ്പിക്കുന്നു
[...] ... കുട്ടി [...,2] cpus 0004 ലേക്ക് ബന്ധിപ്പിക്കുന്നു
[...] ... കുട്ടി [...,3] cpus 0008 ലേക്ക് ബന്ധിപ്പിക്കുന്നു

% എംപിരുൺ ... --മാപ്പ്-ബൈ സോക്കറ്റ് --ബൈൻഡ്-ടു സോക്കറ്റ്
[...] ... കുട്ടി [...,0] 0 cpus 000f സോക്കറ്റിലേക്ക് ബന്ധിപ്പിക്കുന്നു
[...] ... ബൈൻഡിംഗ് ചൈൽഡ് [...,1] സോക്കറ്റ് 1 cpus 00f0
[...] ... കുട്ടി [...,2] 0 cpus 000f സോക്കറ്റിലേക്ക് ബന്ധിപ്പിക്കുന്നു
[...] ... ബൈൻഡിംഗ് ചൈൽഡ് [...,3] സോക്കറ്റ് 1 cpus 00f0

% mpirun ... --map-by core:PE=2 --bind-to core
[...] ... കുട്ടി [...,0] cpus 0003 ലേക്ക് ബന്ധിപ്പിക്കുന്നു
[...] ... കുട്ടി [...,1] cpus 000c ലേക്ക് ബന്ധിപ്പിക്കുന്നു
[...] ... കുട്ടി [...,2] cpus 0030 ലേക്ക് ബന്ധിപ്പിക്കുന്നു
[...] ... കുട്ടി [...,3] cpus 00c0 ലേക്ക് ബന്ധിപ്പിക്കുന്നു

% mpirun ... --ബൈൻഡ്-ഒന്നുമില്ല

ഇവിടെ, --റിപ്പോർട്ട്-ബൈൻഡിംഗുകൾ ഓരോ പ്രക്രിയയുടെയും ബൈൻഡിംഗ് ഒരു മാസ്ക് ആയി കാണിക്കുന്നു. ആദ്യ കേസിൽ,
0001, 0002, 0004, കൂടാതെ മാസ്‌ക്കുകൾ സൂചിപ്പിക്കുന്നത് പോലെ തുടർച്ചയായ കോറുകളുമായി പ്രക്രിയകൾ ബന്ധിപ്പിക്കുന്നു
0008. രണ്ടാമത്തെ സാഹചര്യത്തിൽ, സൂചിപ്പിച്ചിരിക്കുന്നതുപോലെ തുടർച്ചയായ സോക്കറ്റുകളിലെ എല്ലാ കോറുകളിലേക്കും പ്രോസസ്സുകൾ ബന്ധിപ്പിക്കുന്നു.
000f, 00f0 എന്നീ മാസ്കുകൾ വഴി. പ്രോസസർ സോക്കറ്റുകളിലൂടെ ഒരു റൗണ്ടിൽ പ്രക്രിയകൾ ചക്രം-
ആവശ്യമുള്ളത്ര തവണ റോബിൻ ഫാഷൻ. മൂന്നാമത്തെ കേസിൽ, മുഖംമൂടികൾ നമ്മെ കാണിക്കുന്നത് 2
ഓരോ പ്രക്രിയയ്ക്കും കോറുകൾ ബന്ധിപ്പിച്ചിരിക്കുന്നു. നാലാമത്തെ കേസിൽ, ബൈൻഡിംഗ് ഓഫാക്കി, ഇല്ല
ബന്ധനങ്ങൾ റിപ്പോർട്ട് ചെയ്യപ്പെടുന്നു.

പ്രോസസ്സ് ബൈൻഡിംഗിനുള്ള ഓപ്പൺ എംപിഐയുടെ പിന്തുണ അടിസ്ഥാന ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തെ ആശ്രയിച്ചിരിക്കുന്നു.
അതിനാൽ, എല്ലാ സിസ്റ്റത്തിലും ചില പ്രോസസ് ബൈൻഡിംഗ് ഓപ്ഷനുകൾ ലഭ്യമായേക്കില്ല.

MCA പാരാമീറ്ററുകൾ ഉപയോഗിച്ചും പ്രോസസ്സ് ബൈൻഡിംഗ് സജ്ജമാക്കാൻ കഴിയും. അവരുടെ ഉപയോഗം കുറവ് സൗകര്യപ്രദമാണ്
എംപിരുൺ ഓപ്ഷനുകൾ. മറുവശത്ത്, MCA പാരാമീറ്ററുകൾ മാത്രമല്ല സജ്ജമാക്കാൻ കഴിയൂ
എംപിരുൺ കമാൻഡ് ലൈൻ, എന്നാൽ ഒരു സിസ്റ്റത്തിലോ ഉപയോക്താവിലോ mca-params.conf ഫയലിലോ അല്ലെങ്കിൽ ഇങ്ങനെയോ
എൻവയോൺമെന്റ് വേരിയബിളുകൾ, ചുവടെയുള്ള MCA വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നത് പോലെ. ചില ഉദാഹരണങ്ങളിൽ ഉൾപ്പെടുന്നു:

mpirun ഓപ്ഷൻ MCA പാരാമീറ്റർ കീ മൂല്യം

--map-by core rmaps_base_mapping_policy core
--map-by socket rmaps_base_mapping_policy socket
--rank-by core rmaps_base_ranking_policy core
--ബൈൻഡ്-ടു കോർ hwloc_base_binding_policy core
--ബൈൻഡ്-ടു സോക്കറ്റ് hwloc_base_binding_policy socket
--bind-to none hwloc_base_binding_policy ഒന്നുമില്ല

റാങ്ക് ഫയലുകൾ
വ്യക്തിഗത പ്രോസസ്സുകൾ എങ്ങനെ എന്നതിനെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ വ്യക്തമാക്കുന്ന ടെക്സ്റ്റ് ഫയലുകളാണ് റാങ്ക് ഫയലുകൾ
നോഡുകളിലേക്ക് മാപ്പ് ചെയ്യണം, ഏത് പ്രോസസറിലേക്കാണ് അവ ബന്ധിപ്പിക്കേണ്ടത്. എ യുടെ ഓരോ വരിയും
റാങ്ക് ഫയൽ ഒരു പ്രക്രിയയുടെ സ്ഥാനം വ്യക്തമാക്കുന്നു (എംപിഐ ജോലികൾക്കായി, പ്രക്രിയയുടെ "റാങ്ക്" സൂചിപ്പിക്കുന്നു
MPI_COMM_WORLD-ൽ അതിന്റെ റാങ്കിലേക്ക്). റാങ്ക് ഫയലിലെ ഓരോ വരിയുടെയും പൊതുവായ രൂപം ഇതാണ്:

റാങ്ക് = സ്ലോട്ട്=

ഉദാഹരണത്തിന്:

$ പൂച്ച myrankfile
റാങ്ക് 0=aa സ്ലോട്ട്=1:0-2
റാങ്ക് 1=ബിബി സ്ലോട്ട്=0:0,1
റാങ്ക് 2=cc സ്ലോട്ട്=1-2
$ mpirun -H aa,bb,cc,dd -rf myrankfile ./a.out

എന്നാണ് അർത്ഥമാക്കുന്നത്

ലോജിക്കൽ സോക്കറ്റ് 0, കോറുകൾ 1-0 എന്നിവയുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന നോഡ് aa-ൽ റാങ്ക് 2 റൺസ്.
ലോജിക്കൽ സോക്കറ്റ് 1, കോറുകൾ 0, 0 എന്നിവയുമായി ബന്ധിപ്പിച്ച നോഡ് bb-ൽ റാങ്ക് 1 റൺസ്.
ലോജിക്കൽ കോറുകൾ 2, 1 എന്നിവയുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന നോഡ് cc-ൽ റാങ്ക് 2 റൺസ്.

വ്യക്തമാക്കാൻ റാങ്ക് ഫയലുകൾ പകരമായി ഉപയോഗിക്കാം ഭൗതികമായ പ്രോസസ്സർ സ്ഥാനങ്ങൾ. ഈ സാഹചര്യത്തിൽ,
വാക്യഘടന കുറച്ച് വ്യത്യസ്തമാണ്. സോക്കറ്റുകൾ ഇനി തിരിച്ചറിയില്ല, സ്ലോട്ട് നമ്പർ
മിക്ക OS-കളും ഒരു അദ്വിതീയ ഫിസിക്കൽ അസൈൻ ചെയ്യാത്തതിനാൽ നൽകിയിരിക്കുന്നത് ഫിസിക്കൽ PU യുടെ നമ്പർ ആയിരിക്കണം
നോഡിലെ ഓരോ കോറിലേക്കും ഐഡന്റിഫയർ. അതിനാൽ, ഒരു ശരിയായ ഫിസിക്കൽ റാങ്ക്ഫയൽ ഇതുപോലെ കാണപ്പെടുന്നു
ഇനിപ്പറയുന്നവ:

$ പൂച്ച എന്റെ ഫിസിക്കൽ റാങ്ക് ഫയൽ
റാങ്ക് 0=aa സ്ലോട്ട്=1
റാങ്ക് 1=ബിബി സ്ലോട്ട്=8
റാങ്ക് 2=cc സ്ലോട്ട്=6

എന്ന് വച്ചാൽ അത്

ഫിസിക്കൽ PU 0 അടങ്ങുന്ന കോറുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന നോഡ് aa-ൽ റാങ്ക് 1 പ്രവർത്തിക്കും
ഫിസിക്കൽ PU 1 അടങ്ങുന്ന കോറുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന നോഡ് bb-ൽ റാങ്ക് 8 പ്രവർത്തിക്കും
ഫിസിക്കൽ PU 2 അടങ്ങുന്ന കോറുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന നോഡ് സിസിയിൽ റാങ്ക് 6 പ്രവർത്തിക്കും

റാങ്ക് ഫയലുകളെ ഇതായി കണക്കാക്കുന്നു ലോജിക്കൽ സ്ഥിരസ്ഥിതിയായി, കൂടാതെ MCA പരാമീറ്ററും
റാങ്ക് ഫയൽ ആയിരിക്കണമെന്ന് സൂചിപ്പിക്കാൻ rmaps_rank_file_physical 1 ആയി സജ്ജീകരിക്കണം
ആയി കണക്കാക്കുന്നു ഭൗതികമായ.

മുകളിൽ ലിസ്റ്റുചെയ്തിരിക്കുന്ന ഹോസ്റ്റ്നാമങ്ങൾ "സമ്പൂർണമാണ്", അതായത് യഥാർത്ഥത്തിൽ പരിഹരിക്കാവുന്ന ഹോസ്റ്റ്നാമങ്ങൾ
വ്യക്തമാക്കിയ. എന്നിരുന്നാലും, ഹോസ്റ്റ്നാമങ്ങൾ "ബന്ധു" എന്നും സൂചിപ്പിക്കാം, അതായത് അവയാണ്
ഹോസ്‌റ്റ്‌നെയിമുകളുടെ ബാഹ്യമായി-നിർദ്ദിഷ്‌ടമായ ലിസ്‌റ്റുമായി ബന്ധപ്പെട്ട് വ്യക്തമാക്കിയിരിക്കുന്നു (ഉദാ. എംപിറൂണിന്റെ
--ഹോസ്റ്റ് ആർഗ്യുമെന്റ്, ഒരു ഹോസ്റ്റ് ഫയൽ അല്ലെങ്കിൽ ഒരു ജോബ് ഷെഡ്യൂളർ).

"ആപേക്ഷിക" സ്പെസിഫിക്കേഷൻ "+n" എന്ന രൂപത്തിലാണ് ", ഇവിടെ X എന്നത് ഒരു പൂർണ്ണസംഖ്യയാണ്
ലഭ്യമായ എല്ലാ ഹോസ്റ്റ്നാമങ്ങളുടെയും ഗണത്തിലെ Xth ഹോസ്റ്റ്നാമം, 0-ൽ നിന്ന് സൂചികയിലാക്കി. ഉദാഹരണത്തിന്:

$ പൂച്ച myrankfile
rank 0=+n0 slot=1:0-2
റാങ്ക് 1=+n1 സ്ലോട്ട്=0:0,1
റാങ്ക് 2=+n2 സ്ലോട്ട്=1-2
$ mpirun -H aa,bb,cc,dd -rf myrankfile ./a.out

ഓപ്പൺ MPI v1.7 മുതൽ, എല്ലാ സോക്കറ്റ്/കോർ സ്ലോട്ട് ലൊക്കേഷനുകളും ഇപ്രകാരം വ്യക്തമാക്കിയിരിക്കുന്നു ലോജിക്കൽ
സൂചികകൾ (ഓപ്പൺ MPI v1.6 സീരീസ് ഉപയോഗിക്കുന്നു ഭൗതികമായ സൂചികകൾ). പോലുള്ള ഉപകരണങ്ങൾ നിങ്ങൾക്ക് ഉപയോഗിക്കാം
സോക്കറ്റിന്റെയും കോറുകളുടെയും ലോജിക്കൽ ഇൻഡക്സുകൾ കണ്ടെത്താൻ HWLOC-യുടെ "lstopo".

അപേക്ഷ സന്ദർഭം or എക്സിക്യൂട്ടബിൾ പ്രോഗ്രാം?
രണ്ട് വ്യത്യസ്ത രൂപങ്ങളെ വേർതിരിച്ചറിയാൻ, എംപിരുൺ എന്നതിനായുള്ള കമാൻഡ് ലൈനിൽ നോക്കുന്നു --ആപ്പ് ഓപ്ഷൻ.
ഇത് വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, കമാൻഡ് ലൈനിൽ പേരിട്ടിരിക്കുന്ന ഫയൽ ഒരു ആണെന്ന് അനുമാനിക്കപ്പെടുന്നു
ആപ്ലിക്കേഷൻ സന്ദർഭം. ഇത് വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ഫയൽ ഒരു എക്സിക്യൂട്ടബിൾ ആണെന്ന് അനുമാനിക്കപ്പെടുന്നു
പ്രോഗ്രാം.

കണ്ടെത്തുന്നു ഫയലുകൾ
ഒരു ഫയലിനായി ആപേക്ഷികമോ കേവലമോ ആയ പാതയൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ഓപ്പൺ MPI ആദ്യം അന്വേഷിക്കും
വ്യക്തമാക്കിയ ഡയറക്‌ടറികൾ തിരയുന്നതിലൂടെ ഫയലുകൾ --പാത ഓപ്ഷൻ. ഇല്ലെങ്കിൽ --പാത
ഓപ്ഷൻ സെറ്റ് അല്ലെങ്കിൽ ഫയൽ കണ്ടെത്തിയില്ലെങ്കിൽ --പാത ലൊക്കേഷൻ, തുടർന്ന് ഓപ്പൺ എംപിഐ തിരയും
സോഴ്സ് നോഡിൽ(കളിൽ) നിർവചിച്ചിരിക്കുന്നത് പോലെ ഉപയോക്താവിന്റെ പാത്ത് എൻവയോൺമെന്റ് വേരിയബിൾ.

ഒരു ആപേക്ഷിക ഡയറക്ടറി വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, അത് പ്രാരംഭ പ്രവർത്തന ഡയറക്ടറിയുമായി ബന്ധപ്പെട്ടതായിരിക്കണം
ഉപയോഗിച്ച നിർദ്ദിഷ്ട സ്റ്റാർട്ടർ നിർണ്ണയിക്കുന്നു. ഉദാഹരണത്തിന് rsh അല്ലെങ്കിൽ ssh സ്റ്റാർട്ടറുകൾ ഉപയോഗിക്കുമ്പോൾ,
പ്രാരംഭ ഡയറക്‌ടറി സ്ഥിരസ്ഥിതിയായി $HOME ആണ്. മറ്റ് സ്റ്റാർട്ടറുകൾ പ്രാരംഭ ഡയറക്ടറി സജ്ജമാക്കിയേക്കാം
അഭ്യർത്ഥനയിൽ നിന്നുള്ള നിലവിലെ പ്രവർത്തന ഡയറക്ടറി എംപിരുൺ.

നിലവിൽ ജോലി ഡയറക്ടറി
ദി -wdir mpirun ഓപ്ഷൻ (അതിന്റെ പര്യായപദവും, -ഡബ്ല്യു.ഡി) ഒരു ഏകപക്ഷീയമായി മാറാൻ ഉപയോക്താവിനെ അനുവദിക്കുന്നു
പ്രോഗ്രാം അഭ്യർത്ഥിക്കുന്നതിന് മുമ്പുള്ള ഡയറക്ടറി. ആപ്ലിക്കേഷൻ സന്ദർഭ ഫയലുകളിലും ഇത് ഉപയോഗിക്കാം
നിർദ്ദിഷ്ട നോഡുകളിലും കൂടാതെ/അല്ലെങ്കിൽ നിർദ്ദിഷ്ട ആപ്ലിക്കേഷനുകളിലും വർക്കിംഗ് ഡയറക്ടറികൾ വ്യക്തമാക്കുന്നതിന്.

എങ്കില് -wdir ഓപ്ഷൻ ഒരു സന്ദർഭ ഫയലിലും കമാൻഡ് ലൈനിലും ദൃശ്യമാകും, സന്ദർഭം
ഫയൽ ഡയറക്ടറി കമാൻഡ് ലൈൻ മൂല്യത്തെ മറികടക്കും.

എങ്കില് -wdir ഓപ്‌ഷൻ വ്യക്തമാക്കിയിരിക്കുന്നു, ഓപ്പൺ MPI വ്യക്തമാക്കിയതിലേക്ക് മാറ്റാൻ ശ്രമിക്കും
എല്ലാ റിമോട്ട് നോഡുകളിലെയും ഡയറക്ടറി. ഇത് പരാജയപ്പെട്ടാൽ, എംപിരുൺ അലസിപ്പിക്കും.

എങ്കില് -wdir ഓപ്ഷൻ ആണ് അല്ല വ്യക്തമാക്കിയിരിക്കുന്നു, ഓപ്പൺ MPI ഡയറക്ടറിയുടെ പേര് എവിടെ അയക്കും എംപിരുൺ
ഓരോ വിദൂര നോഡുകളിലേക്കും അഭ്യർത്ഥിച്ചു. റിമോട്ട് നോഡുകൾ അതിലേക്ക് മാറാൻ ശ്രമിക്കും
ഡയറക്ടറി. അവയ്ക്ക് കഴിയുന്നില്ലെങ്കിൽ (ഉദാ, ആ നോഡിൽ ഡയറക്ടറി നിലവിലില്ലെങ്കിൽ), പിന്നെ
ഓപ്പൺ MPI സ്റ്റാർട്ടർ നിർണ്ണയിക്കുന്ന ഡിഫോൾട്ട് ഡയറക്ടറി ഉപയോഗിക്കും.

എല്ലാ ഡയറക്‌ടറി മാറ്റങ്ങളും ഉപയോക്താവിന്റെ പ്രോഗ്രാം അഭ്യർത്ഥിക്കുന്നതിന് മുമ്പ് സംഭവിക്കുന്നു; അതുവരെ കാത്തിരിക്കുന്നില്ല
MPI_INIT വിളിച്ചു.

സ്റ്റാൻഡേർഡ് ഐ / ഒ
ഓപ്പൺ MPI UNIX സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിനെ /dev/null എന്നതിലേക്ക് ഒഴികെയുള്ള എല്ലാ പ്രക്രിയകളിലും നയിക്കുന്നു
MPI_COMM_WORLD റാങ്ക് 0 പ്രോസസ്സ്. MPI_COMM_WORLD റാങ്ക് 0 പ്രോസസ്സ് സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് അവകാശമാക്കുന്നു
നിന്ന് എംപിരുൺ. കുറിപ്പ്: ആവാഹിച്ച നോഡ് എംപിരുൺ എവിടെയുള്ള നോഡിന് സമാനമായിരിക്കണമെന്നില്ല
MPI_COMM_WORLD റാങ്ക് 0 പ്രക്രിയ നിലനിൽക്കുന്നു. ഓപ്പൺ MPI യുടെ റീഡയറക്ഷൻ കൈകാര്യം ചെയ്യുന്നു എംപിരുൺ's
റാങ്ക് 0 പ്രക്രിയയിലേക്കുള്ള സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്.

ഓപ്പൺ MPI UNIX സ്റ്റാൻഡേർഡ് ഔട്ട്‌പുട്ടും റിമോട്ട് നോഡുകളിൽ നിന്ന് അഭ്യർത്ഥിച്ച നോഡിലേക്ക് പിശകും നയിക്കുന്നു
എംപിരുൺ എന്ന സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്/പിശകിൽ അത് പ്രിന്റ് ചെയ്യുന്നു എംപിരുൺ. പ്രാദേശിക പ്രക്രിയകൾ പാരമ്പര്യമായി ലഭിക്കുന്നു
സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്/പിശക് എംപിരുൺ അതിലേക്ക് നേരിട്ട് കൈമാറുകയും ചെയ്യുക.

അതിനാൽ, ഓപ്പൺ എംപിഐ ആപ്ലിക്കേഷനുകൾക്കായി സ്റ്റാൻഡേർഡ് I/O റീഡയറക്‌ട് ചെയ്യാൻ കഴിയും
സാധാരണ ഷെൽ റീഡയറക്ഷൻ നടപടിക്രമം ഓണാണ് എംപിരുൺ.

% mpirun -np 2 my_app < ​​my_input > my_output

ഈ ഉദാഹരണത്തിൽ അത് ശ്രദ്ധിക്കുക മാത്രം MPI_COMM_WORLD റാങ്ക് 0 പ്രോസസ്സിന് സ്ട്രീം ലഭിക്കും
നിന്ന് എന്റെ_ഇൻപുട്ട് stdin-ൽ. മറ്റെല്ലാ നോഡുകളിലെയും stdin /dev/null-ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കും.
എന്നിരുന്നാലും, എല്ലാ നോഡുകളിൽ നിന്നുമുള്ള stdout ഇതിലേക്ക് ശേഖരിക്കും my_output ഫയൽ.

സിഗ്നൽ കൈമാറ്റം
Orterun ഒരു SIGTERM ഉം SIGINT ഉം ലഭിക്കുമ്പോൾ, അത് മുഴുവൻ ജോലിയെയും ഇല്ലാതാക്കാൻ ശ്രമിക്കും
ജോലിയിലെ എല്ലാ പ്രക്രിയകളും ഒരു SIGTERM അയയ്‌ക്കുന്നു, കുറച്ച് സെക്കൻഡുകൾ കാത്തിരിക്കുന്നു, തുടർന്ന്
ജോലിയിലെ എല്ലാ പ്രക്രിയകളും ഒരു SIGKILL അയയ്ക്കുന്നു.

Orterun സ്വീകരിച്ച SIGUSR1, SIGUSR2 സിഗ്നലുകൾ എല്ലാ പ്രക്രിയകളിലേക്കും പ്രചരിപ്പിക്കുന്നു.
ജോലി

mpirun നടപ്പിലാക്കിയ പ്രോഗ്രാമിലേക്ക് SIGSTOP, SIGCONT എന്നിവയുടെ ഫോർവേഡിംഗ് ഓൺ ചെയ്യാം
MCA പാരാമീറ്റർ orte_forward_job_control 1 ആയി സജ്ജീകരിക്കുന്നു. mpirun-ലേക്ക് ഒരു SIGTSTOP സിഗ്നൽ ചെയ്യും.
mpirun ആരംഭിച്ച എല്ലാ പ്രോഗ്രാമുകളിലേക്കും ഒരു SIGSTOP സിഗ്നൽ അയയ്‌ക്കാൻ ഇടയാക്കുക
അതുപോലെ എംപിറൂണിലേക്കുള്ള ഒരു SIGCONT സിഗ്നൽ ഒരു SIGCONT അയയ്ക്കുന്നതിന് കാരണമാകും.

മറ്റ് സിഗ്നലുകൾ നിലവിൽ orterun വഴി പ്രചരിപ്പിക്കപ്പെടുന്നില്ല.

പ്രോസസ്സ് നിരാകരണം / സിഗ്നൽ കൈകാര്യം
ഒരു MPI ആപ്ലിക്കേഷൻ പ്രവർത്തിപ്പിക്കുമ്പോൾ, ഏതെങ്കിലും പ്രക്രിയ അസാധാരണമായി മരിക്കുകയാണെങ്കിൽ (ഒന്നുകിൽ പുറത്തുകടക്കുന്നു
അഭ്യർത്ഥിക്കുന്നതിന് മുമ്പ് MPI_FINALIZE, അല്ലെങ്കിൽ ഒരു സിഗ്നലിന്റെ ഫലമായി മരിക്കുന്നു) എംപിരുൺ പ്രിന്റ് ഔട്ട് ചെയ്യും
ഒരു പിശക് സന്ദേശവും ബാക്കി MPI ആപ്ലിക്കേഷനും ഇല്ലാതാക്കുക.

ഉപയോക്തൃ സിഗ്നൽ ഹാൻഡ്‌ലർമാർ ഒരുപക്ഷേ MPI അവസ്ഥ വൃത്തിയാക്കാൻ ശ്രമിക്കുന്നത് ഒഴിവാക്കണം (ഓപ്പൺ MPI ആണ്
നിലവിൽ async-signal-safe അല്ല; കാണുക MPI_Init_thread(3) സംബന്ധിച്ച വിശദാംശങ്ങൾക്ക്
MPI_THREAD_MULTIPLE ഒപ്പം ത്രെഡ് സുരക്ഷയും). ഉദാഹരണത്തിന്, ഒരു സെഗ്മെന്റേഷൻ തകരാർ സംഭവിക്കുകയാണെങ്കിൽ
MPI_SEND (ഒരുപക്ഷേ ഒരു മോശം ബഫർ കടന്നുവന്നതുകൊണ്ടാകാം) കൂടാതെ ഒരു ഉപയോക്തൃ സിഗ്നൽ ഹാൻഡ്‌ലറും
ഈ ഉപയോക്തൃ ഹാൻഡ്‌ലർ അഭ്യർത്ഥിക്കാൻ ശ്രമിക്കുകയാണെങ്കിൽ MPI_FINALIZE, മോശം കാര്യങ്ങൾ സംഭവിക്കാം
കാരണം, പിശക് സംഭവിക്കുമ്പോൾ, ഓപ്പൺ എംപിഐ ഇതിനകം തന്നെ "ഇൻ" എംപിഐ ആയിരുന്നു. മുതലുള്ള എംപിരുൺ ശ്രദ്ധിക്കും
ഒരു സിഗ്നൽ മൂലമാണ് പ്രക്രിയ അവസാനിച്ചത്, ഒരുപക്ഷേ അത് ആവശ്യമില്ല (ഏറ്റവും സുരക്ഷിതം).
എം‌പി‌ഐ ഇതര സംസ്ഥാനം വൃത്തിയാക്കാൻ മാത്രം ഉപയോക്താവ്.

പ്രോസസ്സ് പരിസ്ഥിതി
എംപിഐ ആപ്ലിക്കേഷനിലെ പ്രക്രിയകൾ ഓപ്പൺ ആർടിഇ ഡെമണിൽ നിന്ന് അവയുടെ പരിസ്ഥിതി അവകാശമാക്കുന്നു
അവർ പ്രവർത്തിക്കുന്ന നോഡ്. പരിസ്ഥിതി സാധാരണയായി പാരമ്പര്യമായി ലഭിക്കുന്നതാണ്
ഉപയോക്താവിന്റെ ഷെൽ. റിമോട്ട് നോഡുകളിൽ, ബൂട്ട് എംസിഎ മൊഡ്യൂളാണ് കൃത്യമായ പരിസ്ഥിതി നിർണ്ണയിക്കുന്നത്
ഉപയോഗിച്ചു. ദി rsh ലോഞ്ച് മൊഡ്യൂൾ, ഉദാഹരണത്തിന്, ഒന്നുകിൽ ഉപയോഗിക്കുന്നു rsh/ssh ഓപ്പൺ RTE സമാരംഭിക്കാൻ
റിമോട്ട് നോഡുകളിലെ ഡെമൺ, സാധാരണയായി ഉപയോക്താവിന്റെ ഷെൽ-സെറ്റപ്പ് ഫയലുകളിൽ ഒന്നോ അതിലധികമോ എക്സിക്യൂട്ട് ചെയ്യുന്നു
ഓപ്പൺ RTE ഡെമൺ സമാരംഭിക്കുന്നതിന് മുമ്പ്. ചലനാത്മകമായി ലിങ്ക് ചെയ്‌ത അപ്ലിക്കേഷനുകൾ പ്രവർത്തിപ്പിക്കുമ്പോൾ
ആവശ്യമാണ് LD_LIBRARY_PATH പരിസ്ഥിതി വേരിയബിൾ സജ്ജീകരിക്കണം, ഉറപ്പാക്കാൻ ശ്രദ്ധിക്കണം
ഓപ്പൺ MPI ബൂട്ട് ചെയ്യുമ്പോൾ അത് ശരിയായി സജ്ജീകരിച്ചിരിക്കുന്നു.

കൂടുതൽ വിവരങ്ങൾക്ക് "റിമോട്ട് എക്സിക്യൂഷൻ" വിഭാഗം കാണുക.

റിമോട്ട് വധശിക്ഷ
ഓപ്പൺ എംപിഐയ്ക്ക് അത് ആവശ്യമാണ് PATH റിമോട്ടിൽ എക്സിക്യൂട്ടബിളുകൾ കണ്ടെത്താൻ എൻവയോൺമെന്റ് വേരിയബിൾ സജ്ജീകരിക്കും
നോഡുകൾ (ഇത് സാധാരണയായി ആവശ്യമുള്ളത് rsh- അഥവാ ssh-അടിസ്ഥാന പരിസ്ഥിതി --
ബാച്ച്/ഷെഡ്യൂൾ ചെയ്‌ത പരിതസ്ഥിതികൾ സാധാരണഗതിയിൽ നിലവിലെ പരിതസ്ഥിതിയെ എക്‌സിക്യൂഷനിലേക്ക് പകർത്തുന്നു
വിദൂര ജോലികൾ, അതിനാൽ നിലവിലെ അന്തരീക്ഷമുണ്ടെങ്കിൽ PATH ഒപ്പം / അല്ലെങ്കിൽ LD_LIBRARY_PATH ശരിയായി സജ്ജമാക്കുക,
റിമോട്ട് നോഡുകളിലും അത് ശരിയായി സജ്ജീകരിച്ചിരിക്കും). പങ്കിട്ടത് ഉപയോഗിച്ച് ഓപ്പൺ എംപിഐ സമാഹരിച്ചിട്ടുണ്ടെങ്കിൽ
ലൈബ്രറി പിന്തുണ, അത് ആവശ്യമായി വന്നേക്കാം LD_LIBRARY_PATH പരിസ്ഥിതി വേരിയബിൾ
റിമോട്ട് നോഡുകളിലും സജ്ജീകരിക്കുക (പ്രത്യേകിച്ച് ഉപയോക്താവിനെ പ്രവർത്തിപ്പിക്കുന്നതിന് ആവശ്യമായ പങ്കിട്ട ലൈബ്രറികൾ കണ്ടെത്താൻ
MPI ആപ്ലിക്കേഷനുകൾ).

എന്നിരുന്നാലും, ഷെൽ സ്റ്റാർട്ടപ്പ് ഫയലുകൾ സജ്ജീകരിക്കുന്നതിന് എഡിറ്റുചെയ്യുന്നത് എല്ലായ്പ്പോഴും അഭികാമ്യമോ സാധ്യമോ അല്ല PATH
ഒപ്പം / അല്ലെങ്കിൽ LD_LIBRARY_PATH. ദി --പ്രിഫിക്സ് ചില ലളിതമായ കോൺഫിഗറേഷനുകൾക്കായി ഓപ്ഷൻ നൽകിയിരിക്കുന്നു
ഇത് സാധ്യമല്ലാത്തിടത്ത്.

ദി --പ്രിഫിക്സ് ഓപ്ഷൻ ഒരൊറ്റ ആർഗ്യുമെന്റ് എടുക്കുന്നു: റിമോട്ട് നോഡിലെ അടിസ്ഥാന ഡയറക്ടറി എവിടെയാണ്
ഓപ്പൺ എംപിഐ ഇൻസ്റ്റാൾ ചെയ്തു. റിമോട്ട് സജ്ജമാക്കാൻ ഓപ്പൺ എംപിഐ ഈ ഡയറക്ടറി ഉപയോഗിക്കും PATH ഒപ്പം
LD_LIBRARY_PATH ഏതെങ്കിലും ഓപ്പൺ MPI അല്ലെങ്കിൽ ഉപയോക്തൃ ആപ്ലിക്കേഷനുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ്. ഇത് പ്രവർത്തിപ്പിക്കാൻ അനുവദിക്കുന്നു
മുൻകൂട്ടി കോൺഫിഗർ ചെയ്യാതെ തന്നെ MPI ജോലികൾ തുറക്കുക PATH ഒപ്പം LD_LIBRARY_PATH റിമോട്ടിൽ
നോഡുകൾ.

ഓപ്പൺ എംപിഐ നിലവിലെ നോഡിന്റെ "ബിന്ദർ" (എംപിഐ തുറക്കുന്ന ഡയറക്ടറി) ന്റെ അടിസ്ഥാനനാമം ചേർക്കുന്നു.
എക്സിക്യൂട്ടബിളുകൾ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്) പ്രിഫിക്സിലേക്ക് സജ്ജീകരിക്കാൻ അത് ഉപയോഗിക്കുന്നു PATH റിമോട്ട് നോഡിൽ.
അതുപോലെ, ഓപ്പൺ MPI നിലവിലെ നോഡിന്റെ "libdir" (ഡയറക്‌ടറി) യുടെ അടിസ്ഥാനനാമം ചേർക്കുന്നു.
ഓപ്പൺ എംപിഐയുടെ ലൈബ്രറികൾ ഇൻസ്‌റ്റാൾ ചെയ്‌തു) പ്രിഫിക്‌സിലേക്ക് സജ്ജീകരിക്കാൻ അത് ഉപയോഗിക്കുന്നു LD_LIBRARY_PATH
റിമോട്ട് നോഡിൽ. ഉദാഹരണത്തിന്:

പ്രാദേശിക ബൈൻഡർ: /ലോക്കൽ/നോഡ്/ഡയറക്‌ടറി/ബിൻ

പ്രാദേശിക libdir: /local/node/directory/lib64

ഇനിപ്പറയുന്ന കമാൻഡ് ലൈൻ ഉപയോഗിക്കുകയാണെങ്കിൽ:

% mpirun --prefix /remote/node/directory

തുറന്ന എംപിഐ "/remote/node/directory/bin" എന്നതിലേക്ക് ചേർക്കും PATH ഒപ്പം
ശ്രമിക്കുന്നതിന് മുമ്പ് റിമോട്ട് നോഡിലെ D_LIBRARY_PATH-ലേക്ക് "/remote/node/directory/lib64"
എന്തും നടപ്പിലാക്കാൻ.

ദി --പ്രിഫിക്സ് റിമോട്ട് നോഡിലെ ഇൻസ്റ്റലേഷൻ പാതകൾ ആണെങ്കിൽ ഓപ്ഷൻ മതിയാകില്ല
പ്രാദേശിക നോഡിനേക്കാൾ വ്യത്യസ്തമാണ് (ഉദാ, എങ്കിൽ "/ ലിബ്"ലോക്കൽ നോഡിൽ ഉപയോഗിക്കുന്നു, പക്ഷേ"/lib64"ആണ്
റിമോട്ട് നോഡിൽ ഉപയോഗിക്കുന്നു), അല്ലെങ്കിൽ ഇൻസ്റ്റലേഷൻ പാഥുകൾ എയല്ലാതെ മറ്റെന്തെങ്കിലും ആണെങ്കിൽ
ഒരു പൊതു പ്രിഫിക്‌സിന് കീഴിലുള്ള ഉപഡയറക്‌ടറി.

നടപ്പിലാക്കുന്നത് ശ്രദ്ധിക്കുക എംപിരുൺ ഒരു സമ്പൂർണ്ണ പാത്ത്‌നെയിം വഴി എന്നത് വ്യക്തമാക്കുന്നതിന് തുല്യമാണ് --പ്രിഫിക്സ്
എന്ന സമ്പൂർണ്ണ പാതയുടെ അവസാനത്തെ ഉപഡയറക്‌ടറി ഇല്ലാതെ എംപിരുൺ. ഉദാഹരണത്തിന്:

% /usr/local/bin/mpirun ...

എന്നതിന് തുല്യമാണ്

% mpirun --പ്രിഫിക്സ് / usr / local

എക്‌സ്‌പോർട്ടുചെയ്‌തു പരിസ്ഥിതി വേരിയബിളുകൾ
OMPI_* എന്ന ഫോമിൽ പേരിട്ടിരിക്കുന്ന എല്ലാ പരിസ്ഥിതി വേരിയബിളുകളും സ്വയമേവ കയറ്റുമതി ചെയ്യപ്പെടും
ലോക്കൽ, റിമോട്ട് നോഡുകളിലെ പുതിയ പ്രക്രിയകളിലേക്ക്. പാരിസ്ഥിതിക പാരാമീറ്ററുകളും ആകാം
MCA പരാമീറ്റർ ഉപയോഗിച്ച് പുതിയ പ്രക്രിയകളിലേക്ക് സജ്ജമാക്കുക/ഫോർവേഡ് ചെയ്യുക mca_base_env_list. ദി -x
ഓപ്ഷൻ എംപിരുൺ ഒഴിവാക്കിയിരിക്കുന്നു, എന്നാൽ MCA പാരാമിന്റെ വാക്യഘടന അതിന് മുമ്പുള്ളതാണ്
ഉദാഹരണം. വാക്യഘടന സമയത്ത് -x ഓപ്ഷനും MCA പാരാമും പുതിയതിന്റെ നിർവചനം അനുവദിക്കുന്നു
വേരിയബിളുകൾ, ഈ ഓപ്‌ഷനുകൾക്കായുള്ള പാഴ്‌സർ നിലവിൽ വളരെ സങ്കീർണ്ണമല്ല എന്നത് ശ്രദ്ധിക്കുക -
ഉദ്ധരിച്ച മൂല്യങ്ങൾ പോലും അത് മനസ്സിലാക്കുന്നില്ല. എന്നതിൽ വേരിയബിളുകൾ സജ്ജീകരിക്കാൻ ഉപയോക്താക്കളോട് നിർദ്ദേശിക്കുന്നു
പരിസ്ഥിതിയും അവ കയറ്റുമതി ചെയ്യുന്നതിനുള്ള ഓപ്ഷൻ ഉപയോഗിക്കുകയും ചെയ്യുക; അവരെ നിർവചിക്കാനല്ല.

ക്രമീകരണം എം.സി.എ. പരാമീറ്ററുകൾ
ദി -എംസിഎ വിവിധ MCA (മോഡുലാർ ഘടകം) ലേക്ക് പരാമീറ്ററുകൾ കൈമാറാൻ സ്വിച്ച് അനുവദിക്കുന്നു
ആർക്കിടെക്ചർ) മൊഡ്യൂളുകൾ. MCA മൊഡ്യൂളുകൾ MPI പ്രോഗ്രാമുകളിൽ നേരിട്ട് സ്വാധീനം ചെലുത്തുന്നു, കാരണം അവ അനുവദിക്കും
റൺ ടൈമിൽ സജ്ജീകരിക്കേണ്ട ട്യൂണബിൾ പാരാമീറ്ററുകൾ (ഏത് BTL കമ്മ്യൂണിക്കേഷൻ ഡിവൈസ് ഡ്രൈവറാണ്
ഉപയോഗിക്കുക, ആ BTL-ലേക്ക് കൈമാറേണ്ട പാരാമീറ്ററുകൾ മുതലായവ).

ദി -എംസിഎ സ്വിച്ച് രണ്ട് ആർഗ്യുമെന്റുകൾ എടുക്കുന്നു: ഒപ്പം . ദി പൊതുവെ വാദം
ഏത് MCA മൊഡ്യൂളിനാണ് മൂല്യം ലഭിക്കുകയെന്ന് വ്യക്തമാക്കുന്നു. ഉദാഹരണത്തിന്, ദി "btl" ഉപയോഗിക്കുന്നു
MPI സന്ദേശങ്ങൾ കൈമാറുന്നതിന് ഏത് BTL ഉപയോഗിക്കണമെന്ന് തിരഞ്ഞെടുക്കുന്നതിന്. ദി വാദം ആണ്
കടന്നുപോകുന്ന മൂല്യം. ഉദാഹരണത്തിന്:

mpirun -mca btl tcp,self -np 1 foo
"tcp", "self" BTL-കൾ ഉപയോഗിക്കാനും "foo" an ന്റെ ഒരു പകർപ്പ് പ്രവർത്തിപ്പിക്കാനും ഓപ്പൺ MPI-നോട് പറയുന്നു
അനുവദിച്ച നോഡ്.

mpirun -mca btl self -np 1 foo
"സ്വയം" BTL ഉപയോഗിക്കാനും അനുവദിച്ച "foo" യുടെ ഒരു പകർപ്പ് പ്രവർത്തിപ്പിക്കാനും ഓപ്പൺ MPI-നോട് പറയുന്നു
നോഡ്.

ദി -എംസിഎ വ്യത്യസ്തമായി വ്യക്തമാക്കുന്നതിന് സ്വിച്ച് ഒന്നിലധികം തവണ ഉപയോഗിക്കാം ഒപ്പം / അല്ലെങ്കിൽ
വാദങ്ങൾ. ഒരേ എങ്കിൽ ഒന്നിലധികം തവണ വ്യക്തമാക്കിയിട്ടുണ്ട് കൾ സംയോജിപ്പിച്ചിരിക്കുന്നു
അവയെ വേർതിരിക്കുന്ന ഒരു കോമ (",") ഉപയോഗിച്ച്.

ശ്രദ്ധിക്കുക -എംസിഎ പരിസ്ഥിതി വേരിയബിളുകൾ സജ്ജീകരിക്കുന്നതിനുള്ള ഒരു കുറുക്കുവഴിയാണ് സ്വിച്ച്. ദി
സമാനമായ എൻവയോൺമെന്റ് വേരിയബിളുകൾ മുമ്പ് സജ്ജീകരിക്കുന്നതിലൂടെ സമാന ഫലം കൈവരിക്കാനാകും
പ്രവർത്തിക്കുന്ന എംപിരുൺ. ഓപ്പൺ എംപിഐ സെറ്റ് ചെയ്യുന്ന എൻവയോൺമെന്റ് വേരിയബിളുകളുടെ രൂപം ഇതാണ്:

OMPI_MCA_ =

അങ്ങനെ, ആ -എംസിഎ സ്വിച്ച് മുമ്പ് സജ്ജീകരിച്ച പരിസ്ഥിതി വേരിയബിളുകളെ അസാധുവാക്കുന്നു. ദി -എംസിഎ
$OPAL_PREFIX/etc/openmpi-mca- എന്നതിൽ സജ്ജീകരിച്ചിരിക്കുന്ന MCA പാരാമീറ്ററുകളെ സമാനമായി ക്രമീകരണങ്ങൾ അസാധുവാക്കുന്നു
params.conf അല്ലെങ്കിൽ $HOME/.openmpi/mca-params.conf ഫയൽ.

അറിയപ്പെടാത്ത ആർഗ്യുമെന്റുകൾ ഇപ്പോഴും എൻവയോൺമെന്റ് വേരിയബിളായി സജ്ജീകരിച്ചിരിക്കുന്നു -- അവ പരിശോധിച്ചിട്ടില്ല
എംപിരുൺ) കൃത്യതയ്ക്കായി. നിയമവിരുദ്ധമോ തെറ്റോ വാദങ്ങൾ ഉണ്ടാകാം അല്ലെങ്കിൽ അല്ലായിരിക്കാം
റിപ്പോർട്ട് -- ഇത് നിർദ്ദിഷ്ട MCA മൊഡ്യൂളിനെ ആശ്രയിച്ചിരിക്കുന്നു.

MCA ആർക്കിടെക്ചറിന് കീഴിൽ ലഭ്യമായ ഘടക തരങ്ങൾ കണ്ടെത്തുന്നതിന് അല്ലെങ്കിൽ ലഭ്യമായവ കണ്ടെത്തുന്നതിന്
ഒരു നിർദ്ദിഷ്ട ഘടകത്തിനായുള്ള പരാമീറ്ററുകൾ, ഉപയോഗിക്കുക ompi_info കമാൻഡ്. കാണുക ompi_info(1) ഒന്ന്
കമാൻഡിനെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾക്ക് പേജ്.

പ്രവർത്തിക്കുന്ന as വേര്
ഓപ്പൺ എംപിഐ ടീം നിർവ്വഹിക്കുന്നതിനെതിരെ ശക്തമായി ഉപദേശിക്കുന്നു എംപിരുൺ റൂട്ട് ഉപയോക്താവായി. എം.പി.ഐ
ആപ്ലിക്കേഷനുകൾ സാധാരണ (റൂട്ട് അല്ലാത്ത) ഉപയോക്താക്കളായി പ്രവർത്തിക്കണം.

ഈ ഉപദേശം പ്രതിഫലിപ്പിക്കുമ്പോൾ, mpirun സ്ഥിരസ്ഥിതിയായി റൂട്ട് ആയി പ്രവർത്തിക്കാൻ വിസമ്മതിക്കും. ഇത് മറികടക്കാൻ
സ്ഥിരസ്ഥിതിയായി, നിങ്ങൾക്ക് ചേർക്കാൻ കഴിയും --aullow-run-as-root എന്ന ഓപ്ഷൻ എംപിരുൺ കമാൻഡ് ലൈൻ.

പുറത്ത് പദവി
എന്തിന് ഒരു സ്റ്റാൻഡേർഡ് ഡെഫനിഷൻ ഇല്ല എംപിരുൺ എക്സിറ്റ് സ്റ്റാറ്റസ് ആയി തിരികെ വരണം. ശേഷം
കാര്യമായ ചർച്ചയ്ക്ക് ശേഷം, അസൈൻ ചെയ്യുന്നതിനുള്ള ഇനിപ്പറയുന്ന രീതി ഞങ്ങൾ പരിഹരിച്ചു എംപിരുൺ പുറത്ത്
സ്റ്റാറ്റസ് (ശ്രദ്ധിക്കുക: ഇനിപ്പറയുന്ന വിവരണത്തിൽ, "പ്രാഥമിക" ജോലിയാണ് പ്രാരംഭ അപേക്ഷ
mpirun ആരംഭിച്ചത് - ആ ജോലിയിലൂടെ ഉത്ഭവിക്കുന്ന എല്ലാ ജോലികളും "ദ്വിതീയ" എന്ന് നിയുക്തമാക്കിയിരിക്കുന്നു
ജോലികൾ):

പ്രാഥമിക ജോലിയിലെ എല്ലാ പ്രക്രിയകളും എക്സിറ്റ് സ്റ്റാറ്റസ് 0-ൽ അവസാനിക്കുകയാണെങ്കിൽ, ഞങ്ങൾ 0 തിരികെ നൽകും

പ്രാഥമിക ജോലിയിലെ ഒന്നോ അതിലധികമോ പ്രക്രിയകൾ പൂജ്യമല്ലാത്ത എക്സിറ്റ് ഉപയോഗിച്ച് സാധാരണയായി അവസാനിക്കുകയാണെങ്കിൽ
സ്റ്റാറ്റസ്, ഏറ്റവും കുറഞ്ഞ MPI_COMM_WORLD റാങ്കിലുള്ള പ്രക്രിയയുടെ എക്സിറ്റ് സ്റ്റാറ്റസ് ഞങ്ങൾ നൽകുന്നു
പൂജ്യമല്ലാത്ത ഒരു പദവി ഉണ്ട്

· പ്രാഥമിക ജോലിയിലെ എല്ലാ പ്രക്രിയകളും സാധാരണയായി എക്സിറ്റ് സ്റ്റാറ്റസ് 0 ഉപയോഗിച്ച് അവസാനിക്കുകയാണെങ്കിൽ, ഒന്ന് അല്ലെങ്കിൽ
ഒരു ദ്വിതീയ ജോലിയിലെ കൂടുതൽ പ്രക്രിയകൾ സാധാരണയായി നോൺ-സീറോ എക്സിറ്റ് സ്റ്റാറ്റസോടെ അവസാനിക്കും, ഞങ്ങൾ (എ)
ഏറ്റവും കുറഞ്ഞ MPI_COMM_WORLD റാങ്കോടെ പ്രക്രിയയുടെ എക്സിറ്റ് സ്റ്റാറ്റസ് തിരികെ നൽകുക
ജോബിഡിന് പൂജ്യമല്ലാത്ത സ്റ്റാറ്റസ് ഉണ്ടായിരിക്കും, കൂടാതെ (ബി) എക്സിറ്റ് സ്റ്റാറ്റസ് സംഗ്രഹിക്കുന്ന ഒരു സന്ദേശം ഔട്ട്പുട്ട് ചെയ്യുക
പ്രാഥമിക, എല്ലാ ദ്വിതീയ ജോലികളും.

cmd ലൈൻ ഓപ്ഷൻ --report-child-jobs-separately സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, ഞങ്ങൾ തിരികെ നൽകും -only-
പ്രാഥമിക ജോലിയുടെ എക്സിറ്റ് സ്റ്റാറ്റസ്. ദ്വിതീയ ജോലികളിലെ ഏതെങ്കിലും നോൺ-സീറോ എക്സിറ്റ് സ്റ്റാറ്റസ് ആയിരിക്കും
ഒരു സംഗ്രഹ അച്ചടി പ്രസ്താവനയിൽ മാത്രം റിപ്പോർട്ട് ചെയ്തു.

സ്ഥിരസ്ഥിതിയായി, OMPI രേഖപ്പെടുത്തുകയും MPI പ്രോസസ്സുകൾ പൂജ്യമല്ലാത്ത അവസാനത്തോടെ പുറത്തുകടക്കുകയും ചെയ്യുന്നു.
പദവി. ഇത് സാധാരണയായി "അസാധാരണമായ അവസാനിപ്പിക്കൽ" ആയി കണക്കാക്കില്ല - അതായത്, OMPI ചെയ്യില്ല
ഒന്നോ അതിലധികമോ പ്രക്രിയകൾ പൂജ്യമല്ലാത്ത നില നൽകുകയാണെങ്കിൽ MPI ജോലി നിർത്തലാക്കുക. പകരം, സ്ഥിരസ്ഥിതി
പെരുമാറ്റം പൂജ്യമല്ലാത്ത സ്റ്റാറ്റസ് ഉപയോഗിച്ച് അവസാനിക്കുന്ന പ്രക്രിയകളുടെ എണ്ണം റിപ്പോർട്ട് ചെയ്യുന്നു
ജോലിയുടെ പൂർത്തീകരണം.

എന്നിരുന്നാലും, ചില സാഹചര്യങ്ങളിൽ ഏതെങ്കിലും പ്രക്രിയ നടക്കുമ്പോൾ ജോലി നിർത്തലാക്കുന്നത് അഭികാമ്യമാണ്
പൂജ്യമല്ലാത്ത പദവിയോടെ അവസാനിപ്പിക്കുന്നു. ഉദാഹരണത്തിന്, എംപിഐ ഇതര ജോലി ഒരു മോശം ഫലം കണ്ടെത്തിയേക്കാം
ഒരു കണക്കുകൂട്ടൽ നിർത്തലാക്കാൻ ആഗ്രഹിക്കുന്നു, പക്ഷേ ഒരു കോർ ഫയൽ സൃഷ്ടിക്കാൻ ആഗ്രഹിക്കുന്നില്ല. അല്ലെങ്കിൽ ഒരു എംപിഐ ജോലി
MPI_Finalize എന്നതിലേക്കുള്ള ഒരു കോൾ കഴിഞ്ഞുപോയേക്കാം, എന്നാൽ എല്ലാ പ്രക്രിയകളും നിർത്തലാക്കണമെന്ന് സൂചിപ്പിക്കുക
ചില പോസ്റ്റ്-എംപിഐ ഫലം കാരണം.

ഈ സാഹചര്യം ഇടയ്ക്കിടെ ഉണ്ടാവുമെന്ന് കരുതുന്നില്ല. എന്നിരുന്നാലും, താൽപ്പര്യത്തിൽ
വിശാലമായ കമ്മ്യൂണിറ്റിയെ സേവിക്കുന്നതിന്, OMPI ന് ഇപ്പോൾ അത് സംവിധാനം ചെയ്യാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്നതിനുള്ള ഒരു മാർഗമുണ്ട്
പൂജ്യമല്ലാത്ത സ്റ്റാറ്റസ് ഉപയോഗിച്ച് പുറത്തുകടക്കുന്ന ഏതെങ്കിലും പ്രക്രിയയിൽ ജോലികൾ നിർത്തലാക്കും. MCA പരാമീറ്റർ സജ്ജീകരിക്കുന്നു
"orte_abort_on_non_zero_status" മുതൽ 1 വരെ എല്ലാ പ്രക്രിയകളും ഒരിക്കൽ നിർത്തിവയ്ക്കുന്നതിന് OMPI കാരണമാകും
പ്രക്രിയ
നോൺ-സീറോ സ്റ്റാറ്റസോടെ പുറത്തുകടക്കുന്നു.

ഈ രീതിയിൽ സംഭവിക്കുന്ന അവസാനിപ്പിക്കലുകൾ കൺസോളിൽ "അസ്വാഭാവികമായി" റിപ്പോർട്ട് ചെയ്യപ്പെടും
അവസാനിപ്പിക്കൽ", അങ്ങനെ പുറത്തുകടക്കാനുള്ള ആദ്യ പ്രക്രിയ അതിന്റെ എക്സിറ്റ് സ്റ്റാറ്റസിനൊപ്പം തിരിച്ചറിഞ്ഞു.

ഉദാഹരണങ്ങൾ


മുകളിലുള്ള വിഭാഗങ്ങളിലുടനീളം ഉദാഹരണങ്ങൾ കാണുന്നത് ഉറപ്പാക്കുക.

mpirun -np 4 -mca btl ib,tcp,self prog1
MPI ട്രാൻസ്പോർട്ടിനായി "ib", "tcp", "self" BTL-കൾ ഉപയോഗിച്ച് prog4 ന്റെ 1 പകർപ്പുകൾ പ്രവർത്തിപ്പിക്കുക
സന്ദേശങ്ങൾ.

mpirun -np 4 -mca btl tcp,sm,self
--mca btl_tcp_if_include eth0 prog1
MPI ഗതാഗതത്തിനായി "tcp", "sm", "self" BTL-കൾ ഉപയോഗിച്ച് prog4-ന്റെ 1 പകർപ്പുകൾ പ്രവർത്തിപ്പിക്കുക
സന്ദേശങ്ങൾ, ആശയവിനിമയത്തിനായി TCP ഉപയോഗിച്ച് eth0 ഇന്റർഫേസ് മാത്രം. മറ്റ് BTL-കൾ എന്നത് ശ്രദ്ധിക്കുക
സമാനമായ if_include MCA പാരാമീറ്ററുകൾ ഉണ്ട്.

തിരികെ , VALUE-


എംപിരുൺ എല്ലാ പ്രക്രിയകളും ആരംഭിച്ചാൽ 0 നൽകുന്നു എംപിരുൺ MPI_FINALIZE എന്ന് വിളിച്ചതിന് ശേഷം പുറത്തുകടക്കുക. എ
mpirun-ലോ ഒന്നോ അതിലധികമോ ആന്തരിക പിശക് സംഭവിച്ചാൽ പൂജ്യമല്ലാത്ത മൂല്യം നൽകും
MPI_FINALIZE എന്ന് വിളിക്കുന്നതിന് മുമ്പ് പ്രോസസ്സുകൾ പുറത്തുകടന്നു. എംപിറൂണിൽ ഒരു ആന്തരിക പിശക് സംഭവിച്ചാൽ,
അനുബന്ധ പിശക് കോഡ് തിരികെ നൽകുന്നു. ഒന്നോ അതിലധികമോ പ്രക്രിയകൾ പുറത്തുകടക്കുന്ന സാഹചര്യത്തിൽ
MPI_FINALIZE എന്ന് വിളിക്കുന്നതിന് മുമ്പ്, പ്രോസസ്സിന്റെ MPI_COMM_WORLD റാങ്കിന്റെ റിട്ടേൺ മൂല്യം
എംപിരുൺ MPI_FINALIZE-ലേക്ക് വിളിക്കുന്നതിന് മുമ്പ് മരിക്കുന്ന ആദ്യ അറിയിപ്പുകൾ തിരികെ നൽകും. അതല്ല,
പൊതുവേ, മരിക്കുന്ന ആദ്യത്തെ പ്രക്രിയയായിരിക്കും ഇത്, പക്ഷേ അങ്ങനെയായിരിക്കുമെന്ന് ഉറപ്പില്ല.

onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് orterun ഓൺലൈനിൽ ഉപയോഗിക്കുക


സൗജന്യ സെർവറുകളും വർക്ക്സ്റ്റേഷനുകളും

Windows & Linux ആപ്പുകൾ ഡൗൺലോഡ് ചെയ്യുക

ലിനക്സ് കമാൻഡുകൾ

Ad




×
വിജ്ഞാപനം
❤️ഇവിടെ ഷോപ്പുചെയ്യുക, ബുക്ക് ചെയ്യുക അല്ലെങ്കിൽ വാങ്ങുക — ചെലവില്ലാതെ, സേവനങ്ങൾ സൗജന്യമായി നിലനിർത്താൻ സഹായിക്കുന്നു.