<?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=OpenMPI_Multinode_Troubleshooting</id>
	<title>OpenMPI Multinode Troubleshooting - 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=OpenMPI_Multinode_Troubleshooting"/>
	<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=OpenMPI_Multinode_Troubleshooting&amp;action=history"/>
	<updated>2026-11-01T22:41:30Z</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=OpenMPI_Multinode_Troubleshooting&amp;diff=667&amp;oldid=prev</id>
		<title>SanzSkuy: Created page with &quot;{{Catatan|Halaman ini mendokumentasikan proses membangun &#039;&#039;&#039;cluster OpenMPI heterogen&#039;&#039;&#039; (2 laptop x86_64, rencana ditambah HP Android ARM64)  dari masalah &#039;&#039;build&#039;&#039; OpenMPI sampai masalah &#039;&#039;koneksi&#039;&#039; antar-node. Tiap masalah ditulis dengan format &#039;&#039;&#039;Gejala / Penyebab / Solusi&#039;&#039;&#039;. Nilai-nilai (hostname, IP, path) di sini adalah contoh dari setup nyata; sesuaikan dengan punyamu.}}  Cluster yang dibahas terdiri dari dua laptop yang dihubungkan lewat switch kabel (LAN khusu...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.haidhi.my.id/wiki/index.php?title=OpenMPI_Multinode_Troubleshooting&amp;diff=667&amp;oldid=prev"/>
		<updated>2026-06-16T05:39:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Catatan|Halaman ini mendokumentasikan proses membangun &amp;#039;&amp;#039;&amp;#039;cluster OpenMPI heterogen&amp;#039;&amp;#039;&amp;#039; (2 laptop x86_64, rencana ditambah HP Android ARM64)  dari masalah &amp;#039;&amp;#039;build&amp;#039;&amp;#039; OpenMPI sampai masalah &amp;#039;&amp;#039;koneksi&amp;#039;&amp;#039; antar-node. Tiap masalah ditulis dengan format &amp;#039;&amp;#039;&amp;#039;Gejala / Penyebab / Solusi&amp;#039;&amp;#039;&amp;#039;. Nilai-nilai (hostname, IP, path) di sini adalah contoh dari setup nyata; sesuaikan dengan punyamu.}}  Cluster yang dibahas terdiri dari dua laptop yang dihubungkan lewat switch kabel (LAN khusu...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Catatan|Halaman ini mendokumentasikan proses membangun &amp;#039;&amp;#039;&amp;#039;cluster OpenMPI heterogen&amp;#039;&amp;#039;&amp;#039; (2 laptop x86_64, rencana ditambah HP Android ARM64)  dari masalah &amp;#039;&amp;#039;build&amp;#039;&amp;#039; OpenMPI sampai masalah &amp;#039;&amp;#039;koneksi&amp;#039;&amp;#039; antar-node. Tiap masalah ditulis dengan format &amp;#039;&amp;#039;&amp;#039;Gejala / Penyebab / Solusi&amp;#039;&amp;#039;&amp;#039;. Nilai-nilai (hostname, IP, path) di sini adalah contoh dari setup nyata; sesuaikan dengan punyamu.}}&lt;br /&gt;
&lt;br /&gt;
Cluster yang dibahas terdiri dari dua laptop yang dihubungkan lewat switch kabel (LAN khusus), masing-masing menjalankan OpenMPI 4.1.5 dari source. Tujuannya menjalankan program MPI + OpenCL (matmul terdistribusi) di mana tiap rank memakai device OpenCL berbeda (GPU NVIDIA di satu node, CPU pocl di node lain).&lt;br /&gt;
&lt;br /&gt;
== Lingkungan ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Komponen !! Master (&amp;lt;code&amp;gt;darmogandolz&amp;lt;/code&amp;gt;) !! Node (&amp;lt;code&amp;gt;tumbal&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;mpi-node1-amd-a8&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Arsitektur || x86_64 || x86_64&lt;br /&gt;
|-&lt;br /&gt;
| OS || Arch Linux || Arch Linux&lt;br /&gt;
|-&lt;br /&gt;
| CPU/Device OpenCL || NVIDIA GeForce RTX 3050 (GPU) || AMD A8-6410 APU via &amp;#039;&amp;#039;&amp;#039;pocl&amp;#039;&amp;#039;&amp;#039; (CPU)&lt;br /&gt;
|-&lt;br /&gt;
| OpenMPI || 4.1.5 (build dari source) || 4.1.5 (build dari source)&lt;br /&gt;
|-&lt;br /&gt;
| Prefix instalasi || &amp;lt;code&amp;gt;/home/haidhi/ompi4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/home/haidhi/ompi4&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| NIC kabel (cluster) || &amp;lt;code&amp;gt;enp8s0&amp;lt;/code&amp;gt; → 192.168.100.1/24 || &amp;lt;code&amp;gt;eno1&amp;lt;/code&amp;gt; → 192.168.100.2/24&lt;br /&gt;
|-&lt;br /&gt;
| NIC wifi (internet) || &amp;lt;code&amp;gt;wlp0s20f3&amp;lt;/code&amp;gt; → 192.168.1.130/24 || &amp;lt;code&amp;gt;wlo1&amp;lt;/code&amp;gt; → 192.168.1.156/24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Catatan penting: &amp;#039;&amp;#039;&amp;#039;kedua mesin multi-homed&amp;#039;&amp;#039;&amp;#039;  punya dua jaringan aktif sekaligus (kabel &amp;#039;&amp;#039;dan&amp;#039;&amp;#039; wifi). Fakta ini jadi sumber salah satu masalah di bawah.&lt;br /&gt;
&lt;br /&gt;
== Ikhtisar masalah ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! Tahap !! Gejala singkat&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Build || &amp;lt;code&amp;gt;call to undeclared function &amp;#039;realloc&amp;#039;&amp;lt;/code&amp;gt; (Clang 16+)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Build || &amp;lt;code&amp;gt;incompatible integer to pointer conversion&amp;lt;/code&amp;gt; pada &amp;lt;code&amp;gt;backtrace_symbols&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Launch || &amp;lt;code&amp;gt;orted: command not found&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Launch || &amp;lt;code&amp;gt;Data unpack had inadequate space ... plm_base_launch_support.c&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Koneksi || &amp;lt;code&amp;gt;connect() to ... failed, Operation now in progress (115)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Bagian 1: Build OpenMPI =&lt;br /&gt;
&lt;br /&gt;
Awalnya OpenMPI 5.0.10 dicoba di-&amp;#039;&amp;#039;build&amp;#039;&amp;#039; langsung di Termux (Android). Dua error muncul. Pada akhirnya diputuskan tidak memakai v5 di HP, tapi pencatatan ini tetap berguna karena penyebabnya umum di toolchain modern.&lt;br /&gt;
&lt;br /&gt;
== Masalah 1: realloc undeclared (Clang 16+) ==&lt;br /&gt;
&lt;br /&gt;
=== Gejala ===&lt;br /&gt;
Saat &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;, kompilasi gagal:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
error: call to undeclared function &amp;#039;realloc&amp;#039;; ISO C99 and later&lt;br /&gt;
do not support implicit function declarations&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penyebab ===&lt;br /&gt;
Clang versi 16 ke atas mengubah &amp;lt;code&amp;gt;-Wimplicit-function-declaration&amp;lt;/code&amp;gt; dari &amp;#039;&amp;#039;warning&amp;#039;&amp;#039; menjadi &amp;#039;&amp;#039;&amp;#039;error&amp;#039;&amp;#039;&amp;#039; (mengikuti C99). Beberapa berkas sumber memanggil fungsi tanpa &amp;lt;code&amp;gt;#include&amp;lt;/code&amp;gt; header yang tepat pada lingkungan Android; di compiler lama ini cuma warning, di Clang baru jadi fatal.&lt;br /&gt;
&lt;br /&gt;
=== Solusi ===&lt;br /&gt;
Turunkan kembali jadi warning lewat &amp;lt;code&amp;gt;CFLAGS&amp;lt;/code&amp;gt;, lalu &amp;#039;&amp;#039;reconfigure&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export CFLAGS=&amp;quot;-Wno-implicit-function-declaration&amp;quot;&lt;br /&gt;
./configure --prefix=$HOME/ompi ...   # ulang configure agar CFLAGS terpakai&lt;br /&gt;
make -j$(nproc)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Aman, karena Clang tetap memakai &amp;#039;&amp;#039;signature builtin&amp;#039;&amp;#039; yang benar untuk fungsi standar seperti &amp;lt;code&amp;gt;realloc&amp;lt;/code&amp;gt;; yang dimatikan hanya pengetatan diagnostiknya.&lt;br /&gt;
&lt;br /&gt;
== Masalah 2: backtrace_symbols (execinfo) ==&lt;br /&gt;
&lt;br /&gt;
=== Gejala ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
error: incompatible integer to pointer conversion ...&lt;br /&gt;
(pada kode yang memakai backtrace() / backtrace_symbols())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penyebab ===&lt;br /&gt;
bionic (libc Android) baru meng-&amp;#039;&amp;#039;expose&amp;#039;&amp;#039; &amp;lt;code&amp;gt;&amp;amp;lt;execinfo.h&amp;amp;gt;&amp;lt;/code&amp;gt; pada &amp;#039;&amp;#039;&amp;#039;API level ≥ 33&amp;#039;&amp;#039;&amp;#039;. Pada target API Termux yang lebih rendah, deklarasi fungsinya disembunyikan walaupun &amp;#039;&amp;#039;symbol&amp;#039;&amp;#039;-nya sebenarnya ada di device Android 13. Karena deklarasi hilang, compiler menebak tipe return jadi &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; → muncul konversi int-ke-pointer.&lt;br /&gt;
&lt;br /&gt;
=== Solusi ===&lt;br /&gt;
Beberapa opsi:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Opsi A: matikan diagnostik (backtrace jadi agak rusak, hanya dipakai saat crash)&lt;br /&gt;
export CFLAGS=&amp;quot;$CFLAGS -Wno-int-conversion&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Opsi B: paksa target API agar header execinfo terbuka&lt;br /&gt;
export CFLAGS=&amp;quot;$CFLAGS -D__ANDROID_API__=33&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Atau yang dipilih akhirnya: &amp;#039;&amp;#039;&amp;#039;hindari masalah ini sama sekali&amp;#039;&amp;#039;&amp;#039; dengan mem-&amp;#039;&amp;#039;build&amp;#039;&amp;#039; OpenMPI di laptop, bukan di HP.&lt;br /&gt;
&lt;br /&gt;
== Keputusan: standardisasi OpenMPI 4.1.5 ==&lt;br /&gt;
&lt;br /&gt;
Karena &amp;#039;&amp;#039;build&amp;#039;&amp;#039; v5 di Termux rewel, diambil keputusan:&lt;br /&gt;
* Laptop: &amp;#039;&amp;#039;build&amp;#039;&amp;#039; OpenMPI &amp;#039;&amp;#039;&amp;#039;4.1.5&amp;#039;&amp;#039;&amp;#039; dari source ke prefix khusus.&lt;br /&gt;
* HP: tetap pakai paket Termux (juga seri v4).&lt;br /&gt;
&lt;br /&gt;
Alasan tambahan ada di bagian berikutnya: antar-node, versi MPI &amp;#039;&amp;#039;&amp;#039;wajib cocok&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Syarat: versi &amp;amp; build harus identik antar-node ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Kondisi !! Kompatibel?&lt;br /&gt;
|-&lt;br /&gt;
| Beda MAJOR (mis. 4.x vs 5.x) || &amp;#039;&amp;#039;&amp;#039;Tidak&amp;#039;&amp;#039;&amp;#039;  v4 memakai ORTE, v5 memakai PRRTE; arsitektur runtime beda total&lt;br /&gt;
|-&lt;br /&gt;
| Sama MAJOR.MINOR, beda PATCH || Biasanya jalan, tapi tidak dijamin&lt;br /&gt;
|-&lt;br /&gt;
| Identik (versi + opsi build) || &amp;#039;&amp;#039;&amp;#039;Paling aman&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pola &amp;#039;&amp;#039;build&amp;#039;&amp;#039; yang dipakai (langkah &amp;#039;&amp;#039;&amp;#039;identik&amp;#039;&amp;#039;&amp;#039; di tiap laptop):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
tar xf openmpi-4.1.5.tar.bz2 &amp;amp;&amp;amp; cd openmpi-4.1.5&lt;br /&gt;
./configure --prefix=$HOME/ompi4 \&lt;br /&gt;
    --enable-orterun-prefix-by-default \&lt;br /&gt;
    --with-pmix=internal \&lt;br /&gt;
    --with-hwloc=internal \&lt;br /&gt;
    --with-libevent=internal&lt;br /&gt;
make -j$(nproc) &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Memaksa &amp;lt;code&amp;gt;pmix&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;hwloc&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;libevent&amp;lt;/code&amp;gt; ke versi &amp;#039;&amp;#039;internal&amp;#039;&amp;#039; (bawaan tarball) membuat tiap &amp;#039;&amp;#039;build&amp;#039;&amp;#039; &amp;#039;&amp;#039;self-contained&amp;#039;&amp;#039; dan dijamin sama &amp;#039;&amp;#039;wire-format&amp;#039;&amp;#039;-nya antar-node  relevan untuk Masalah 4.&lt;br /&gt;
&lt;br /&gt;
= Bagian 2  Launch &amp;amp; koneksi multi-node =&lt;br /&gt;
&lt;br /&gt;
== Masalah 3: orted: command not found ==&lt;br /&gt;
&lt;br /&gt;
=== Gejala ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
bash: line 1: orted: command not found&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
ORTE was unable to reliably start one or more daemons.&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penyebab ===&lt;br /&gt;
Dua hal yang menumpuk:&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Dua instalasi OpenMPI&amp;#039;&amp;#039;&amp;#039; di mesin yang sama (&amp;lt;code&amp;gt;~/ompi&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;~/ompi4&amp;lt;/code&amp;gt;). &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; menunjuk ke salah satu, padahal yang di-&amp;#039;&amp;#039;rebuild&amp;#039;&amp;#039; / di-&amp;#039;&amp;#039;configure&amp;#039;&amp;#039; adalah yang lain. Gejalanya: &amp;lt;code&amp;gt;which mpirun&amp;lt;/code&amp;gt; menunjukkan folder berbeda dari yang dikira.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Sesi SSH non-interaktif tidak punya OpenMPI di PATH.&amp;#039;&amp;#039;&amp;#039; Saat &amp;lt;code&amp;gt;mpirun&amp;lt;/code&amp;gt; SSH ke node remote untuk menjalankan &amp;lt;code&amp;gt;orted&amp;lt;/code&amp;gt;, shell non-interaktif tidak menemukan &amp;lt;code&amp;gt;orted&amp;lt;/code&amp;gt;. Penyebabnya, banyak &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; punya baris di awal:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[[ $- != *i* ]] &amp;amp;&amp;amp; return   # keluar lebih dulu kalau non-interaktif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:Bash memang membaca &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; saat dipanggil sshd, tetapi &amp;lt;code&amp;gt;export PATH=...&amp;lt;/code&amp;gt; yang ditaruh &amp;#039;&amp;#039;&amp;#039;setelah&amp;#039;&amp;#039;&amp;#039; baris itu jadi terlewat.&lt;br /&gt;
&lt;br /&gt;
=== Solusi ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cara 1 (disarankan)  &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt;:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mpirun --prefix /home/haidhi/ompi4 --hostfile hostfile -np 2 ./app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; membuat mpirun memanggil &amp;lt;code&amp;gt;orted&amp;lt;/code&amp;gt; remote lewat &amp;#039;&amp;#039;&amp;#039;path lengkap&amp;#039;&amp;#039;&amp;#039; sekaligus men-set &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt;-nya, jadi PATH remote tidak relevan. Node remote tidak perlu disentuh. Syarat: remote punya OpenMPI di &amp;#039;&amp;#039;&amp;#039;path yang sama&amp;#039;&amp;#039;&amp;#039;. (Atau &amp;#039;&amp;#039;build&amp;#039;&amp;#039; dengan &amp;lt;code&amp;gt;--enable-orterun-prefix-by-default&amp;lt;/code&amp;gt; agar otomatis.)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cara 2  perbaiki &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; remote:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Taruh &amp;#039;&amp;#039;export&amp;#039;&amp;#039; di &amp;#039;&amp;#039;&amp;#039;paling atas&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; remote, &amp;#039;&amp;#039;&amp;#039;di atas&amp;#039;&amp;#039;&amp;#039; baris &amp;#039;&amp;#039;interactive-guard&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# baris paling atas ~/.bashrc&lt;br /&gt;
export PATH=$HOME/ompi4/bin:$PATH&lt;br /&gt;
export LD_LIBRARY_PATH=$HOME/ompi4/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Uji: &amp;lt;code&amp;gt;ssh NODE &amp;#039;which orted&amp;#039;&amp;lt;/code&amp;gt; harus memunculkan path-nya.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bersihkan ambiguitas:&amp;#039;&amp;#039;&amp;#039; pilih &amp;#039;&amp;#039;&amp;#039;satu&amp;#039;&amp;#039;&amp;#039; instalasi, hapus yang lain (&amp;lt;code&amp;gt;rm -rf ~/ompi&amp;lt;/code&amp;gt;), dan samakan PATH di semua tempat. Dua instalasi yang hidup berdampingan adalah akar dari kebingungan ini (dan Masalah 4).&lt;br /&gt;
&lt;br /&gt;
== Masalah 4: Data unpack had inadequate space ==&lt;br /&gt;
&lt;br /&gt;
=== Gejala ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[host:NNN] [[X,0],0] ORTE_ERROR_LOG: Data unpack had inadequate space&lt;br /&gt;
in file base/plm_base_launch_support.c at line 1213&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
ORTE was unable to reliably start one or more daemons.&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penyebab ===&lt;br /&gt;
Ketidakcocokan &amp;#039;&amp;#039;wire-format&amp;#039;&amp;#039; antara &amp;lt;code&amp;gt;mpirun&amp;lt;/code&amp;gt; (lokal) dan &amp;lt;code&amp;gt;orted&amp;lt;/code&amp;gt; (remote) saat &amp;#039;&amp;#039;handshake&amp;#039;&amp;#039; peluncuran. Pesan ini adalah tanda khasnya. Urutan kemungkinan penyebab:&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Beda versi OpenMPI&amp;#039;&amp;#039;&amp;#039; antar-node (paling sering).&lt;br /&gt;
# Versi sama, tapi &amp;#039;&amp;#039;&amp;#039;beda build&amp;#039;&amp;#039;&amp;#039;  mis. PMIx/hwloc/libevent &amp;#039;&amp;#039;internal&amp;#039;&amp;#039; di satu node, &amp;#039;&amp;#039;eksternal&amp;#039;&amp;#039; (paket sistem) di node lain. Protokol &amp;#039;&amp;#039;launch&amp;#039;&amp;#039; OpenMPI 4.x lewat PMIx, jadi PMIx beda → struktur pesan beda.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;mpirun yang benar-benar jalan ambigu&amp;#039;&amp;#039;&amp;#039;  ini kasus nyatanya: ada dua instalasi (&amp;lt;code&amp;gt;~/ompi&amp;lt;/code&amp;gt; vs &amp;lt;code&amp;gt;~/ompi4&amp;lt;/code&amp;gt;), dan job ter-&amp;#039;&amp;#039;launch&amp;#039;&amp;#039; dengan &amp;#039;&amp;#039;mpirun&amp;#039;&amp;#039; dari satu instalasi tetapi &amp;lt;code&amp;gt;orted&amp;lt;/code&amp;gt; dari instalasi lain (lewat &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; yang menunjuk folder berbeda).&lt;br /&gt;
&lt;br /&gt;
=== Diagnosis ===&lt;br /&gt;
Bandingkan versi dan &amp;#039;&amp;#039;build&amp;#039;&amp;#039; di kedua sisi:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# versi&lt;br /&gt;
/home/haidhi/ompi4/bin/mpirun --version&lt;br /&gt;
ssh NODE &amp;#039;/home/haidhi/ompi4/bin/mpirun --version&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# build + PMIx (perhatikan baris &amp;quot;Configure command line&amp;quot;)&lt;br /&gt;
/home/haidhi/ompi4/bin/ompi_info | grep -iE &amp;#039;configure command|pmix&amp;#039;&lt;br /&gt;
ssh NODE &amp;#039;/home/haidhi/ompi4/bin/ompi_info | grep -iE &amp;quot;configure command|pmix&amp;quot;&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Pada kasus ini versi (4.1.5), &amp;#039;&amp;#039;configure command line&amp;#039;&amp;#039;, dan PMIx (&amp;lt;code&amp;gt;pmix3x&amp;lt;/code&amp;gt; internal) ternyata &amp;#039;&amp;#039;&amp;#039;identik&amp;#039;&amp;#039;&amp;#039; di dua node  jadi yang salah bukan &amp;#039;&amp;#039;build&amp;#039;&amp;#039; ompi4-nya, melainkan &amp;#039;&amp;#039;mpirun&amp;#039;&amp;#039; mana yang dipakai.&lt;br /&gt;
&lt;br /&gt;
=== Solusi ===&lt;br /&gt;
Buang ambiguitas: paksa lokal = ompi4 lewat &amp;#039;&amp;#039;&amp;#039;path lengkap&amp;#039;&amp;#039;&amp;#039; + &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; eksplisit, dan pastikan semua node memakai instalasi identik di path sama:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
LD_LIBRARY_PATH=/home/haidhi/ompi4/lib \&lt;br /&gt;
/home/haidhi/ompi4/bin/mpirun --prefix /home/haidhi/ompi4 \&lt;br /&gt;
  --hostfile hostfile -np 2 ./app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Kalau memang &amp;#039;&amp;#039;build&amp;#039;&amp;#039;-nya beda dependency: &amp;#039;&amp;#039;rebuild&amp;#039;&amp;#039; semua node dengan &amp;lt;code&amp;gt;--with-pmix=internal --with-hwloc=internal --with-libevent=internal&amp;lt;/code&amp;gt; agar &amp;#039;&amp;#039;self-contained&amp;#039;&amp;#039; dan seragam (lihat bagian standardisasi). Solusi permanen: kunci path mpirun di Makefile (lihat Konfigurasi final).&lt;br /&gt;
&lt;br /&gt;
== Masalah 5: connect()  Operation now in progress (115) ==&lt;br /&gt;
&lt;br /&gt;
=== Gejala ===&lt;br /&gt;
Kedua rank &amp;#039;&amp;#039;launch&amp;#039;&amp;#039; dan device OpenCL terdeteksi, tapi lalu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
WARNING: Open MPI failed to TCP connect to a peer MPI process.&lt;br /&gt;
  Local host: tumbal&lt;br /&gt;
  Message:    connect() to 192.168.1.130:1024 failed&lt;br /&gt;
  Error:      Operation now in progress (115)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penyebab ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mesin multi-homed.&amp;#039;&amp;#039;&amp;#039; Kedua node punya dua jaringan UP: kabel &amp;lt;code&amp;gt;192.168.100.x&amp;lt;/code&amp;gt; (switch cluster) dan wifi &amp;lt;code&amp;gt;192.168.1.x&amp;lt;/code&amp;gt; (router rumah). &amp;lt;code&amp;gt;mpirun&amp;lt;/code&amp;gt; polos mencoba &amp;#039;&amp;#039;&amp;#039;semua interface&amp;#039;&amp;#039;&amp;#039; dan nyasar ke wifi. Perhatikan IP gagal &amp;lt;code&amp;gt;192.168.1.130&amp;lt;/code&amp;gt;  itu IP wifi master.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;quot;Operation now in progress&amp;quot; (bukan &amp;quot;connection refused&amp;quot;)&amp;#039;&amp;#039;&amp;#039; berarti paket di-&amp;#039;&amp;#039;&amp;#039;DROP&amp;#039;&amp;#039;&amp;#039;, bukan ditolak  ciri khas firewall (atau &amp;#039;&amp;#039;AP isolation&amp;#039;&amp;#039; di router). SSH (port 22) terbuka sehingga &amp;#039;&amp;#039;launch&amp;#039;&amp;#039; berhasil, tapi port ephemeral MPI diblok.&lt;br /&gt;
&lt;br /&gt;
=== Solusi ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Pin OpenMPI ke subnet cluster&amp;#039;&amp;#039;&amp;#039; (pakai CIDR agar aman walau nama interface beda di tiap node):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&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 -np 2 ./app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;btl_tcp_if_include&amp;lt;/code&amp;gt; mengunci jalur &amp;#039;&amp;#039;&amp;#039;data&amp;#039;&amp;#039;&amp;#039; antar-rank; &amp;lt;code&amp;gt;oob_tcp_if_include&amp;lt;/code&amp;gt; mengunci jalur &amp;#039;&amp;#039;&amp;#039;kontrol&amp;#039;&amp;#039;&amp;#039; (orted ↔ mpirun). Keduanya perlu.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Buka firewall&amp;#039;&amp;#039;&amp;#039; untuk subnet cluster (atau matikan saat menguji):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl is-active firewalld nftables ufw 2&amp;gt;/dev/null   # cek yang aktif&lt;br /&gt;
sudo ufw allow from 192.168.100.0/24                          # ufw&lt;br /&gt;
sudo firewall-cmd --zone=trusted --add-source=192.168.100.0/24 # firewalld (+ --permanent)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Rapikan hostfile&amp;#039;&amp;#039;&amp;#039;  jangan campur IP dan hostname yang bisa &amp;#039;&amp;#039;resolve&amp;#039;&amp;#039; ke wifi. Cek dulu:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
getent hosts mpi-node1-amd-a8   # pastikan menunjuk ke IP kabel, bukan wifi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Pakai IP kabel secara konsisten (lihat Konfigurasi final).&lt;br /&gt;
&lt;br /&gt;
= Konfigurasi final yang berhasil =&lt;br /&gt;
&lt;br /&gt;
== hostfile ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
192.168.100.1   slots=1&lt;br /&gt;
192.168.100.2   slots=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Memakai IP kabel di kedua baris membuat topologi eksplisit dan menghilangkan ketergantungan pada &amp;#039;&amp;#039;resolusi&amp;#039;&amp;#039; hostname (yang bisa nyasar ke wifi).&lt;br /&gt;
&lt;br /&gt;
== Makefile (target run-host) ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;make&amp;quot;&amp;gt;&lt;br /&gt;
OMPI_PREFIX ?= /home/haidhi/ompi4&lt;br /&gt;
MPIRUN      ?= $(OMPI_PREFIX)/bin/mpirun&lt;br /&gt;
CLUSTER_NET ?= 192.168.100.0/24&lt;br /&gt;
&lt;br /&gt;
run-host:&lt;br /&gt;
	$(MPIRUN) --prefix $(OMPI_PREFIX) \&lt;br /&gt;
	  --mca btl_tcp_if_include $(CLUSTER_NET) \&lt;br /&gt;
	  --mca oob_tcp_if_include $(CLUSTER_NET) \&lt;br /&gt;
	  --hostfile $(HOSTFILE) -np $(NP) $(TARGET) $(M) $(K) $(N)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Memakai &amp;#039;&amp;#039;&amp;#039;path lengkap&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;MPIRUN&amp;lt;/code&amp;gt; mematikan ambiguitas ompi-vs-ompi4 secara permanen. (Ingat: baris &amp;#039;&amp;#039;recipe&amp;#039;&amp;#039; Makefile harus di-indent TAB, bukan spasi.)&lt;br /&gt;
&lt;br /&gt;
== Hasil ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Hello World from MPI rank 0/2 on host &amp;#039;darmogandolz&amp;#039; using OpenCL device &amp;#039;NVIDIA GeForce RTX 3050 6GB Laptop GPU&amp;#039;&lt;br /&gt;
Hello World from MPI rank 1/2 on host &amp;#039;tumbal&amp;#039; using OpenCL device &amp;#039;cpu-ivybridge-AMD A8-6410 APU with AMD Radeon R5 Graphics&amp;#039;&lt;br /&gt;
Matrix multiply 512x512 * 512x512 = 512x512 selesai pada 2 proses MPI. Verifikasi: OK ✓&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ringkasan =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Masalah !! Penyebab inti !! Solusi inti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;realloc&amp;lt;/code&amp;gt; undeclared || Clang 16+ menjadikan implicit-decl sebagai error || &amp;lt;code&amp;gt;CFLAGS=&amp;quot;-Wno-implicit-function-declaration&amp;quot;&amp;lt;/code&amp;gt; + reconfigure&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;backtrace_symbols&amp;lt;/code&amp;gt; int-conversion || execinfo bionic hanya pada API ≥ 33 || &amp;lt;code&amp;gt;-Wno-int-conversion&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;-D__ANDROID_API__=33&amp;lt;/code&amp;gt;, atau build di laptop&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;orted: command not found&amp;lt;/code&amp;gt; || Dua instalasi + PATH SSH non-interaktif kosong || &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; (atau prefix-by-default); rapikan jadi satu instalasi&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Data unpack had inadequate space&amp;lt;/code&amp;gt; || &amp;#039;&amp;#039;Wire-format&amp;#039;&amp;#039; mismatch (versi/build/instalasi beda) || Path lengkap mpirun + instalasi identik di semua node&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;connect() ... in progress (115)&amp;lt;/code&amp;gt; || Multi-homed → nyasar ke wifi + firewall || &amp;lt;code&amp;gt;--mca btl/oob_tcp_if_include&amp;lt;/code&amp;gt; ke subnet kabel + buka firewall&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Catatan =&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mesin multi-homed wajib di-pin.&amp;#039;&amp;#039;&amp;#039; Begitu sebuah node punya lebih dari satu interface (wifi, kabel, &amp;lt;code&amp;gt;docker0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;virbr0&amp;lt;/code&amp;gt;), OpenMPI harus diberi tahu subnet mana yang dipakai lewat &amp;lt;code&amp;gt;btl_tcp_if_include&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;oob_tcp_if_include&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;quot;In progress&amp;quot; vs &amp;quot;refused&amp;quot;.&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;Operation now in progress (115)&amp;lt;/code&amp;gt; = paket di-DROP (firewall / isolasi). &amp;lt;code&amp;gt;Connection refused&amp;lt;/code&amp;gt; = sampai ke host tapi tidak ada yang &amp;#039;&amp;#039;listen&amp;#039;&amp;#039;. Bedanya menentukan arah perbaikan.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SSH jalan ≠ MPI jalan.&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Launch&amp;#039;&amp;#039; lewat SSH (port 22) dan komunikasi MPI (port ephemeral) adalah jalur berbeda; firewall bisa membuka satu dan memblok yang lain.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Satu instalasi saja.&amp;#039;&amp;#039;&amp;#039; Memiliki &amp;lt;code&amp;gt;~/ompi&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;~/ompi4&amp;lt;/code&amp;gt; sekaligus adalah sumber Masalah 3 dan 4. Pilih satu, hapus sisanya, dan kunci path-nya di Makefile.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Identik antar-node.&amp;#039;&amp;#039;&amp;#039; Versi + opsi &amp;#039;&amp;#039;build&amp;#039;&amp;#039; yang sama di semua node mencegah &amp;#039;&amp;#039;Data unpack&amp;#039;&amp;#039; error. &amp;#039;&amp;#039;Build&amp;#039;&amp;#039; dengan dependency &amp;#039;&amp;#039;internal&amp;#039;&amp;#039; membuatnya seragam tanpa bergantung paket sistem tiap mesin.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Skala ke HP.&amp;#039;&amp;#039;&amp;#039; Saat node Android ditambahkan, pastikan ia mendapat IP &amp;lt;code&amp;gt;192.168.100.x&amp;lt;/code&amp;gt; di switch yang sama; karena beda arsitektur (ARM64 vs x86_64), program perlu di-&amp;#039;&amp;#039;launch&amp;#039;&amp;#039; sebagai binary terpisah per-arch (MPMD).&lt;br /&gt;
&lt;br /&gt;
= Lihat pula =&lt;br /&gt;
&lt;br /&gt;
* [[OpenCL Adreno di Termux]]&lt;br /&gt;
* [[Troubleshooting OpenCL + MPI di Termux]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenMPI]]&lt;br /&gt;
[[Category:HPC]]&lt;br /&gt;
[[Category:Cluster]]&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Troubleshooting]]&lt;/div&gt;</summary>
		<author><name>SanzSkuy</name></author>
	</entry>
</feed>