<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Rahmat</title>
    <description>The latest articles on Forem by Rahmat (@bzz).</description>
    <link>https://forem.com/bzz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F991902%2F197d8381-49a2-41f1-af8c-bcec0a2491f3.jpg</url>
      <title>Forem: Rahmat</title>
      <link>https://forem.com/bzz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/bzz"/>
    <language>en</language>
    <item>
      <title>Fetch Data Paper Menggunakan Scopus API</title>
      <dc:creator>Rahmat</dc:creator>
      <pubDate>Sat, 24 Dec 2022 07:03:03 +0000</pubDate>
      <link>https://forem.com/bzz/fetch-data-paper-menggunakan-scopus-api-5gjl</link>
      <guid>https://forem.com/bzz/fetch-data-paper-menggunakan-scopus-api-5gjl</guid>
      <description>&lt;p&gt;Jika kita ingin mengambil data &lt;em&gt;paper&lt;/em&gt;/artikel atau jurnal, kita bisa memanfaatkan API &lt;em&gt;database&lt;/em&gt; jurnal, seperti &lt;a href="https://dev.elsevier.com/"&gt;Scopus APIs&lt;/a&gt; dan &lt;a href="https://developer.ieee.org/"&gt;IEEE Xplore API&lt;/a&gt;. Scopus API merupakan RESTful API yang dapat diambil menggunakan http request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Request an API Key
&lt;/h2&gt;

&lt;p&gt;Masuk ke &lt;a href="https://dev.elsevier.com/"&gt;Elsevier Developer Portal&lt;/a&gt; untuk mendapatkan &lt;em&gt;API key&lt;/em&gt;. Kita perlu registrasi terlebih dahulu agar bisa mendapatkannya.&lt;/p&gt;

&lt;h2&gt;
  
  
  Akses API
&lt;/h2&gt;

&lt;p&gt;Cobalah untuk membuka &lt;code&gt;https://api.elsevier.com/content/search/scopus?apiKey=API_KEY&lt;/code&gt; di browser. Jangan lupa untuk mengganti &lt;code&gt;API_KEY&lt;/code&gt; dengan &lt;em&gt;API key&lt;/em&gt; yang sudah di-&lt;em&gt;generate&lt;/em&gt;. Jika selesai, seharusnya akan muncul status kode &lt;code&gt;INVALID_INPUT&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Sekarang, mari tambahkan parameter lagi, yaitu &lt;code&gt;query&lt;/code&gt;. Kita bisa memasukkan &lt;em&gt;query&lt;/em&gt; dengan kriteria tertentu, misalnya &lt;code&gt;AUTHOR-NAME&lt;/code&gt; untuk mengambil data Scopus dengan &lt;em&gt;author&lt;/em&gt; tertentu. Berikut contohnya &lt;code&gt;https://api.elsevier.com/content/search/scopus?apiKey=API_KEY&amp;amp;query=AUTHOR-NAME(Cenoz, J)&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contoh Program
&lt;/h2&gt;

&lt;p&gt;Kita akan menggunakan Python untuk &lt;em&gt;fetch&lt;/em&gt; datanya.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"b4748722301d1d53282b627ac0bc99e7"&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"https://api.elsevier.com/content/search/scopus?apiKey=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;query=AUTHOR-NAME(Cenoz, J)"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kita dapat mengkonversi data paper dalam bentuk format csv dengan &lt;code&gt;pandas&lt;/code&gt; lalu menyimpannya.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;entries&lt;/span&gt;&lt;span class="p"&gt;)[[&lt;/span&gt;&lt;span class="s"&gt;"dc:title"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"dc:creator"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"subtypeDescription"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"prism:doi"&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"scopus_papers.csv"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Referensi
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Elsevier Developer Portal: &lt;a href="https://dev.elsevier.com"&gt;https://dev.elsevier.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dokumentasi API: &lt;a href="https://dev.elsevier.com/api_docs.html"&gt;https://dev.elsevier.com/api_docs.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>api</category>
    </item>
    <item>
      <title>Membuat Cluster MPI</title>
      <dc:creator>Rahmat</dc:creator>
      <pubDate>Sun, 18 Dec 2022 13:48:00 +0000</pubDate>
      <link>https://forem.com/bzz/membuat-cluster-mpi-5gi3</link>
      <guid>https://forem.com/bzz/membuat-cluster-mpi-5gi3</guid>
      <description>&lt;p&gt;Halo👋🏼&lt;br&gt;
Artikel ini akan membahas bagaimana cara membuat &lt;strong&gt;MPI &lt;em&gt;cluster&lt;/em&gt;&lt;/strong&gt; dengan langkah-langkah yang disajikan. Tutorial ini menggunakan Ubuntu 22.04 sebagai &lt;em&gt;operating system&lt;/em&gt; yang digunakan.&lt;/p&gt;
&lt;h2&gt;
  
  
  0. Sebelum Bekerja
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Siapkan beberapa komputer. Tentukan satu komputer untuk &lt;em&gt;master&lt;/em&gt; dan beberapa komputer untuk &lt;em&gt;worker&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pastikan seluruh komputer terhubung dalam satu jaringan (misalnya: terhubung dengan Wifi yang sama).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Update&lt;/em&gt; dan &lt;em&gt;upgrade package&lt;/em&gt; &lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Install&lt;/em&gt; beberapa &lt;em&gt;package&lt;/em&gt; sebagai utilitas, yaitu &lt;code&gt;net-tools&lt;/code&gt; dan &lt;code&gt;vim&lt;/code&gt; (opsional).&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;net-tools vim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Untuk memeriksa IP komputer, gunakan perintah &lt;code&gt;ifconfig&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  1. Konfigurasi File &lt;code&gt;/etc/hosts&lt;/code&gt;
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1.1 Untuk Master
&lt;/h3&gt;

&lt;p&gt;Buka &lt;em&gt;file&lt;/em&gt; &lt;code&gt;/etc/hosts&lt;/code&gt; melalui vim (atau vi, nano, yang lainnya). Tambahkan beberapa IP dan aliasnya dari masing-masing komputer. Berikut contohnya.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;192.168.1.100 master
192.168.1.200 worker1
192.168.1.300 worker2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  1.2 Untuk Worker
&lt;/h3&gt;

&lt;p&gt;Sama seperti pada &lt;em&gt;master&lt;/em&gt;, tambahkan IP dan aliasnya, namun hanya IP &lt;em&gt;master&lt;/em&gt; dan IP komputer itu sendiri.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;192.168.1.100 master
192.168.1.200 worker1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Buat User Baru
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2.1 Buat User
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt; dan &lt;strong&gt;Worker&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Buat &lt;em&gt;user&lt;/em&gt; baru dengan nama yang sama di masing-masing komputer. Saya menamakannya &lt;code&gt;mpiuser&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;adduser mpiuser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2.2 Beri Akses Root
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt; dan &lt;strong&gt;Worker&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;usermod &lt;span class="nt"&gt;-aG&lt;/span&gt; mpiuser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2.3 Masuk ke User yang Telah Dibuat
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt; dan &lt;strong&gt;Worker&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;su - mpiuser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Konfigurasi SSH
&lt;/h2&gt;

&lt;p&gt;Lakukan konfigurasi SSH setelah masuk ke &lt;em&gt;user&lt;/em&gt; yang telah dibuat sebelumnya.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.1 Install SSH
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt; dan &lt;strong&gt;Worker&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;openssh-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anda dapat menghubungkan komputer dengan SSH.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh &amp;lt;nama user&amp;gt;@&amp;lt;host&amp;gt;
&lt;span class="c"&gt;# Misal: ssh mpiuser@worker1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3.2 Buat Key
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ketik perintah di bawah.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh-keygen &lt;span class="nt"&gt;-t&lt;/span&gt; rsa
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anda akan diminta memasukkan beberapa &lt;em&gt;input&lt;/em&gt;, lewati semuanya.&lt;/p&gt;

&lt;p&gt;SSH &lt;em&gt;key&lt;/em&gt; akan disimpan di direktori &lt;code&gt;~/.ssh&lt;/code&gt; dalam bentuk &lt;code&gt;id_rsa&lt;/code&gt; (privasi) dan &lt;code&gt;id_rsa.pub&lt;/code&gt; (publik).&lt;/p&gt;

&lt;h3&gt;
  
  
  3.3 Salin Key Publik ke Worker
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Key&lt;/em&gt; publik perlu disalin ke masing-masing &lt;em&gt;worker&lt;/em&gt; dan disimpan ke dalam &lt;em&gt;file&lt;/em&gt; &lt;code&gt;auhorized_keys&lt;/code&gt;. Hal ini dapat dilakukan di &lt;em&gt;master&lt;/em&gt; dengan bantuan SSH.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/.ssh
&lt;span class="nb"&gt;cat &lt;/span&gt;id_rsa.pub | ssh &amp;lt;nama user&amp;gt;@&amp;lt;host&amp;gt; &lt;span class="s2"&gt;"mkdir .ssh; cat &amp;gt;&amp;gt; .ssh/authorized_keys"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ganti &lt;code&gt;&amp;lt;nama user&amp;gt;&lt;/code&gt; dengan nama &lt;em&gt;user&lt;/em&gt; dan &lt;code&gt;&amp;lt;host&amp;gt;&lt;/code&gt; dengan &lt;em&gt;worker&lt;/em&gt;. Lakukan perintah ini ke seluruh &lt;em&gt;worker&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;File&lt;/em&gt; &lt;code&gt;authorized_keys&lt;/code&gt; akan muncul di direktori &lt;code&gt;~/.ssh&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Konfigurasi NFS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  4.1 Buat Shared Folder
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt; dan &lt;strong&gt;Worker&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Buat folder dengan nama bebas, misalnya &lt;code&gt;cloud&lt;/code&gt;. Disarankan untuk meletakkannya di direktori &lt;code&gt;~/&lt;/code&gt; atau &lt;code&gt;~/Desktop&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; ~/cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.2 Install NFS Server
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;nfs-kernel-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.3 Konfigurasi File &lt;code&gt;/etc/exports&lt;/code&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Buka &lt;em&gt;file&lt;/em&gt; &lt;code&gt;/etc/exports&lt;/code&gt; dengan vim &lt;code&gt;sudo vim /etc/exports&lt;/code&gt; (atau dengan &lt;em&gt;text editor&lt;/em&gt; yang lainnya).&lt;/p&gt;

&lt;p&gt;Tambahkan baris berkut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&amp;lt;shared folder&amp;gt; &lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;rw,sync,no_root_squash,no_subtree_check&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="c"&gt;# Misal: /home/mpiuser/cloud *(rw,sync,no_root_squash,no_subtree_check)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Selanjutnya jalankan perintah berikut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;exportfs &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl restart nfs-kernel-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.4 Install NFS Client
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Worker&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;nfs-common
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.5 Mount Folder
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Worker&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;mount &amp;lt;server host&amp;gt;:&amp;lt;shared folder di server&amp;gt; &amp;lt;shared folder di client&amp;gt;
&lt;span class="c"&gt;# Misal: sudo mount master:/home/mpiuser/cloud /home/mpiuser/cloud&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lakukan percobaan pembuatan &lt;em&gt;file&lt;/em&gt;/&lt;em&gt;folder&lt;/em&gt; di &lt;em&gt;shared folder&lt;/em&gt; di salah satu komputer. &lt;em&gt;File&lt;/em&gt;/&lt;em&gt;folder&lt;/em&gt; tersebut seharusnya akan muncul di masing-masing komputer di &lt;em&gt;folder&lt;/em&gt; yang sama.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. MPI
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5.1 Install MPI
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt; dan &lt;strong&gt;Worker&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;openmpi-bin libopenmpi-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5.2 Install Library &lt;code&gt;mpi4py&lt;/code&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt; dan &lt;strong&gt;Worker&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Install&lt;/em&gt; &lt;code&gt;mpi4py&lt;/code&gt; dengan &lt;code&gt;pip&lt;/code&gt;. Install package &lt;code&gt;python3-pip&lt;/code&gt; jika belum memiliki &lt;code&gt;pip&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;python3-pip
pip &lt;span class="nb"&gt;install &lt;/span&gt;mpi4py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5.3 Testing MPI
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Lakukan di &lt;strong&gt;Master&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Buat dan edit file &lt;code&gt;test.py&lt;/code&gt; di &lt;em&gt;shared folder&lt;/em&gt; (&lt;code&gt;cloud&lt;/code&gt;).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vim ~/cloud/test.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tabahkan baris berikut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mpi4py&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MPI&lt;/span&gt;
&lt;span class="n"&gt;comm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;MPI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;COMM_WORLD&lt;/span&gt;
&lt;span class="n"&gt;size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;comm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Get_size&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;worker&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;comm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Get_rank&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello world from worker&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;worker&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;of&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jalankan file &lt;code&gt;test.py&lt;/code&gt; dengan MPI.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mpirun &lt;span class="nt"&gt;-np&lt;/span&gt; &amp;lt;jumlah prosesor&amp;gt; &lt;span class="nt"&gt;-host&lt;/span&gt; &amp;lt;daftar host&amp;gt; python3 test.py
&lt;span class="c"&gt;# Misal: mpirun -np 3 -host master,worker1,worker2 python3 test.py&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Output&lt;/em&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Hello world from worker 1 of 4
Hello world from worker 2 of 4
Hello world from worker 0 of 4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Referensi
&lt;/h2&gt;

&lt;p&gt;Tutorial untuk &lt;code&gt;mpi4py&lt;/code&gt; bisa akses &lt;a href="https://mpi4py.readthedocs.io/en/stable/tutorial.html" rel="noopener noreferrer"&gt;https://mpi4py.readthedocs.io/en/stable/tutorial.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Referensi lebih lanjut:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://towardsdatascience.com/parallel-programming-in-python-with-message-passing-interface-mpi4py-551e3f198053" rel="noopener noreferrer"&gt;https://towardsdatascience.com/parallel-programming-in-python-with-message-passing-interface-mpi4py-551e3f198053&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.geeksforgeeks.org/creating-an-mpi-cluster/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/creating-an-mpi-cluster/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>emptystring</category>
    </item>
  </channel>
</rss>
