Anda di halaman 1dari 9

Designing Parallel

Programming
Automatic vs Manual
Paralel program sebenarnya proses manual Low level.
Programmer bertugas identifikasi proses2 yang dibuat paralel
Makan waktu, komplek, error-prone and iterative process/diskrit
Banyak tools sbagai guide serial to parallel seperti compiler paralel.
Full otomatis: analisis->identifikasi kemungkinan dijadikan paralel, ada
kemungkinan error, tidak bgitu baik, tidak fleksible, dsb.
Programmer dedicated: tergantung selera programmer kapan dan dimana
proses paralel terjadi, fleksibel,
Beginner serial -> full automatic
Problem Vs Program
1st step: identifikasi problem baru buat program. Jangan dibalik.
Meskipun terbiasa jd programming serial ada bberapa yg bisa
dijadikan paralel. (data/thread/message/memori)
Sbelum develop, pastikan problem bisa di paralelkan!
Contoh problem paralel
Mengkalkulasi energi potensial 1000 molekul. Cari energi minimum.
Setiap molekul bisa di ketahui energi potensialnya secara independen. Menghitung
energi minimun setiap energi melalui proses array untuk di eksekusi secara paralel.
Non Paralel: S = v.t -> setiap variabel saling terkait (berbanding lurus/terbalik).
Partisi-an
1st, uraikan problem -> diskrit yang bisa dijadikan multiple task
(decomposisi/partitioning)
Domain decomposisi: sekelompok/area molekul.
Functional decomposisi: molekul dengan fungsi tertentu
Domain
Decomposition
*ada beberapa bentuk
Fungsional Decomp.
Contoh real proses ini pada
proses defrag cluster hardisk.
Untuk setiap cluster berdasarkan
fungsi dikelompokan.
Komunikasi: antar task perlu
komunikasi!
Problem->decomposisi!->parallel : task tidak perlu share data!
Contoh: energi minimum molekul tadi, image dan image prosesing, setiap
image bisa di distribusikan multiple task secara independent!
Embarrassingly parallel: jarang/sangat sedikit komunikasi!

Tampilan 3D temperatur: memerlukan infromasi temperatur tetangganya agar


terbentuk pola 3D
Faktor yang harus disadari!
Cost communication: setiap komunikasi ada cost (waktu dan investasi
hardware/software)
Machine cycles sharusnya untuk proses komputasi tapi malah digunakan
untuk menghandle proses komunikasi antar task
Perlu sinkronisasi
Berlomba2 antar task agar dapat berkomunikasi = menurunkan bandwidth
jaringan
Latency Vs Bandwidth
Visibility of communication
Synchronous vs Asynchrounous
Scope of communication
Efficiency of communication
Overhead and complexity

Anda mungkin juga menyukai