Dokumen tersebut membahas tentang konsep parallelism dan concurrency dalam pemrosesan. Secara singkat, concurrency mengacu pada desain alur eksekusi yang memungkinkan beberapa task atau proses berjalan bersamaan, baik secara paralel atau tidak. Sedangkan parallelism mengacu pada memperbanyak jalur kerja untuk memproses banyak data secara bersamaan. Dokumen ini juga menyertakan contoh kode dan referensi untuk lebih mema
3. Apa itu concurrency/
concurrent processing?
• Desain alur eksekusi yang memungkinkan
beberapa task/ process berjalan bersamaan.
• Bisa dengan/ tanpa pemrosesan secara
parallell.
4. Apa itu concurrency/
concurrent processing?
• Contoh kasus:
– Ketika ada user yang membalas suatu postingan, ada
proses insert data ke database, mengirimkan push
notification (GCM) ke pembuat postingan utama dan
mengirim email notifikasi ke pembuat postingan utama.
Agar user segera mendapatkan response maka proses-
proses tersebut dijalankan secara concurrent.
– Aplikasi yang bisa tetap menerima input dari user
selama background process sedang berjalan (lihat
contoh kode di slide 9)
6. Apa itu parallelism/
parallel processing?
• Memperbanyak jalur/ worker untuk memproses
banyak data secara bersamaan.
• Dipengaruhi jumlah worker (Semakin banyak
worker maka semua task semakin cepat
selesai*).
* perlu penilitian terlebih dahulu jumlah worker yang optimal sesuai spesifikasi sistem dan
jenis task yang dikerjakan.
7. Apa itu parallelism/
parallel processing?
• Contoh kasus:
• Untuk mengambil data dari beberapa sumber rss
menggunakan library requests, agar tidak perlu
menunggu satu sama lain selesai, maka dibuatkan
beberapa pool worker agar semua proses dapat
berjalan bersamaan. (lihat contoh kode di slide 9)
8. Apa itu parallelism/
parallel processing?
• Gambaran flow parallel processing
– http://divan.github.io/demos/gifs/parallelism1.gif
9. Source code demo
• Sequence Program
– https://gist.github.com/irkho/0771932e90aaf9ebbae3c28
• Parallel Program
– https://gist.github.com/irkho/46af21da853960d7ebb3d7e
• Concurrent Program
– https://gist.github.com/irkho/0d77a2bbc31f621522ec6fa