EnglishFrenchSpanyol

Favicon OnWorks

mpiexec.openmpi - Dalam Talian di Awan

Jalankan mpiexec.openmpi dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan mpiexec.openmpi yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

JADUAL:

NAMA


orterun, mpirun, mpiexec - Laksanakan kerja bersiri dan selari dalam Open MPI. oshrun, shmemrun
- Laksanakan kerja bersiri dan selari dalam SHMEM Terbuka.

Catatan: mpirun, mpiexec, dan orterun semuanya sinonim antara satu sama lain serta oshrun,
shmemrun sekiranya Open SHMEM dipasang. Menggunakan mana-mana nama akan menghasilkan yang sama
tingkah laku.

SINOPSIS


Model Berbilang Data Proses Tunggal (SPMD):

mpirun [pilihan] [ ]

Model Pelbagai Data Arahan (MIMD) Berbilang:

mpirun [ global_options ]
[ local_options1 ] [ ] :
[ local_options2 ] [ ] :
... :
[ local_optionsN ] [ ]

Ambil perhatian bahawa dalam kedua-dua model, memohon mpirun melalui nama laluan mutlak adalah bersamaan dengan
menyatakan yang --awalan pilihan dengan a nilai bersamaan dengan direktori di mana mpirun
tinggal, tolak subdirektori terakhirnya. Sebagai contoh:

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

adalah bersamaan dengan

% mpirun --prefix / usr / setempat

CEPAT RINGKASAN


Jika anda hanya mencari cara untuk menjalankan aplikasi MPI, anda mungkin ingin menggunakan a
baris arahan dalam bentuk berikut:

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

Ini akan menjalankan X salinan dalam persekitaran masa jalan semasa anda (jika berjalan di bawah
pengurus sumber yang disokong, Open MPI's mpirun biasanya secara automatik akan menggunakan
pemula proses pengurus sumber yang sepadan, berbanding, sebagai contoh, rsh or ssh,
yang memerlukan penggunaan fail hos, atau akan lalai untuk menjalankan semua salinan X pada
localhost), penjadualan (secara lalai) dalam fesyen round-robin oleh slot CPU. Lihat selebihnya
halaman ini untuk maklumat lanjut.

Sila ambil perhatian bahawa mpirun mengikat proses secara automatik pada permulaan siri v1.8.
Dua corak pengikatan digunakan sekiranya tiada arahan selanjutnya:

Ikat kepada teras: apabila bilangan proses ialah <= 2

Ikat kepada soket: apabila bilangan proses ialah > 2

Jika aplikasi anda menggunakan benang, maka anda mungkin ingin memastikan bahawa anda sama ada tidak
terikat sama sekali (dengan menyatakan --bind-to none), atau terikat kepada berbilang teras menggunakan a
tahap pengikatan yang sesuai atau bilangan tertentu elemen pemprosesan bagi setiap aplikasi
proses.

PILIHAN


mpirun akan menghantar nama direktori tempat ia digunakan pada nod tempatan kepada setiap satu
daripada nod jauh, dan cuba menukar ke direktori itu. Lihat "Kerja Semasa
Direktori" bahagian di bawah untuk butiran lanjut.

Program boleh laksana. Ini dikenal pasti sebagai hujah pertama yang tidak diiktiraf
kepada mpirun.

Hantarkan argumen masa jalan ini kepada setiap proses baharu. Ini mesti sentiasa menjadi
hujah terakhir ke mpirun. Jika fail konteks apl digunakan, akan
diabaikan.

-h, - membantu
Paparkan bantuan untuk arahan ini

-q, --senyap
Sekat mesej bermaklumat daripada orterun semasa pelaksanaan aplikasi.

-v, --verbose
Berkata-kata

-V, --versi
Nombor versi cetakan. Jika tiada hujah lain diberikan, ini juga akan menyebabkan
orterun untuk keluar.

-paparan-peta, --paparan-peta
Paparkan jadual yang menunjukkan lokasi yang dipetakan bagi setiap proses sebelum pelancaran.

-paparkan-pembangun-, --paparkan-peta-pembangunan
Paparkan jadual yang lebih terperinci menunjukkan lokasi dipetakan bagi setiap proses sebelumnya
untuk dilancarkan (biasanya menarik minat pemaju).

-paparan-peruntukan, --paparan-peruntukan
Paparkan peruntukan sumber yang dikesan.

Gunakan salah satu daripada pilihan berikut untuk menentukan hos (nod) kluster untuk dijalankan.
Ambil perhatian bahawa pada permulaan keluaran v1.8, mpirun akan melancarkan daemon ke setiap hos
dalam peruntukan (seperti yang diubah suai oleh pilihan berikut) pada awal awal
pelaksanaan, tidak kira sama ada proses aplikasi akhirnya akan dipetakan atau tidak
laksanakan di sana. Ini dilakukan untuk membolehkan pengumpulan maklumat topologi perkakasan daripada
nod jauh, dengan itu membolehkan kami memetakan proses terhadap topologi yang diketahui. Walau bagaimanapun, ia adalah a
perubahan daripada tingkah laku dalam keluaran sebelumnya di mana daemon hanya dilancarkan selepas pemetaan
telah lengkap, dan dengan itu hanya berlaku pada nod di mana proses aplikasi akan berlaku
akan melaksanakan.

-H, -tuan rumah, --tuan rumah
Senarai hos untuk menggunakan proses.

-hostfile, --hostfile
Sediakan fail hos untuk digunakan.

-fail mesin, --fail mesin
Sinonim untuk -hostfile.

-cpu-set, --cpu-set
Hadkan proses yang dilancarkan kepada cpus logik yang ditentukan pada setiap nod. Perhatikan bahawa
pilihan pengikatan masih akan digunakan dalam sampul yang ditentukan - cth, anda boleh
pilih untuk mengikat setiap proses kepada hanya satu cpu dalam set cpu yang ditentukan.

Pilihan berikut menentukan bilangan proses untuk dilancarkan. Perhatikan bahawa tiada satu pun daripada
pilihan membayangkan dasar mengikat tertentu - cth, meminta proses N untuk setiap soket
tidak membayangkan bahawa proses akan terikat pada soket.

-c, -n, --n, -np <#>
Jalankan banyak salinan program ini pada nod yang diberikan. Pilihan ini menunjukkan bahawa
fail yang ditentukan ialah program boleh laku dan bukan konteks aplikasi. Jika tidak
nilai disediakan untuk bilangan salinan untuk dilaksanakan (iaitu, bukan "-np" mahupun
sinonimnya disediakan pada baris arahan), Open MPI akan dilaksanakan secara automatik
salinan program pada setiap slot proses (lihat di bawah untuk penerangan tentang "process
slot"). Ciri ini, bagaimanapun, hanya boleh digunakan dalam model SPMD dan akan kembali
ralat (tanpa memulakan pelaksanaan aplikasi) sebaliknya.

—peta-oleh ppr:N:
Lancarkan N kali bilangan objek jenis yang ditentukan pada setiap nod.

-npersocket, --npersocket <#persocket>
Pada setiap nod, lancarkan proses ini berkali-kali ganda bilangan soket pemproses yang dihidupkan
nod. The -npersocket pilihan juga menghidupkan -ikat-ke-soket pilihan.
(ditamatkan memihak kepada --map-by ppr:n:socket)

-npernod, --npernod <#pernode>
Pada setiap nod, lancarkan banyak proses ini. (ditamatkan memihak kepada --map-by
ppr:n:nod)

-pernod, --pernod
Pada setiap nod, lancarkan satu proses -- bersamaan dengan -npernod 1. (tidak digunakan dalam
memihak kepada --map-by ppr:1:node)

Untuk memetakan proses:

--peta-oleh
Peta ke objek yang ditentukan, lalai kepada soket. Pilihan yang disokong termasuk slot,
hwthread, teras, L1cache, L2cache, L3cache, soket, numa, papan, nod, berjujukan,
jarak, dan ppr. Mana-mana objek boleh memasukkan pengubah suai dengan menambah : dan mana-mana
gabungan PE=n (mengikat n elemen pemprosesan kepada setiap proc), SPAN (imbangan beban
proses merentas peruntukan), LANGGANAN BERLEBIHAN (membenarkan lebih banyak proses pada nod
daripada elemen pemprosesan), dan NOOVERSUBSCRIBE. Ini termasuk PPR, di mana
corak akan ditamatkan oleh kolon lain untuk memisahkannya daripada pengubah suai.

-bycore, --bycore
Petakan proses mengikut teras (ditamatkan memihak kepada --map-by core)

-soket pintas, --bysocket
Petakan proses mengikut soket (ditamatkan memihak kepada --map-by socket)

-nolocal, --nolocal
Jangan jalankan sebarang salinan aplikasi yang dilancarkan pada nod yang sama seperti orterun
berlari. Pilihan ini akan mengatasi penyenaraian localhost dengan --tuan rumah atau mana-mana yang lain
mekanisme penentu hos.

-tidak melanggan, --tidak melanggan
Jangan terlebih langgan mana-mana nod; ralat (tanpa memulakan sebarang proses) jika
bilangan proses yang diminta akan menyebabkan lebihan langganan. Pilihan ini secara tersirat
menetapkan "max_slots" sama dengan nilai "slots" untuk setiap nod.

-bynode, --bynode
Pelancaran memproses satu setiap nod, berbasikal mengikut nod secara round-robin. ini
menyebarkan proses secara sama rata antara nod dan memberikan kedudukan MPI_COMM_WORLD dalam satu pusingan-
robin, "dengan cara nod".

Untuk memesan kedudukan proses dalam MPI_COMM_WORLD:

--pangkat-oleh
Kedudukan dalam fesyen round-robin mengikut objek yang ditentukan, lalai kepada slot.
Pilihan yang disokong termasuk slot, hwthread, teras, L1cache, L2cache, L3cache, soket,
numa, papan dan nod.

Untuk mengikat proses:

--terikat kepada
Ikat proses ke objek yang ditentukan, lalai kepada teras. Pilihan yang disokong termasuk
slot, hwthread, teras, l1cache, l2cache, l3cache, soket, numa, papan dan tiada.

-cpus-per-proc, --cpus-per-proc <#perproc>
Ikat setiap proses kepada bilangan cpus yang ditentukan. (ditamatkan memihak kepada --map-
oleh :PE=n)

-cpus-setiap-pangkat, --cpus-setiap-pangkat <#perrank>
Alias ​​untuk -cpus-per-proc. (ditamatkan memihak kepada --map-by :PE=n)

-ikat-ke-teras, --ikat-ke-teras
Ikat proses ke teras (ditamatkan memihak kepada --bind-to core)

-ikat-ke-soket, --ikat-ke-soket
Ikat proses ke soket pemproses (ditamatkan memihak kepada --bind-to socket)

-ikat-kepada-tiada, --ikat-kepada-tiada
Jangan ikat proses (ditamatkan memihak kepada --bind-to none)

-laporan-binding, --laporan-pengikatan
Laporkan sebarang pengikatan untuk proses yang dilancarkan.

-senarai-slot, --senarai-slot
Senarai ID pemproses yang akan digunakan untuk mengikat proses MPI. Ikatan yang ditentukan
akan digunakan untuk semua proses MPI. Lihat penjelasan di bawah untuk sintaks.

Untuk fail pangkat:

-rf, --rankfile
Sediakan fail rankfile.

Untuk mengurus I/O standard:

-output-nama fail, --output-nama fail
Ubah hala stdout, stderr dan stddiag semua proses kepada proses-unik
versi nama fail yang ditentukan. Mana-mana direktori dalam nama fail akan
secara automatik dibuat. Setiap fail output akan terdiri daripada nama fail.id, di mana fail
id akan menjadi kedudukan proses dalam MPI_COMM_WORLD, diisi dengan sifar untuk
susunan yang betul dalam penyenaraian.

-stdin, --stdin
Kedudukan MPI_COMM_WORLD bagi proses yang menerima stdin. Lalainya ialah
majukan stdin ke MPI_COMM_WORLD kedudukan 0, tetapi pilihan ini boleh digunakan untuk memajukan
stdin kepada sebarang proses. Ia juga boleh diterima untuk menentukan tiada, menunjukkan bahawa tidak
proses adalah untuk menerima stdin.

-tag-output, --tag-output
Tandai setiap baris output kepada stdout, stderr, dan stddiag dengan [jobid,
MCW_rank] menunjukkan proses jobid dan pangkat MPI_COMM_WORLD bagi
proses yang menghasilkan output, dan saluran yang menghasilkannya.

-cap masa-output, --cap masa-output
Cap masa setiap baris output ke stdout, stderr dan stddiag.

-xml, --xml
Sediakan semua output kepada stdout, stderr, dan stddiag dalam format xml.

-xterm, --xterm
Paparkan output daripada proses yang dikenal pasti mengikut kedudukan MPI_COMM_WORLD mereka
tetingkap xterm berasingan. Kedudukan ditentukan sebagai senarai yang dipisahkan koma
julat, dengan -1 menunjukkan semua. Tetingkap berasingan akan dibuat untuk setiap satu
proses yang ditentukan. Catatan: xterm biasanya akan menamatkan tetingkap selepas penamatan
proses yang berjalan di dalamnya. Walau bagaimanapun, dengan menambah "!" ke penghujung senarai
daripada pangkat yang ditentukan, pilihan yang betul akan disediakan untuk memastikan bahawa xterm mengekalkan
tingkap terbuka selepas proses ditamatkan, sekali gus membolehkan anda melihat proses itu'
pengeluaran. Setiap tetingkap xterm kemudiannya perlu ditutup secara manual. Catatan: In
sesetengah persekitaran, xterm mungkin memerlukan yang boleh laku berada dalam laluan pengguna, atau
dinyatakan dalam istilah mutlak atau relatif. Oleh itu, mungkin perlu untuk menyatakan a
boleh laku tempatan sebagai "./foo" dan bukannya "foo". Jika xterm gagal mencari
boleh laku, mpirun akan digantung, tetapi masih bertindak balas dengan betul kepada ctrl-c. Jika ini
berlaku, sila semak bahawa boleh laku ditentukan dengan betul dan cuba
lagi.

Untuk mengurus fail dan persekitaran masa jalan:

-jalan, --laluan
yang akan digunakan apabila cuba mencari boleh laku yang diminta. ini
digunakan sebelum menggunakan tetapan PATH setempat.

--awalan
Direktori awalan yang akan digunakan untuk menetapkan PATH and LD_LIBRARY_PATH pada
nod jauh sebelum menggunakan Open MPI atau proses sasaran. Lihat "Remote
Bahagian Pelaksanaan", di bawah.

--pramuat-perduaan
Salin boleh laku yang ditentukan ke mesin jauh sebelum memulakan alat kawalan jauh
proses. Boleh laku akan disalin ke direktori sesi Open MPI dan
akan dipadamkan setelah selesai kerja.

--pramuat-fail
Pramuat senarai fail yang dipisahkan koma ke direktori kerja semasa bagi
mesin jauh di mana proses akan dilancarkan sebelum memulakan proses tersebut.

--preload-files-dest-dir
Direktori destinasi yang akan digunakan untuk fail pramuat, jika selain daripada semasa
direktori kerja. Secara lalai, laluan mutlak dan relatif yang disediakan oleh
--preload-files digunakan.

--tmpdir
Tetapkan akar untuk pepohon direktori sesi untuk mpirun sahaja.

-wd
Sinonim untuk -wdir.

-wdir
Tukar kepada direktori sebelum program pengguna dilaksanakan. Lihat "Semasa
Direktori Kerja" bahagian untuk nota pada laluan relatif. Catatan: Jika -wdir pilihan
muncul pada baris arahan dan dalam konteks aplikasi, konteks akan
diutamakan daripada baris arahan. Oleh itu, jika laluan ke wdir yang dikehendaki ialah
berbeza pada nod hujung belakang, maka ia mesti dinyatakan sebagai laluan mutlak yang
adalah betul untuk nod hujung belakang.

-x
Eksport pembolehubah persekitaran yang ditentukan ke nod jauh sebelum melaksanakan
program. Hanya satu pembolehubah persekitaran boleh ditentukan setiap -x pilihan. sedia ada
pembolehubah persekitaran boleh ditentukan atau nama pembolehubah baharu ditentukan dengan
nilai yang sepadan. Sebagai contoh:
% mpirun -x PAPARAN -x OFILE=/tmp/out ...

Penghurai untuk -x pilihan tidak begitu canggih; ia tidak faham pun
nilai yang dipetik. Pengguna dinasihatkan untuk menetapkan pembolehubah dalam persekitaran, dan kemudian gunakan
-x untuk mengeksport (tidak menentukan) mereka.

Menetapkan parameter MCA:

-gmca, --gmca
Lulus parameter MCA global yang boleh digunakan untuk semua konteks. adalah
nama parameter; ialah nilai parameter.

-mca, --mca
Hantar hujah ke pelbagai modul MCA. Lihat bahagian "MCA", di bawah.

Untuk nyahpepijat:

-nyahpepijat, --nyahpepijat
Panggil penyahpepijat peringkat pengguna yang ditunjukkan oleh orte_base_user_debugger MCA
parameter.

-penyahpepijat, --penyahpepijat
Urutan penyahpepijat untuk mencari bila --nyahpepijat digunakan (iaitu sinonim untuk
orte_base_user_debugger Parameter MCA).

-tv, --tv
Lancarkan proses di bawah penyahpepijat TotalView. Keserasian ke belakang ditamatkan
bendera. Sinonim untuk --nyahpepijat.

Terdapat juga pilihan lain:

--benarkan-run-as-root
Benarkan mpirun untuk dijalankan apabila dilaksanakan oleh pengguna root (mpirun lalai untuk menggugurkan kandungan
apabila dilancarkan sebagai pengguna root).

-digugurkan, --digugurkan <#>
Tetapkan bilangan maksimum proses yang dibatalkan untuk dipaparkan.

--aplikasi
Sediakan fail aplikasi, mengabaikan semua pilihan baris arahan lain.

-rujuk, --cartofile
Sediakan fail kartografi.

--hetero
Menunjukkan bahawa berbilang app_contexts disediakan yang merupakan gabungan 32/64-bit
binari.

-sesi-cuti-lampirkan, --sesi-cuti-dilampirkan
Jangan tanggalkan daemon OmpiRTE yang digunakan oleh aplikasi ini. Ini membenarkan mesej ralat
daripada daemon serta persekitaran asas (cth, apabila gagal
melancarkan daemon) untuk menjadi output.

-ompi-server, --ompi-server <uri or fail>
Tentukan URI pelayan Open MPI (atau mpirun untuk digunakan sebagai pelayan),
nama fail (dinyatakan sebagai fail:nama fail) yang mengandungi maklumat itu, atau
PID (dinyatakan sebagai pid:#) mpirun untuk digunakan sebagai
pelayan. Pelayan Open MPI digunakan untuk menyokong data berbilang aplikasi
pertukaran melalui fungsi MPI-2 MPI_Publish_name dan MPI_Lookup_name.

-lapor-pid, --lapor-pid
Cetak PID mpirun semasa permulaan. Saluran mestilah sama ada '-' kepada indi
nyatakan bahawa pid adalah untuk menjadi output kepada stdout, '+' untuk menunjukkan bahawa pid adalah untuk
be outp ut to stderr, atau nama fail yang pid hendak ditulis.

-lapor-uri, --lapor-uri
Cetak URI mpirun semasa permulaan. Saluran mestilah sama ada '-' kepada indi
nyatakan bahawa URI adalah untuk menjadi output kepada stdout, '+' untuk menunjukkan bahawa URI adalah untuk
outp ut ke stderr, atau nama fail yang URI hendak ditulis.

-tunggu-untuk-pelayan, --tunggu-untuk-pelayan
Jeda mpirun sebelum melancarkan tugas sehingga pelayan ompi dikesan. Ini berguna
dalam skrip di mana pelayan ompi boleh dimulakan di latar belakang, diikuti serta-merta
oleh seorang mpirun perintah yang ingin menyambung kepadanya. Mpirun akan berhenti seketika sehingga sama ada
pelayan ompi yang ditentukan dihubungi atau masa tunggu pelayan melebihi.

-pelayan-masa-tunggu, --pelayan-masa-tunggu
Jumlah masa maksimum (dalam saat) mpirun harus menunggu untuk pelayan ompi
mulakan. Lalai ialah 10 saat.

Pilihan berikut berguna untuk pembangun; ia umumnya tidak berguna kepada kebanyakan orang
Pengguna ORTE dan/atau MPI:

-d, --debug-devel
Dayakan penyahpepijatan OmpiRTE (lapisan masa jalan dalam Open MPI). Ini bukan
umumnya berguna untuk kebanyakan pengguna.

--debug-daemon
Dayakan nyahpepijat mana-mana daemon OmpiRTE yang digunakan oleh aplikasi ini.

--debug-daemons-file
Dayakan nyahpepijat mana-mana daemon OmpiRTE yang digunakan oleh aplikasi ini, menyimpan output dalam
fail.

-ejen pelancaran, --pelancar-ejen
Nama boleh laku yang akan digunakan untuk memulakan proses pada nod jauh.
Lalai ialah "orted". Pilihan ini boleh digunakan untuk menguji konsep daemon baharu, atau untuk
hantar pilihan kembali kepada daemon tanpa perlu mpirun sendiri melihatnya. Untuk
contoh, menyatakan ejen pelancaran orted -mca odls_base_verbose 5 membenarkan
pembangun untuk meminta orted untuk menyahpepijat output tanpa kekacauan dari mpirun itu sendiri.

--noprefix
Lumpuhkan gelagat --prefix automatik

Mungkin terdapat pilihan lain yang disenaraikan dengan mpirun - membantu.

alam Sekitar Pembolehubah
MPIEXEC_TIMEOUT
Bilangan maksimum saat itu mpirun (mpiexec) akan lari. Selepas ini ramai
detik, mpirun akan membatalkan kerja yang dilancarkan dan keluar.

DESCRIPTION


Satu seruan daripada mpirun memulakan aplikasi MPI berjalan di bawah Open MPI. Sekiranya
permohonan adalah data berbilang proses tunggal (SPMD), aplikasi boleh ditentukan pada
yang mpirun baris perintah.

Jika aplikasi berbilang arahan berbilang data (MIMD), yang terdiri daripada berbilang
atur cara, set atur cara dan hujah boleh ditentukan dalam salah satu daripada dua cara: Dilanjutkan
Argumen Baris Perintah dan Konteks Aplikasi.

Konteks aplikasi menerangkan set program MIMD termasuk semua hujah dalam a
fail berasingan. Fail ini pada asasnya mengandungi berbilang mpirun baris arahan, kurangkan
nama perintah itu sendiri. Keupayaan untuk menentukan pilihan yang berbeza untuk yang berbeza
instantiations program adalah satu lagi sebab untuk menggunakan konteks aplikasi.

Argumen baris arahan lanjutan membenarkan penerangan susun atur aplikasi pada
baris arahan menggunakan titik bertindih (:) untuk memisahkan spesifikasi atur cara dan hujah.
Sesetengah pilihan ditetapkan secara global merentas semua program tertentu (cth --hostfile), manakala
yang lain adalah khusus untuk satu program (cth -np).

Menentukan Tuan rumah Nod
Nod hos boleh dikenal pasti pada mpirun baris arahan dengan -tuan rumah pilihan atau dalam a
fail hos.

Sebagai contoh,

mpirun -H aa,aa,bb ./a.out
melancarkan dua proses pada nod aa dan satu pada bb.

Atau, pertimbangkan fail hos

% kucing myhostfile
aa slot=2
slot bb=2
slot cc=2

Di sini, kami menyenaraikan kedua-dua nama hos (aa, bb dan cc) tetapi juga berapa banyak "slot" yang ada untuk
setiap satu. Slot menunjukkan bilangan proses yang berpotensi dilaksanakan pada nod. Untuk yang terbaik
prestasi, bilangan slot boleh dipilih untuk menjadi bilangan teras pada nod atau
bilangan soket pemproses. Jika fail hos tidak memberikan maklumat slot, a
lalai 1 diandaikan. Apabila dijalankan di bawah pengurus sumber (cth, SLURM, Tork,
dll.), Open MPI akan memperoleh kedua-dua nama hos dan bilangan slot terus daripada
pengurus sumber.

mpirun -hostfile myhostfile ./a.out
akan melancarkan dua proses pada setiap tiga nod.

mpirun -hostfile myhostfile -host aa ./a.out
akan melancarkan dua proses, kedua-duanya pada nod aa.

mpirun -hostfile myhostfile -host dd ./a.out
tidak akan menemui hos untuk dijalankan dan digugurkan dengan ralat. Iaitu, dd hos yang ditentukan
tiada dalam fail hos yang ditentukan.

Menentukan nombor of Proses
Seperti yang baru kita lihat, bilangan proses untuk dijalankan boleh ditetapkan menggunakan fail hos. Lain-lain
mekanisme wujud.

Bilangan proses yang dilancarkan boleh ditentukan sebagai gandaan bilangan nod atau
soket pemproses tersedia. Sebagai contoh,

mpirun -H aa,bb -npersocket 2 ./a.out
melancarkan proses 0-3 pada nod aa dan proses 4-7 pada nod bb, di mana aa dan bb adalah kedua-duanya
nod dwi-soket. The -npersocket pilihan juga menghidupkan -ikat-ke-soket pilihan,
yang dibincangkan dalam bahagian kemudian.

mpirun -H aa,bb -npernode 2 ./a.out
melancarkan proses 0-1 pada nod aa dan proses 2-3 pada nod bb.

mpirun -H aa,bb -npernode 1 ./a.out
melancarkan satu proses setiap nod hos.

mpirun -H aa,bb -pernode ./a.out
adalah sama seperti -npernod 1.

Alternatif lain adalah untuk menentukan bilangan proses dengan -np pilihan. Pertimbangkan
kini fail hos

% kucing myhostfile
aa slot=4
slot bb=4
slot cc=4

Kini,

mpirun -hostfile myhostfile -np 6 ./a.out
akan melancarkan proses 0-3 pada nod aa dan proses 4-5 pada nod bb. Baki
slot dalam fail hos tidak akan digunakan sejak -np pilihan menunjukkan bahawa hanya 6
proses harus dilancarkan.

Pemetaan Proses kepada Nod: Menggunakan Polisi
Contoh di atas menggambarkan pemetaan lalai proses proses kepada nod. ini
pemetaan juga boleh dikawal dengan pelbagai mpirun pilihan yang menerangkan dasar pemetaan.

Pertimbangkan fail hos yang sama seperti di atas, sekali lagi dengan -np 6:

nod aa nod bb nod cc

mpirun 0 1 2 3 4 5

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

mpirun -nolocal 0 1 2 3 4 5

. --peta-oleh nod pilihan akan memuatkan keseimbangan proses merentasi nod yang tersedia,
menomborkan setiap proses secara round-robin.

. -nolocal pilihan menghalang sebarang proses daripada dipetakan ke hos tempatan (dalam ini
nod kes aa). manakala mpirun biasanya menggunakan sedikit sumber sistem, -nolocal boleh
membantu untuk melancarkan pekerjaan yang sangat besar di mana mpirun mungkin sebenarnya perlu menggunakan ketara
jumlah memori dan/atau masa pemprosesan.

Sama seperti -np boleh menentukan proses yang lebih sedikit daripada terdapat slot, ia juga boleh terlebih melanggan
slot. Sebagai contoh, dengan fail hos yang sama:

mpirun -hostfile myhostfile -np 14 ./a.out
akan melancarkan proses 0-3 pada nod aa, 4-7 pada bb, dan 8-11 pada cc. Ia kemudiannya akan menambah
baki dua proses kepada mana-mana nod yang dipilihnya.

Seseorang juga boleh menentukan had untuk terlebih langganan. Sebagai contoh, dengan fail hos yang sama:

mpirun -hostfile myhostfile -np 14 -nooversubscribe ./a.out
akan menghasilkan ralat sejak itu -tidak melanggan mengelakkan lebihan langganan.

Had kepada lebihan langganan juga boleh ditentukan dalam fail hos itu sendiri:
% kucing myhostfile
aa slot=4 max_slots=4
bb max_slots=4
slot cc=4

. max_slots medan menentukan had sedemikian. Apabila ia berlaku, yang slot nilai lalai kepada
had. sekarang:

mpirun -hostfile myhostfile -np 14 ./a.out
menyebabkan 12 proses pertama dilancarkan seperti sebelum ini, tetapi baki dua lagi
proses akan dipaksa ke nod cc. Dua nod yang lain dilindungi oleh
hostfile terhadap terlebih langganan oleh kerja ini.

Menggunakan --tidak melanggan pilihan boleh membantu kerana Open MPI pada masa ini tidak mendapat
nilai "max_slots" daripada pengurus sumber.

Sudah tentu, -np juga boleh digunakan dengan -H or -tuan rumah pilihan. Sebagai contoh,

mpirun -H aa,bb -np 8 ./a.out
melancarkan 8 proses. Memandangkan hanya dua hos ditentukan, selepas dua yang pertama
proses dipetakan, satu ke aa dan satu ke bb, baki proses terlebih langganan
hos yang ditentukan.

Dan inilah contoh MIMD:

mpirun -H aa -np 1 nama hos : -H bb,cc -np 2 uptime
akan melancarkan proses 0 berjalan nama hos pada nod aa dan proses 1 dan 2 setiap berjalan
uptime pada nod bb dan cc, masing-masing.

Pemetaan, Kedudukan, and Binding: Oh saya!
Open MPI menggunakan prosedur tiga fasa untuk menetapkan lokasi dan pangkat proses:

pemetaan Menetapkan lokasi lalai untuk setiap proses

kedudukan Berikan nilai kedudukan MPI_COMM_WORLD kepada setiap proses

mengikat Mengekang setiap proses untuk dijalankan pada pemproses tertentu

. pemetaan step digunakan untuk menetapkan lokasi lalai kepada setiap proses berdasarkan pemeta
sedang diambil bekerja. Pemetaan mengikut slot, nod dan secara berurutan menghasilkan penugasan
proses ke tahap nod. Sebaliknya, pemetaan mengikut objek, membenarkan pemeta untuk menetapkan
proses ke objek sebenar pada setiap nod.

Catatan: lokasi yang diberikan kepada proses adalah bebas daripada tempat ia akan terikat - the
penugasan digunakan semata-mata sebagai input kepada algoritma pengikatan.

Pemetaan proses proses kepada nod boleh ditakrifkan bukan hanya dengan dasar am
tetapi juga, jika perlu, menggunakan pemetaan sewenang-wenangnya yang tidak dapat diterangkan dengan mudah
dasar. Seseorang boleh menggunakan "pemeta berjujukan," yang membaca fail hos baris demi baris,
memberikan proses kepada nod dalam apa jua susunan yang ditentukan oleh fail host. Menggunakan -mca rmaps
seq pilihan. Sebagai contoh, menggunakan fail hos yang sama seperti sebelumnya:

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

akan melancarkan tiga proses, satu pada setiap nod aa, bb, dan cc, masing-masing. Slot
kiraan tidak penting; satu proses dilancarkan setiap baris pada sebarang nod yang disenaraikan pada
line.

Satu lagi cara untuk menentukan pemetaan sewenang-wenangnya adalah dengan rankfile, yang memberikan anda butiran
kawalan ke atas pengikatan proses juga. Rankfiles dibincangkan di bawah.

Fasa kedua memfokuskan kepada kedudukan proses dalam MPI_COMM_WORLD kerja.
Open MPI memisahkan ini daripada prosedur pemetaan untuk membolehkan lebih fleksibiliti dalam
penempatan relatif proses MPI. Ini paling baik digambarkan dengan mempertimbangkan perkara berikut
dua kes di mana kami menggunakan pilihan —map-by ppr:2:socket:

nod aa nod bb

pangkat mengikut teras 0 1 ! 2 3 4 5 ! 6 7

pangkat mengikut soket 0 2 ! 1 3 4 6 ! 5 7

pangkat mengikut soket:span 0 4 ! 1 5 2 6 ! 3 7

Kedudukan mengikut teras dan mengikut slot memberikan hasil yang sama - satu perkembangan mudah
Kedudukan MPI_COMM_WORLD merentas setiap nod. Kedudukan mengikut soket melakukan ranking round-robin dalam
setiap nod sehingga semua proses telah diberikan pangkat MCW, dan kemudian berkembang ke
nod seterusnya. Menambah span pengubah suai kepada arahan kedudukan menyebabkan algoritma kedudukan
untuk menganggap keseluruhan peruntukan sebagai satu entiti - oleh itu, pangkat MCW diberikan
merentasi semua soket sebelum berputar kembali ke permulaan.

. mengikat fasa sebenarnya mengikat setiap proses kepada set pemproses tertentu. Ini boleh
meningkatkan prestasi jika sistem pengendalian meletakkan proses secara suboptimum. Untuk
contoh, ia mungkin terlebih melanggan beberapa soket pemproses berbilang teras, meninggalkan soket lain
terbiar; ini boleh menyebabkan proses bersaing secara tidak perlu untuk sumber biasa. Atau, ia
mungkin menyebarkan proses terlalu meluas; ini boleh menjadi suboptimum jika prestasi aplikasi
adalah sensitif kepada kos komunikasi antara proses. Mengikat juga boleh mengekalkan operasi
sistem daripada memindahkan proses secara berlebihan, tidak kira betapa optimumnya proses tersebut
diletakkan pada mulanya.

Pemproses yang akan digunakan untuk mengikat boleh dikenal pasti dari segi pengelompokan topologi
- cth, mengikat kepada l3cache akan mengikat setiap proses kepada semua pemproses dalam skop
satu cache L3 dalam lokasi yang ditetapkan. Oleh itu, jika proses diberikan oleh
pemeta ke soket tertentu, kemudian a -terikat kepada l3cache arahan akan menyebabkan proses menjadi
terikat kepada pemproses yang berkongsi cache L3 tunggal dalam soket itu.

Untuk membantu mengimbangi beban, arahan pengikatan menggunakan kaedah round-robin apabila mengikat
tahap yang lebih rendah daripada yang digunakan dalam pemeta. Sebagai contoh, pertimbangkan kes di mana kerja dipetakan
ke paras soket, dan kemudian diikat ke teras. Setiap soket akan mempunyai berbilang teras, jadi jika
berbilang proses dipetakan ke soket tertentu, algoritma pengikatan akan menetapkan setiap satu
proses terletak pada soket ke teras unik secara round-robin.

Sebagai alternatif, proses yang dipetakan oleh l2cache dan kemudian diikat ke soket hanya akan diikat
kepada semua pemproses dalam soket di mana ia berada. Dengan cara ini, pengguna boleh
melaksanakan kawalan terperinci ke atas lokasi kedudukan dan pengikatan relatif MCW.

Akhirnya, --laporan-pengikatan boleh digunakan untuk melaporkan pengikatan.

Sebagai contoh, pertimbangkan nod dengan dua soket pemproses, setiap satu terdiri daripada empat teras. Kami
menjalankan mpirun bersama -np 4 --laporan-pengikatan dan pilihan tambahan berikut:

% mpirun ... --map-by core --bind-to core
[...] ... mengikat anak [...,0] kepada cpus 0001
[...] ... mengikat anak [...,1] kepada cpus 0002
[...] ... mengikat anak [...,2] kepada cpus 0004
[...] ... mengikat anak [...,3] kepada cpus 0008

% mpirun ... --peta-oleh soket --ikat-kepada soket
[...] ... mengikat anak [...,0] ke soket 0 cpus 000f
[...] ... mengikat anak [...,1] ke soket 1 cpus 00f0
[...] ... mengikat anak [...,2] ke soket 0 cpus 000f
[...] ... mengikat anak [...,3] ke soket 1 cpus 00f0

% mpirun ... --map-by core:PE=2 --bind-to core
[...] ... mengikat anak [...,0] kepada cpus 0003
[...] ... mengikat anak [...,1] kepada cpus 000c
[...] ... mengikat anak [...,2] kepada cpus 0030
[...] ... mengikat anak [...,3] kepada cpus 00c0

% mpirun ... --ikat-kepada tiada

Di sini, --laporan-pengikatan menunjukkan pengikatan setiap proses sebagai topeng. Dalam kes pertama,
proses mengikat kepada teras berturut-turut seperti yang ditunjukkan oleh topeng 0001, 0002, 0004, dan
0008. Dalam kes kedua, proses mengikat semua teras pada soket berturut-turut seperti yang ditunjukkan
oleh topeng 000f dan 00f0. Proses kitaran melalui soket pemproses secara bulat-
fesyen robin seberapa banyak yang diperlukan. Dalam kes ketiga, topeng menunjukkan kepada kita bahawa 2
teras telah diikat setiap proses. Dalam kes keempat, pengikatan dimatikan dan tidak
pengikatan dilaporkan.

Sokongan MPI terbuka untuk pengikatan proses bergantung pada sistem pengendalian asas.
Oleh itu, pilihan pengikatan proses tertentu mungkin tidak tersedia pada setiap sistem.

Pengikatan proses juga boleh ditetapkan dengan parameter MCA. Penggunaannya kurang mudah daripada
yang mpirun pilihan. Sebaliknya, parameter MCA boleh ditetapkan bukan sahaja pada
mpirun baris arahan, tetapi secara alternatif dalam sistem atau fail mca-params.conf pengguna atau sebagai
pembolehubah persekitaran, seperti yang diterangkan dalam bahagian MCA di bawah. Beberapa contoh termasuk:

nilai kunci parameter MCA pilihan mpirun

--peta-oleh teras rmaps_base_mapping_policy core
--map-by soket soket rmaps_base_mapping_policy
--pangkat-mengikut teras rmaps_base_ranking_policy core
--bind-to core hwloc_base_binding_policy core
--bind-to soket hwloc_base_binding_policy socket
--bind-to none hwloc_base_binding_policy tiada

Rankfiles
Rankfiles ialah fail teks yang menyatakan maklumat terperinci tentang bagaimana proses individu
harus dipetakan ke nod, dan pemproses yang mana ia harus diikat. Setiap baris a
rankfile menentukan lokasi satu proses (untuk kerja MPI, "pangkat" proses merujuk
ke pangkatnya dalam MPI_COMM_WORLD). Bentuk umum setiap baris dalam rankfile ialah:

pangkat = slot=

Sebagai contoh:

$ kucing myrankfile
pangkat 0=slot aa=1:0-2
pangkat 1=slot bb=0:0,1
pangkat 2=slot cc=1-2
$ mpirun -H aa,bb,cc,dd -rf myrankfile ./a.out

Bermakna

Kedudukan 0 berjalan pada nod aa, terikat kepada soket logik 1, teras 0-2.
Kedudukan 1 berjalan pada nod bb, terikat kepada soket logik 0, teras 0 dan 1.
Kedudukan 2 berjalan pada nod cc, terikat kepada teras logik 1 dan 2.

Rankfiles boleh digunakan secara alternatif untuk menentukan fizikal lokasi pemproses. Dalam kes ini,
sintaksnya agak berbeza. Soket tidak lagi dikenali, dan nombor slot
yang diberikan mestilah nombor PU fizikal kerana kebanyakan OS tidak menetapkan fizikal yang unik
pengecam kepada setiap teras dalam nod. Oleh itu, fail pangkat fizikal yang betul kelihatan seperti
yang berikut:

$ kucing myphysicalrankfile
pangkat 0=aa slot=1
pangkat 1=slot bb=8
pangkat 2=slot cc=6

Ini bermakna bahawa

Kedudukan 0 akan berjalan pada nod aa, terikat pada teras yang mengandungi PU fizikal 1
Peringkat 1 akan berjalan pada nod bb, terikat pada teras yang mengandungi PU fizikal 8
Kedudukan 2 akan berjalan pada nod cc, terikat pada teras yang mengandungi PU 6 fizikal

Rankfiles dianggap sebagai logik secara lalai, dan parameter MCA
rmaps_rank_file_physical mesti ditetapkan kepada 1 untuk menunjukkan bahawa rankfile akan menjadi
dianggap sebagai fizikal.

Nama hos yang disenaraikan di atas adalah "mutlak", bermakna nama hos boleh diselesaikan sebenar adalah
ditentukan. Walau bagaimanapun, nama hos juga boleh ditentukan sebagai "relatif", yang bermaksud bahawa mereka adalah
ditentukan berhubung dengan senarai nama hos yang ditentukan secara luaran (cth, oleh mpirun's
--hujah hos, fail hos, atau penjadual kerja).

Spesifikasi "relatif" adalah dalam bentuk "+n ", dengan X ialah integer yang menyatakan
Nama hos ke-X dalam set semua nama hos yang tersedia, diindeks daripada 0. Contohnya:

$ kucing myrankfile
rank 0=+n0 slot=1:0-2
pangkat 1=+n1 slot=0:0,1
pangkat 2=+n2 slot=1-2
$ mpirun -H aa,bb,cc,dd -rf myrankfile ./a.out

Bermula dengan Open MPI v1.7, semua lokasi slot soket/teras ditentukan sebagai logik
indeks (siri Open MPI v1.6 yang digunakan fizikal indeks). Anda boleh menggunakan alatan seperti
"lstopo" HWLOC untuk mencari indeks logik soket dan teras.

Kesesuaian Konteks or Boleh dieksekusi Program?
Untuk membezakan dua bentuk yang berbeza, mpirun melihat pada baris arahan untuk --aplikasi pilihan.
Jika ia dinyatakan, maka fail yang dinamakan pada baris arahan diandaikan sebagai
konteks aplikasi. Jika ia tidak dinyatakan, maka fail itu dianggap sebagai boleh laku
program.

Mencari Fail
Jika tiada laluan relatif atau mutlak ditentukan untuk fail, Open MPI akan mencari terlebih dahulu
fail dengan mencari direktori yang ditentukan oleh --laluan pilihan. Jika tiada --laluan
set pilihan atau jika fail tidak ditemui di --laluan lokasi, kemudian Open MPI akan mencari
pembolehubah persekitaran PATH pengguna seperti yang ditakrifkan pada nod sumber.

Jika direktori relatif ditentukan, ia mestilah relatif kepada direktori kerja awal
ditentukan oleh pemula khusus yang digunakan. Contohnya apabila menggunakan pemula rsh atau ssh,
direktori awal ialah $HOME secara lalai. Pemula lain boleh menetapkan direktori awal kepada
direktori kerja semasa daripada seruan daripada mpirun.

Arus Elektrik Kerja Direktori
. -wdir pilihan mpirun (dan sinonimnya, -wd) membolehkan pengguna menukar kepada sewenang-wenangnya
direktori sebelum program digunakan. Ia juga boleh digunakan dalam fail konteks aplikasi
untuk menentukan direktori kerja pada nod tertentu dan/atau untuk aplikasi tertentu.

Jika -wdir pilihan muncul dalam fail konteks dan pada baris arahan, konteks
direktori fail akan mengatasi nilai baris arahan.

Jika -wdir pilihan ditentukan, Open MPI akan cuba menukar kepada yang ditentukan
direktori pada semua nod jauh. Jika ini gagal, mpirun akan menggugurkan kandungan.

Jika -wdir pilihan adalah tidak ditentukan, Open MPI akan menghantar nama direktori di mana mpirun
telah dipanggil ke setiap nod jauh. Nod jauh akan cuba mengubahnya
direktori. Jika mereka tidak dapat (cth, jika direktori tidak wujud pada nod itu), maka
MPI terbuka akan menggunakan direktori lalai yang ditentukan oleh pemula.

Semua perubahan direktori berlaku sebelum atur cara pengguna digunakan; ia tidak menunggu sehingga
MPI_INIT dipanggil.

Standard I / O
Open MPI mengarahkan input standard UNIX ke /dev/null pada semua proses kecuali
Proses peringkat 0 MPI_COMM_WORLD. Proses peringkat 0 MPI_COMM_WORLD mewarisi input standard
dari mpirun. Catatan: Nod yang dipanggil mpirun tidak semestinya sama dengan nod di mana
proses peringkat 0 MPI_COMM_WORLD kekal. Open MPI mengendalikan ubah hala mpirun's
input standard kepada proses peringkat 0.

Open MPI mengarahkan output dan ralat standard UNIX dari nod jauh ke nod yang digunakan
mpirun dan mencetaknya pada output/ralat standard mpirun. Proses tempatan mewarisi
keluaran standard/ralat daripada mpirun dan pindahkan kepadanya secara langsung.

Oleh itu adalah mungkin untuk mengubah hala I/O standard untuk aplikasi Open MPI dengan menggunakan
prosedur ubah hala shell biasa dihidupkan mpirun.

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

Perhatikan bahawa dalam contoh ini hanyalah proses peringkat 0 MPI_COMM_WORLD akan menerima strim
dari my_input pada stdin. Stdin pada semua nod lain akan diikat pada /dev/null.
Walau bagaimanapun, stdout daripada semua nod akan dikumpulkan ke dalam my_output fail.

Isyarat Penyebaran
Apabila orterun menerima SIGTERM dan TANDATANGAN, ia akan cuba untuk membunuh keseluruhan kerja dengan
menghantar semua proses dalam kerja SIGTERM, menunggu beberapa saat, kemudian
menghantar semua proses dalam kerja SIGKILL.

Isyarat SIGUSR1 dan SIGUSR2 yang diterima oleh orterun disebarkan ke semua proses dalam
pekerjaan.

Seseorang boleh menghidupkan pemajuan SIGSTOP dan SIGCONT kepada program yang dilaksanakan oleh mpirun oleh
menetapkan parameter MCA orte_forward_job_control kepada 1. Isyarat SIGTSTOP kepada mpirun akan
kemudian menyebabkan isyarat SIGSTOP dihantar ke semua program yang dimulakan oleh mpirun dan
begitu juga isyarat SIGCONT kepada mpirun akan menyebabkan SIGCONT dihantar.

Isyarat lain tidak disebarkan oleh orterun pada masa ini.

Proses Penamatan / Isyarat pengendalian
Semasa menjalankan aplikasi MPI, jika mana-mana proses mati secara tidak normal (sama ada keluar
sebelum menyeru MPI_FINALISE, atau mati akibat isyarat), mpirun akan dicetak
mesej ralat dan membunuh seluruh aplikasi MPI.

Pengendali isyarat pengguna mungkin harus mengelak daripada cuba membersihkan keadaan MPI (MPI Terbuka ialah
pada masa ini tidak async-signal-safe; lihat MPI_Init_thread(3) untuk butiran tentang
MPI_THREAD_MULTIPLE dan keselamatan benang). Sebagai contoh, jika kerosakan segmentasi berlaku dalam
MPI_SEND (mungkin kerana penimbal buruk telah dihantar masuk) dan pengendali isyarat pengguna adalah
dipanggil, jika pengendali pengguna ini cuba memanggil MPI_FINALISE, Perkara Buruk boleh berlaku
memandangkan Open MPI sudah "dalam" MPI apabila ralat berlaku. Sejak mpirun akan perasan
bahawa proses itu mati kerana isyarat, ia mungkin tidak perlu (dan paling selamat) untuk
pengguna untuk hanya membersihkan keadaan bukan MPI.

Proses alam Sekitar
Proses dalam aplikasi MPI mewarisi persekitarannya daripada daemon Open RTE
nod yang mereka jalankan. Persekitaran biasanya diwarisi daripada
cangkerang pengguna. Pada nod jauh, persekitaran yang tepat ditentukan oleh modul MCA but
digunakan. The rsh modul pelancaran, sebagai contoh, menggunakan sama ada rsh/ssh untuk melancarkan RTE Terbuka
daemon pada nod jauh, dan biasanya melaksanakan satu atau lebih fail persediaan shell pengguna
sebelum melancarkan daemon RTE Terbuka. Apabila menjalankan aplikasi yang dipautkan secara dinamik yang
memerlukan LD_LIBRARY_PATH pembolehubah persekitaran untuk ditetapkan, penjagaan mesti diambil untuk memastikan
bahawa ia ditetapkan dengan betul semasa but Open MPI.

Lihat bahagian "Pelaksanaan Jauh" untuk mendapatkan butiran lanjut.

Jauh Pelaksanaan
MPI terbuka memerlukan bahawa PATH pembolehubah persekitaran ditetapkan untuk mencari boleh laku pada jarak jauh
nod (ini biasanya hanya diperlukan dalam rsh- atau ssh-persekitaran berasaskan --
kumpulan/persekitaran yang dijadualkan biasanya menyalin persekitaran semasa untuk melaksanakan
pekerjaan jauh, jadi jika persekitaran semasa mempunyai PATH dan / atau LD_LIBRARY_PATH ditetapkan dengan betul,
nod jauh juga akan menetapkannya dengan betul). Jika Open MPI telah disusun bersama
sokongan perpustakaan, mungkin juga perlu untuk mempunyai LD_LIBRARY_PATH pembolehubah persekitaran
ditetapkan pada nod jauh juga (terutamanya untuk mencari perpustakaan kongsi yang diperlukan untuk menjalankan pengguna
aplikasi MPI).

Walau bagaimanapun, ia tidak selalunya wajar atau mungkin untuk mengedit fail permulaan shell untuk ditetapkan PATH
dan / atau LD_LIBRARY_PATH. Yang --awalan pilihan disediakan untuk beberapa konfigurasi mudah
di mana ini tidak mungkin.

. --awalan pilihan mengambil satu hujah: direktori asas pada nod jauh di mana
MPI terbuka dipasang. Open MPI akan menggunakan direktori ini untuk menetapkan alat kawalan jauh PATH and
LD_LIBRARY_PATH sebelum melaksanakan sebarang MPI Terbuka atau aplikasi pengguna. Ini membolehkan berjalan
Buka kerja MPI tanpa prakonfigurasi PATH and LD_LIBRARY_PATH di alat kawalan jauh
nod.

Open MPI menambah nama asas "bindir" nod semasa (direktori tempat Open MPI's
boleh laku dipasang) pada awalan dan menggunakannya untuk menetapkan PATH pada nod jauh.
Begitu juga, Open MPI menambah nama asas "libdir" nod semasa (direktori tempat
Perpustakaan MPI terbuka dipasang) pada awalan dan menggunakannya untuk menetapkan LD_LIBRARY_PATH
pada nod jauh. Sebagai contoh:

Bindir tempatan: /local/node/directory/bin

Libdir tempatan: /local/node/directory/lib64

Jika baris arahan berikut digunakan:

% mpirun --prefix /remote/node/directory

Buka MPI akan menambah "/remote/node/directory/bin" ke PATH and
"/remote/node/directory/lib64" ke D_LIBRARY_PATH pada nod jauh sebelum mencuba
untuk melaksanakan apa sahaja.

. --awalan pilihan tidak mencukupi jika laluan pemasangan pada nod jauh adalah
berbeza daripada nod tempatan (cth, jika "/ lib" digunakan pada nod tempatan, tetapi "/lib64" ialah
digunakan pada nod jauh), atau jika laluan pemasangan adalah sesuatu selain daripada a
subdirektori di bawah awalan biasa.

Perhatikan bahawa melaksanakan mpirun melalui nama laluan mutlak adalah bersamaan dengan menentukan --awalan
tanpa subdirektori terakhir dalam nama laluan mutlak kepada mpirun. Sebagai contoh:

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

adalah bersamaan dengan

% mpirun --prefix / usr / setempat

Dieksport alam Sekitar Pembolehubah
Semua pembolehubah persekitaran yang dinamakan dalam bentuk OMPI_* akan dieksport secara automatik
kepada proses baharu pada nod tempatan dan jauh. Parameter persekitaran juga boleh
ditetapkan/majukan kepada proses baharu menggunakan parameter MCA mca_base_env_list. Yang -x
pilihan untuk mpirun telah ditamatkan, tetapi sintaks param MCA mengikutinya sebelum ini
contoh. Manakala sintaks bagi -x pilihan dan param MCA membenarkan definisi baru
pembolehubah, ambil perhatian bahawa penghurai untuk pilihan ini pada masa ini tidak begitu canggih -
ia tidak memahami nilai yang dipetik. Pengguna dinasihatkan untuk menetapkan pembolehubah dalam
persekitaran dan gunakan pilihan untuk mengeksportnya; bukan untuk menentukan mereka.

Menetapkan MCA Parameter
. -mca suis membenarkan penghantaran parameter kepada pelbagai MCA (Komponen Modular
Modul Seni Bina). Modul MCA mempunyai kesan langsung ke atas program MPI kerana ia membenarkan
parameter boleh laras untuk ditetapkan pada masa jalankan (seperti pemacu peranti komunikasi BTL untuk
gunakan, parameter apa yang hendak dihantar ke BTL itu, dsb.).

. -mca suis mengambil dua hujah: and . Yang hujah secara amnya
menentukan modul MCA yang akan menerima nilai. Sebagai contoh, yang "btl" digunakan
untuk memilih BTL yang akan digunakan untuk mengangkut mesej MPI. The hujah ialah
nilai yang dilalui. Sebagai contoh:

mpirun -mca btl tcp,self -np 1 foo
Memberitahu Open MPI untuk menggunakan BTL "tcp" dan "self", dan menjalankan satu salinan "foo" an
nod yang diperuntukkan.

mpirun -mca btl diri -np 1 foo
Memberitahu Open MPI untuk menggunakan BTL "diri" dan menjalankan satu salinan "foo" yang diperuntukkan
simpul.

. -mca suis boleh digunakan beberapa kali untuk menentukan berbeza dan / atau
hujah. Jika sama dinyatakan lebih daripada sekali, iaitu s adalah bercantum
dengan koma (",") memisahkan mereka.

Ambil perhatian bahawa -mca suis hanyalah jalan pintas untuk menetapkan pembolehubah persekitaran. The
kesan yang sama boleh dicapai dengan menetapkan pembolehubah persekitaran yang sepadan sebelum ini
berlari mpirun. Bentuk pembolehubah persekitaran yang ditetapkan Open MPI ialah:

OMPI_MCA_ =

Oleh itu, -mca suis mengatasi sebarang pembolehubah persekitaran yang ditetapkan sebelum ini. The -mca
tetapan serupa mengatasi parameter MCA yang ditetapkan dalam $OPAL_PREFIX/etc/openmpi-mca-
fail params.conf atau $HOME/.openmpi/mca-params.conf.

Tidak diketahui argumen masih ditetapkan sebagai pembolehubah persekitaran -- ia tidak disemak (oleh
mpirun) untuk ketepatan. Haram atau tidak betul hujah boleh atau tidak
dilaporkan -- ia bergantung pada modul MCA tertentu.

Untuk mencari jenis komponen yang tersedia di bawah seni bina MCA, atau untuk mencari yang tersedia
parameter untuk komponen tertentu, gunakan ompi_info perintah. Lihat ompi_info(1) lelaki
halaman untuk maklumat terperinci tentang arahan.

Berlari as akar
Pasukan MPI Terbuka sangat menasihatkan agar tidak melaksanakan mpirun sebagai pengguna root. MPI
aplikasi hendaklah dijalankan sebagai pengguna biasa (bukan root).

Mencerminkan nasihat ini, mpirun akan menolak untuk dijalankan sebagai root secara lalai. Untuk mengatasi ini
lalai, anda boleh menambah --benarkan-run-as-root pilihan untuk mpirun baris perintah.

Keluar terkini
Tiada definisi standard untuk apa mpirun harus kembali sebagai status keluar. Selepas
perbincangan yang banyak, kami memutuskan kaedah berikut untuk menetapkan mpirun keluar
status (nota: dalam huraian berikut, kerja "utama" ialah permohonan awal
dimulakan oleh mpirun - semua pekerjaan yang dihasilkan oleh pekerjaan itu ditetapkan "menengah"
pekerjaan):

· jika semua proses dalam tugas utama biasanya ditamatkan dengan status keluar 0, kami mengembalikan 0

· jika satu atau lebih proses dalam tugas utama biasanya ditamatkan dengan keluar bukan sifar
status, kami mengembalikan status keluar proses dengan kedudukan MPI_COMM_WORLD terendah kepada
mempunyai status bukan sifar

· jika semua proses dalam tugas utama biasanya ditamatkan dengan status keluar 0, dan satu atau
lebih banyak proses dalam kerja sekunder biasanya ditamatkan dengan status keluar bukan sifar, kami (a)
kembalikan status keluar proses dengan kedudukan MPI_COMM_WORLD terendah dalam yang paling rendah
jobid untuk mempunyai status bukan sifar, dan (b) mengeluarkan mesej yang meringkaskan status keluar
pekerjaan utama dan semua pekerjaan menengah.

· jika pilihan baris cmd --report-child-jobs-secara berasingan ditetapkan, kami akan mengembalikan -only-
status keluar dari pekerjaan utama. Sebarang status keluar bukan sifar dalam pekerjaan menengah akan menjadi
dilaporkan semata-mata dalam penyata cetakan ringkasan.

Secara lalai, OMPI merekod dan mencatat bahawa proses MPI telah keluar dengan penamatan bukan sifar
status. Ini secara amnya tidak dianggap sebagai "penamatan tidak normal" - iaitu, OMPI tidak akan
hentikan kerja MPI jika satu atau lebih proses mengembalikan status bukan sifar. Sebaliknya, lalai
tingkah laku hanya melaporkan bilangan proses yang ditamatkan dengan status bukan sifar
penyiapan kerja.

Walau bagaimanapun, dalam beberapa kes adalah wajar untuk menggugurkan kerja apabila ada proses
ditamatkan dengan status bukan sifar. Sebagai contoh, kerja bukan MPI mungkin mengesan hasil yang buruk daripada
pengiraan dan ingin membatalkan, tetapi tidak mahu menjana fail teras. Atau kerja MPI
mungkin terus melepasi panggilan ke MPI_Finalize, tetapi menunjukkan bahawa semua proses harus dihentikan
disebabkan beberapa keputusan pasca MPI.

Tidak dijangka keadaan ini akan berlaku dengan kerap. Namun, demi kepentingan
Untuk berkhidmat kepada komuniti yang lebih luas, OMPI kini mempunyai cara untuk membenarkan pengguna mengarahkannya
pekerjaan akan digugurkan apabila sebarang proses keluar dengan status bukan sifar. Menetapkan parameter MCA
"orte_abort_on_non_zero_status" kepada 1 akan menyebabkan OMPI membatalkan semua proses sekali
proses
keluar dengan status bukan sifar.

Penamatan yang disebabkan dengan cara ini akan dilaporkan pada konsol sebagai "tidak normal
penamatan", dengan proses pertama untuk keluar dikenal pasti bersama dengan status keluarnya.

CONTOH


Pastikan juga untuk melihat contoh di seluruh bahagian di atas.

mpirun -np 4 -mca btl ib,tcp,self prog1
Jalankan 4 salinan prog1 menggunakan "ib", "tcp", dan "self" BTL untuk pengangkutan MPI
mesej.

mpirun -np 4 -mca btl tcp,sm,self
--mca btl_tcp_if_include eth0 prog1
Jalankan 4 salinan prog1 menggunakan BTL "tcp", "sm" dan "self" untuk pengangkutan MPI
mesej, dengan TCP hanya menggunakan antara muka eth0 untuk berkomunikasi. Ambil perhatian bahawa BTL lain
mempunyai parameter MCA if_include yang serupa.

PULANG BALIK NILAI


mpirun mengembalikan 0 jika semua proses dimulakan oleh mpirun keluar selepas memanggil MPI_FINALIZE. A
nilai bukan sifar dikembalikan jika ralat dalaman berlaku dalam mpirun, atau satu atau lebih
proses keluar sebelum memanggil MPI_FINALIZE. Jika ralat dalaman berlaku dalam mpirun,
kod ralat yang sepadan dikembalikan. Sekiranya satu atau lebih proses keluar
sebelum memanggil MPI_FINALIZE, nilai pulangan peringkat MPI_COMM_WORLD proses
Bahawa mpirun notis pertama mati sebelum memanggil MPI_FINALIZE akan dikembalikan. Perhatikan bahawa,
secara umum, ini akan menjadi proses pertama yang mati tetapi tidak dijamin begitu.

Gunakan mpiexec.openmpi dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad