<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.haidhi.my.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Mpirun_arguments</id>
	<title>Mpirun arguments - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.haidhi.my.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Mpirun_arguments"/>
	<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=Mpirun_arguments&amp;action=history"/>
	<updated>2026-11-01T21:45:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.haidhi.my.id/wiki/index.php?title=Mpirun_arguments&amp;diff=670&amp;oldid=prev</id>
		<title>SanzSkuy at 10:55, 17 June 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=Mpirun_arguments&amp;diff=670&amp;oldid=prev"/>
		<updated>2026-06-17T10:55:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.haidhi.my.id/wiki/index.php?title=Mpirun_arguments&amp;amp;diff=670&amp;amp;oldid=669&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>SanzSkuy</name></author>
	</entry>
	<entry>
		<id>https://wiki.haidhi.my.id/wiki/index.php?title=Mpirun_arguments&amp;diff=669&amp;oldid=prev</id>
		<title>SanzSkuy: Created page with &quot;Target ini menjalankan program &lt;code&gt;matmul&lt;/code&gt; di beberapa laptop (x86 only) lewat jaringan lokal, menggunakan Open MPI dengan hostfile.  == Perintah yang dijalankan ==  &lt;pre&gt; mpirun --prefix /home/haidhi/ompi4 \        --mca btl_tcp_if_include 192.168.100.0/24 \        --mca oob_tcp_if_include 192.168.100.0/24 \        --hostfile hostfile \        -np 2 \        build/matmul 2048 2048 2048 &lt;/pre&gt;  (Nilai default. Bisa di-override: &lt;code&gt;make run-host NP=4 M=1024 K=1...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=Mpirun_arguments&amp;diff=669&amp;oldid=prev"/>
		<updated>2026-06-17T10:50:47Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Target ini menjalankan program &amp;lt;code&amp;gt;matmul&amp;lt;/code&amp;gt; di beberapa laptop (x86 only) lewat jaringan lokal, menggunakan Open MPI dengan hostfile.  == Perintah yang dijalankan ==  &amp;lt;pre&amp;gt; mpirun --prefix /home/haidhi/ompi4 \        --mca btl_tcp_if_include 192.168.100.0/24 \        --mca oob_tcp_if_include 192.168.100.0/24 \        --hostfile hostfile \        -np 2 \        build/matmul 2048 2048 2048 &amp;lt;/pre&amp;gt;  (Nilai default. Bisa di-override: &amp;lt;code&amp;gt;make run-host NP=4 M=1024 K=1...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Target ini menjalankan program &amp;lt;code&amp;gt;matmul&amp;lt;/code&amp;gt; di beberapa laptop (x86 only) lewat jaringan lokal, menggunakan Open MPI dengan hostfile.&lt;br /&gt;
&lt;br /&gt;
== Perintah yang dijalankan ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mpirun --prefix /home/haidhi/ompi4 \&lt;br /&gt;
       --mca btl_tcp_if_include 192.168.100.0/24 \&lt;br /&gt;
       --mca oob_tcp_if_include 192.168.100.0/24 \&lt;br /&gt;
       --hostfile hostfile \&lt;br /&gt;
       -np 2 \&lt;br /&gt;
       build/matmul 2048 2048 2048&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Nilai default. Bisa di-override: &amp;lt;code&amp;gt;make run-host NP=4 M=1024 K=1024 N=1024&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Penjelasan tiap flag ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;--prefix /home/haidhi/ompi4&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Memberitahu mpirun di mana instalasi Open MPI berada — di sini &amp;lt;code&amp;gt;/home/haidhi/ompi4&amp;lt;/code&amp;gt;, bukan sistem default &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kenapa perlu:&amp;#039;&amp;#039;&amp;#039; Saat mpirun di master meluncurkan proses di node lain lewat SSH, ia perlu tahu path mpirun, library, dan binary Open MPI yang harus digunakan di remote node. Tanpa &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt;, remote node akan mencoba mencari Open MPI di PATH default-nya, yang mungkin versi berbeda atau tidak ada sama sekali. Dengan ini, semua node dijamin pakai instalasi yang sama.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;--mca btl_tcp_if_include 192.168.100.0/24&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Membatasi &amp;#039;&amp;#039;&amp;#039;BTL (Byte Transfer Layer)&amp;#039;&amp;#039;&amp;#039; komponen TCP agar hanya menggunakan interface jaringan yang ada di subnet &amp;lt;code&amp;gt;192.168.100.0/24&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
BTL adalah lapisan di Open MPI yang menangani transfer data antar proses. MPI mendukung beberapa BTL (TCP, shared memory, InfiniBand, dll). Khusus BTL TCP, flag ini menentukan interface mana yang boleh dipakai.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kenapa perlu:&amp;#039;&amp;#039;&amp;#039; Laptop biasanya punya lebih dari satu network interface — misalnya WiFi (&amp;lt;code&amp;gt;wlan0&amp;lt;/code&amp;gt;), ethernet (&amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;), loopback (&amp;lt;code&amp;gt;lo&amp;lt;/code&amp;gt;), bahkan interface virtual dari Docker atau VPN. Tanpa pembatasan ini, Open MPI bisa salah memilih interface (misal WiFi lambat, atau VPN yang tidak terhubung ke node lain). Dengan menentukan subnet cluster, kita paksa semua transfer data MPI lewat interface yang benar.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;--mca oob_tcp_if_include 192.168.100.0/24&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Membatasi &amp;#039;&amp;#039;&amp;#039;OOB (Out-of-Band)&amp;#039;&amp;#039;&amp;#039; TCP agar hanya menggunakan interface di subnet &amp;lt;code&amp;gt;192.168.100.0/24&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
OOB adalah kanal kontrol MPI — dipakai untuk koordinasi seperti handshake startup, sinkronisasi, dan pesan manajemen proses. Berbeda dari BTL yang menangani data, OOB menangani sinyal pengendali.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kenapa perlu:&amp;#039;&amp;#039;&amp;#039; Alasan yang sama dengan BTL — cegah OOB salah interface. Jika OOB pakai interface yang berbeda dari BTL, bisa terjadi situasi di mana kontrol berhasil tapi data transfer gagal, atau koneksi drop karena routing tidak konsisten. Keduanya harus di-pin ke subnet yang sama.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Perbedaan BTL vs OOB:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Komponen !! Fungsi !! Analogi&lt;br /&gt;
|-&lt;br /&gt;
| BTL TCP || Transfer data MPI (&amp;lt;code&amp;gt;MPI_Send&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MPI_Bcast&amp;lt;/code&amp;gt;, dll) || Truk pengangkut barang&lt;br /&gt;
|-&lt;br /&gt;
| OOB TCP || Koordinasi dan kontrol proses MPI || Dispatcher yang mengatur truk&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;--hostfile hostfile&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Menentukan file yang berisi daftar node (hostname/IP) yang akan digunakan beserta jumlah slot (proses) per node.&lt;br /&gt;
&lt;br /&gt;
Contoh isi file &amp;lt;code&amp;gt;hostfile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
192.168.100.1 slots=2&lt;br /&gt;
192.168.100.2 slots=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kenapa perlu:&amp;#039;&amp;#039;&amp;#039; Memberitahu mpirun node mana saja yang tersedia di cluster dan berapa proses maksimum yang boleh di-spawn di tiap node.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;-np 2&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Number of Processes&amp;#039;&amp;#039;&amp;#039; — total jumlah proses MPI yang akan dijalankan.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kenapa perlu:&amp;#039;&amp;#039;&amp;#039; MPI bekerja dengan model SPMD (Single Program Multiple Data) — program yang sama dijalankan di &amp;lt;code&amp;gt;NP&amp;lt;/code&amp;gt; proses secara paralel. Masing-masing proses mendapat rank unik (0, 1, ..., NP-1) dan mengerjakan bagian matriks yang berbeda. Semakin besar NP (selama ada node yang tersedia), semakin banyak baris matriks A yang dikerjakan paralel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;build/matmul 2048 2048 2048&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Binary yang dijalankan beserta argumennya: ukuran matriks M×K dan K×N. Nilai ini diteruskan ke semua proses MPI sebagai &amp;lt;code&amp;gt;argv&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Variabel yang bisa di-override ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variabel !! Default !! Keterangan&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;NP&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; || Total proses MPI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2048&amp;lt;/code&amp;gt; || Baris matriks A / C&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2048&amp;lt;/code&amp;gt; || Kolom A / baris B&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2048&amp;lt;/code&amp;gt; || Kolom matriks B / C&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;OMPI_PREFIX&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/home/haidhi/ompi4&amp;lt;/code&amp;gt; || Path instalasi Open MPI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CLUSTER_NET&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;192.168.100.0/24&amp;lt;/code&amp;gt; || Subnet cluster&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;HOSTFILE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;hostfile&amp;lt;/code&amp;gt; || Path ke hostfile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Contoh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make run-host NP=4 M=1024 K=1024 N=1024&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>SanzSkuy</name></author>
	</entry>
</feed>