Back to IF3130 Sistem Paralel dan Terdistribusi
Topic
Questions/Cues
Apa peran jaringan interkoneksi?
Apa jenis interkoneksi untuk shared memory?
Apa itu bus vs switched interconnect?
Apa jenis interkoneksi untuk distributed memory?
Apa metrik performa jaringan?
Apa masalah Cache Coherence?
Bagaimana contoh inkonsistensi data?
Apa solusi untuk Cache Coherence?
Apa itu Snooping?
Apa itu Directory-Based Coherence?
Reference Points
- Slides IF3230-02-ParallelHardware-Software-2022.pdf
Jaringan Interkoneksi (Interconnection Networks)
Jaringan interkoneksi adalah “sistem peredaran darah” dari sebuah komputer paralel. Kinerjanya sangat memengaruhi performa sistem secara keseluruhan, baik pada sistem shared memory maupun distributed memory. Jaringan ini dapat dikategorikan berdasarkan arsitektur memori yang didukungnya.
1. Interkoneksi untuk Memori Bersama (Shared Memory)
Menghubungkan cores ke satu pool memori utama yang dapat diakses bersama.
- Bus Interconnect:
- Konsep: Sekumpulan kabel komunikasi paralel yang dipakai bersama oleh semua perangkat (cores, memori) yang terhubung.
- Kelemahan: Kinerja menurun drastis seiring bertambahnya jumlah perangkat karena terjadi kontensi (perebutan) untuk menggunakan bus. Hanya satu komunikasi yang bisa terjadi pada satu waktu.
- Switched Interconnect:
- Konsep: Menggunakan switch untuk mengatur rute data antar perangkat, memungkinkan beberapa komunikasi terjadi secara simultan.
- Contoh (Crossbar): Sebuah switch crossbar menghubungkan setiap core ke setiap modul memori dengan jalur langsung. Ini sangat cepat dan menghindari kontensi, tetapi biaya implementasinya sangat mahal karena jumlah koneksi yang dibutuhkan sangat banyak.
2. Interkoneksi untuk Memori Terdistribusi (Distributed Memory)
Menghubungkan node-node komputasi (yang masing-masing memiliki prosesor dan memori privat).
Direct Interconnect: Setiap switch terhubung langsung ke satu pasang prosesor-memori, dan switch-switch ini saling terhubung satu sama lain membentuk topologi tertentu (misalnya, ring, mesh, atau torus).
Indirect Interconnect: Switch tidak harus terhubung langsung ke prosesor; mereka bisa membentuk jaringan switching tersendiri yang lebih kompleks.
Metrik Performa Jaringan
Latency: Waktu yang dibutuhkan dari saat sumber mulai mengirim data hingga bit pertama data tersebut tiba di tujuan.
Bandwidth: Laju transfer data (misalnya dalam MB/s atau GB/s) setelah koneksi terjalin.
Bisection Width: Ukuran “konektivitas” jaringan. Dihitung dengan membelah jaringan menjadi dua bagian yang sama besar dan menghitung jumlah link (atau total bandwidth dari link tersebut, yang disebut bisection bandwidth) yang terpotong. Semakin besar nilainya, semakin baik kemampuan jaringan untuk menangani komunikasi simultan.
Koherensi Cache (Cache Coherence)
Ini adalah masalah fundamental dan kritis yang hanya terjadi pada sistem shared-memory.
Masalah: Setiap core memiliki cache privat berkecepatan tinggi. Ketika beberapa core menyimpan salinan dari data yang sama dari memori utama di cache mereka, masalah muncul saat salah satu core mengubah data tersebut. Salinan di cache core lain menjadi usang (stale), menyebabkan inkonsistensi data.
Contoh Ilustratif:
- Variabel
xdi memori utama bernilai 2.- Waktu 0:
- Core 0 membaca
x(nilai 2) dan menyimpannya di cache-nya.- Core 1 membaca
x(nilai 2) dan menyimpannya di cache-nya.- Waktu 1:
- Core 0 mengubah nilai
xmenjadi 7 di cache-nya. Sekarang, cache Core 0 punyax=7, tapi cache Core 1 dan memori utama masih punyax=2.- Waktu 2:
Core 1 melakukan operasi
z = 4 * x. Karena Core 1 menggunakan nilaixdari cache-nya yang sudah usang, ia akan menghitungz = 4 * 2 = 8, padahal seharusnyaz = 4 * 7 = 28. Hasilnya salah.Solusi untuk Koherensi Cache
Diperlukan sebuah protokol untuk memastikan semua core melihat data yang konsisten.
Snooping Cache Coherence:
- Cara Kerja: Digunakan pada sistem yang terhubung melalui bus bersama. Setiap cache controller “menguping” (snoops) semua transaksi di bus. Ketika Core 0 memperbarui
x, ia akan menyiarkan perubahan ini ke bus. Cache controller Core 1 yang mendengar siaran ini akan segera menandai salinanxdi cache-nya sebagai tidak valid (invalid). Saat Core 1 butuhxlagi, ia akan mengambil versi terbaru dari memori (atau dari cache Core 0).Directory-Based Cache Coherence:
- Cara Kerja: Tidak memerlukan bus bersama, lebih cocok untuk sistem NUMA yang besar. Sistem memelihara sebuah struktur data terpusat yang disebut direktori. Direktori ini melacak status setiap baris cache (misalnya, di-cache oleh core mana saja). Ketika sebuah variabel diubah, sistem akan memeriksa direktori dan mengirim pesan invalidasi hanya ke core yang relevan.
Jaringan interkoneksi berfungsi sebagai fondasi komunikasi dalam sistem paralel, dengan desain yang berbeda untuk arsitektur shared-memory (bus atau switched) dan distributed-memory (direct atau indirect), yang kinerjanya diukur dengan latency dan bandwidth. Pada sistem shared-memory, penggunaan cache privat oleh setiap core menimbulkan masalah kritis yaitu Cache Coherence, di mana data bisa menjadi tidak konsisten. Masalah ini diselesaikan melalui protokol seperti Snooping (untuk sistem berbasis bus) atau Directory-Based (untuk sistem yang lebih besar) untuk memastikan integritas data di seluruh sistem.
Additional Information
Analogi Sederhana: Snooping vs. Directory
Snooping (Rapat Meja Bundar): Bayangkan sebuah rapat di mana semua orang duduk di satu meja bundar (bus bersama). Jika seseorang ingin mengubah sebuah fakta di dokumen bersama, ia akan mengumumkannya dengan lantang ke seluruh meja. Semua orang yang mendengar akan langsung mencoret fakta lama di catatan mereka. Efektif untuk grup kecil, tetapi akan sangat berisik dan kacau jika pesertanya ratusan.
Directory-Based (Sekretaris Proyek): Bayangkan sebuah proyek besar dengan banyak tim yang bekerja di ruangan terpisah. Ada seorang sekretaris (direktori) yang memegang daftar siapa saja yang sedang memegang salinan dari setiap dokumen. Jika tim A mengubah dokumen X, mereka melapor ke sekretaris. Sekretaris kemudian akan mengirim memo (pesan invalidasi) hanya kepada tim C dan F yang juga memegang salinan dokumen X. Lebih efisien dan terukur untuk sistem yang besar.
Eksplorasi Mandiri
- Topologi Direct Interconnect: Cari gambar untuk topologi jaringan “2D Torus” dan “Hypercube”. Ini adalah contoh topologi populer untuk direct interconnect di superkomputer. Coba pahami bagaimana data bisa berjalan dari satu node ke node lain dan hitung bisection width-nya.
