Uploaded by fajarsub06

Paraller Processing - Arsitektur Komputer

advertisement
EBOOK SUMMARY CHAPTER-3
PARALLER PROCESSING
(ARSITEKTUR KOMPUTER)
PENYUSUN
Fajar Subeki 41519120052
Hasburrahman 41519120055
Ali Sudali 41519120059
Di dalam suatu sistem komputer terdapat sebuah bahasa yang bekerja di belakang itu.
Yaitu bahasa pemrograman. Bahasa pemrograman mengharuskan pemrogram untuk
menentukan algoritma sebagai urutan instruksi. Prosesor menjalankan program dengan
menjalankan mesin instruksi secara berurutan dan satu per satu. Setiap instruksi dieksekusi di
urutan operasi (mengambil instruksi, mengambil operan, melakukan operasi, menyimpan
hasil).
1) MULTIPLE PROCESSOR ORGANIZATIONS
Jenis Sistem Processor Paraller :
Taksonomi yang pertama kali diperkenalkan oleh Flynn [FLYN72] masih menjadi
cara yang paling umum untuk mengkategorikan sistem dengan kemampuan
pemrosesan palarel. Kategori Flynn dalam sistem komputer:
A) Single Instruction, Single Data (SISD) Stream, Prosesor tunggal menjalankan
instruksi tunggal streaming untuk mengoperasikan data yang disimpan dalam satu memori.
B) Single Instruction, Multiple Data (SIMD) Stream, Instruksi mesin tunggal
mengontrol eksesuksi simultan dari sejumlah elemen pemrosesan dengan basis
langkah yang sama. Prosessor vektor dan array termasuk dalam kategori ini.
C) Multiple Instruction, Single Data (MISD) Stream, Urutan data ditransmisikan ke satu set
prosesor, yang masing-masing menjalankan urutan instruksi yang berbeda.
D) Multiple Instruction, Multiple Data (MIMD) Stream, Satu set processor dijalankan secara
bersamaan urutan instruksi yang berbeda pada kumpulan data yang berbeda. Contonya adalah
SMP, Cluster, dan sistem NUMA.
Dengan penjelasan diatas, dapat disumpulkan bahwa MMID, prosessor memiliki tujuan
umum, masing-masing dapat memproses semua instruksi yang diperlukan untuk melakukan
transformasi data yang sesuai. MMID bisa lebih jauh dibagi lagi dengan cara prosessor
berkomunikasi.
2) SYMMETRIC MULTIPROCESSOR
Komputer pribadi saat ini berisi file mikroprocessor tujuan umum tunggal. Sebagai tuntutan
untuk peningkatan kinerja dan sebagai biaya mikroprocessor terus menurun, vendor telah
memperkenalkan sistem dengan organisasi SMP. Berikut karakteristik SMP :
1. Ada dua atau lebih prosesor serupa dengan kemampuan yang sebanding.
2. Prosesor ini berbagi memori utama dan fasilitas I / O yang sama dan saling terhubung oleh
bus atau skema koneksi internal lainnya, sehingga waktu akses memori kira-kira sebesar
sama untuk setiap prosesor.
3. Semua prosesor berbagi akses ke perangkat I / O, baik melalui saluran yang sama atau
melalui saluran berbeda yang menyediakan jalur ke perangkat yang sama.
4. Semua prosesor dapat melakukan fungsi yang sama (karenanya disebut simetris).
5. Sistem dikendalikan oleh sistem operasi terintegrasi yang menyediakan interaksi antara
prosesor dan program mereka di tingkat pekerjaan, tugas, file, dan elemen data.
Keunggulan SMP :
1. Performance, sistem dengan banyak processor akan menghasilkan kinerja yang lebih
besar dari satu dengan processor tunggal dengan tipe yang sama
2. Availability, dalam multiprosesor simetris, karena semua prosesor dapat melakukan
hal yang sama fungsi, kegagalan prosesor tunggal tidak menghentikan mesin.
3. Incremental Growth, pengguna dapat meningkatkan kinerja sistem dengan
menambahkan prosesor tambahan
4. Scaling, An attractive feature of an SMP is that the existence of multiple processors is
transparent to the user. The operating system takes care of scheduling threads or
processes on individual processors, and of synchronization among processors.
Bus terdiri dari jalur kontrol, alamat, dan data. Untuk memfasilitasi transfer DMA dari
subsistem I/O ke processor, terdapat beberapa fitur-fitur tersebut yaitu : Addressing,
Arbitration, Time-Sharing.
Organisasi bus memiliki beberapa fitur menarik:
a. Simplicity : Ini adalah pendekatan paling sederhana untuk organisasi multiprosesor.
Antarmuka fisik dan logika pengalamatan, arbitrase, dan pembagian waktu dari setiap
prosesor tetap sama seperti di sistem prosesor tunggal.
b. Flexibility : Secara umum mudah untuk memperluas sistem dengan memasang lebih
banyak prosesor ke bus.
c. Realibility : Bus pada dasarnya adalah media pasif, dan kegagalan perangkat apa pun
yang terpasang seharusnya tidak menyebabkan kegagalan seluruh sistem.
Sistem operasi SMP mengelola prosesor dan sumber daya komputer lainnya sehingga
pengguna merasakan sistem operasi tunggal yang mengendalikan sumber daya sistem.
Sebenarnya, konfigurasi seperti itu seharusnya muncul sebagai sistem multiprogramming
prosesor tunggal.
3) CACHE COHERANCE AND THE MESI PROTOCOL
Dalam sistem multiprocessor kontemporer, biasanya memiliki satu atau dua tingkat cache
terkait dengan setiap processor. Organisasi ini penting untuk mencapai kinerja yang wajar. Itu
tidak, bagaimanapun, membuat masalah yang dikenal sebagai masalah koherensi cache.
a. Software Solutions
Skema koherensi cache perangkat lunak berusaha untuk menghindari kebutuhan sirkuit
perangkat keras tambahan dan logika dengan mengandalkan kompiler dan sistem operasi
untuk menangani masalah tersebut. Pendekatan perangkat lunak menarik karena overhead
pendeteksian masalah potensial ditransfer dari run time ke waktu kompilasi, dan
kompleksitas desain ditransfer dari perangkat keras ke perangkat lunak.
b. Hardware Solutions
Solusi berbasis perangkat keras umumnya disebut sebagai protokol koherensi cache.
Solusi ini memberikan pengenalan dinamis pada saat menjalankan kondisi potensi tidak
konsistenan. Hardware ini dapat dibagi menjadi 2 kategori yaitu Directory Protocol and
Snoopy Protocol.
c. Directory Protocols
Protokol direktori mengumpulkan dan memelihara informasi tentang di mana salinan
baris berada. Khas, ada pengontrol terpusat yang merupakan bagian dari pengontrol
memori utama, dan direktori yang disimpan di memori utama. Direktori berisi informasi
negara global tentang isi berbagai lokal cache.
D. Snoopy Protocols
Protokol Snoopy mendistribusikan tanggung jawab untuk menjaga koherensi cache di
antara semua cache pengontrol dalam multiprosesor. Cache harus mengenali ketika
sebuah baris yang dimilikinya dibagikan dengan yang lain cache. Ketika tindakan
pembaruan dilakukan pada baris cache bersama, itu harus diumumkan ke semua yang lain
cache dengan mekanisme siaran.
E. The MESI Protocol
Untuk memberikan konsistensi cache pada SMP, cache data sering kali mendukung
protokol yang dikenal sebagai MESI. Untuk MESI, cache data menyertakan dua bit status
per tag, sehingga setiap baris dapat berada di salah satu dari empat menyatakan:
Modiefied : Baris di cache telah dimodifikasi (berbeda dari memori utama) dan tersedia
hanya di cache ini.
Exclusive : Baris di cache sama dengan baris di memori utama dan tidak ada di mana pun
cache lainnya.
Shared: Baris di cache sama dengan yang ada di memori utama dan mungkin ada di baris
lain
cache.
Invalid: Baris di cache tidak berisi data yang valid
Ketika terjadi kesalahan baca di cache lokal, prosesor memulai pembacaan memori untuk
membaca baris memori utama yang berisi alamat yang hilang. Prosesor memasukkan
sinyal di bus yang memberi tahu semua prosesor / unit cache lain untuk mengintip
transaksi.
4) Multithreading dan Multiprosesor Chip
Ukuran kinerja yang paling penting untuk prosesor adalah kecepatan di mana ia menjalankan
instruksi. Ini dapat dinyatakan sebagai.
MIPS rate = f × IPC
di mana f adalah frekuensi clock prosesor dalam MHz, dan IPC (instruksi per siklus) adalah
rata-rata jumlah instruksi yang dieksekusi per siklus. Dengan demikian, perancang telah
mengejar tujuan peningkatan kinerja di dua bidang: meningkatkan frekuensi clock dan
meningkatkan jumlah instruksi yang dijalankan atau, lebih tepatnya, jumlah instruksi yang
diselesaikan selama siklus prosesor. Seperti yang telah kita lihat di bab sebelumnya, desainer
telah meningkatkan IPC dengan menggunakan pipa instruksi dan kemudian dengan
menggunakan beberapa pipa instruksi paralel dalam arsitektur superscalar. Dengan desain
pipa dan multi-pipa, masalah utamanya adalah memaksimalkan pemanfaatan setiap tahap
pipeline. Untuk meningkatkan hasil, desainer telah menciptakan mekanisme yang lebih
kompleks, seperti mengeksekusi beberapa instruksi dalam urutan yang berbeda dari cara
mereka muncul dalam aliran instruksi dan memulai eksekusi instruksi yang mungkin tidak
pernah diperlukan. Tetapi seperti yang telah dibahas di Bagian 2.2, pendekatan ini mungkin
mencapai batas karena kompleksitas dan masalah konsumsi daya. Pendekatan alternatif, yang
memungkinkan tingkat tinggi paralelisme tingkat instruksi tanpa meningkatkan kompleksitas
rangkaian atau konsumsi daya, disebut multithreading. Intinya, aliran instruksi dibagi
menjadi beberapa aliran yang lebih kecil, yang dikenal sebagai utas, sehingga utas dapat
dieksekusi secara paralel. Variasi desain multithreading tertentu, yang direalisasikan dalam
sistem komersial dan sistem eksperimental, sangat luas. Pada bagian ini, kami memberikan
survei singkat tentang konsep-konsep utama.
Multithreading implisit dan eksplisit.
Konsep utas yang digunakan dalam membahas prosesor multithread mungkin atau mungkin
tidak sama dengan konsep utas perangkat lunak dalam sistem operasi multiprogram. Akan
berguna untuk mendefinisikan istilah secara singkat:

Proses: Contoh dari program yang berjalan di komputer. Sebuah proses mewujudkan
dua karakteristik utama:
- Kepemilikan sumber daya: Sebuah proses mencakup ruang alamat virtual untuk
menampung gambar proses; image proses adalah kumpulan program, data, stack, dan atribut
yang menentukan proses. Dari waktu ke waktu, suatu proses dapat dialokasikan kendali atau
kepemilikan sumber daya, seperti memori utama, saluran I / O, perangkat I / O, dan file.
- Penjadwalan / eksekusi: Eksekusi suatu proses mengikuti jalur eksekusi (jejak) melalui satu
atau lebih program. Eksekusi ini mungkin diselingi dengan proses lainnya. Dengan demikian,
proses memiliki status eksekusi (Berjalan, Siap, dll.) Dan prioritas pengiriman dan
merupakan entitas yang dijadwalkan dan dikirim oleh sistem operasi.

Proses Beralih : Sebuah operasi yang mengalihkan prosesor dari satu proses ke proses
lainnya, dengan menyimpan semua data kontrol proses, register, dan informasi
lainnya untuk yang pertama dan menggantinya dengan informasi proses untuk yang
kedua.
3 Istilah saklar konteks sering ditemukan dalam literatur OS dan buku teks. Sayangnya,
meskipun sebagian besar literatur menggunakan istilah ini untuk mengartikan apa yang di sini
disebut sakelar proses, sumber lain menggunakannya untuk mengartikan sakelar ulir. Untuk
menghindari ambiguitas, istilah tersebut tidak digunakan dalam buku ini.

Urutan: Unit kerja yang dapat dikirim dalam suatu proses. Ini mencakup konteks
prosesor (yang mencakup penghitung program dan penunjuk tumpukan) dan area
datanya sendiri untuk tumpukan (untuk mengaktifkan percabangan subrutin). Sebuah
urutan dijalankan secara berurutan dan dapat diinterupsi sehingga prosesor dapat
beralih ke urutan lainnya.

Beralih ke urutan: Tindakan mengalihkan kontrol prosesor dari satu urutan ke urutan
lainnya dalam proses yang sama. Biasanya, jenis sakelar ini jauh lebih murah daripada
sakelar proses.
Dengan demikian, urutan berkaitan dengan penjadwalan dan eksekusi, sedangkan proses
yang bersangkutan dengan penjadwalan / eksekusi dan kepemilikan sumber daya.Beberapa
urutan dalam proses berbagi sumber daya yang sama.Inilah sebabnya mengapa beralih urutan
jauh lebih sedikit memakan waktu daripada proses beralih.Sistem operasi tradisional, seperti
versi unix sebelumnya, tidak mendukung thread.Sebagian besar sistem operasi modern,
seperti Linux, versi unix lainnya, dan Windows, melakukan thread dukungan.Perbedaan
dibuat antara thread tingkat pengguna, yang terlihat oleh program aplikasi, dan thread tingkat
kernel, yang hanya terlihat oleh sistem operasi.Keduanya dapat disebut sebagai thread
eksplisit, didefinisikan dalam perangkat lunak.
Pendekatan untuk Eksplisit Multithreading
Minimal, prosesor multithreaded harus menyediakan penghitung program terpisah untuk
setiap urutan eksekusi yang akan dijalankan secara bersamaan.Desain berbeda dalam jumlah
dan jenis perangkat keras tambahan yang digunakan untuk mendukung urutan eksekusi
bersamaan.Secara umum, pengambilan instruksi dilakukan secara urutan.Prosesor
memperlakukan setiap urutan secara terpisah dan dapat menggunakan sejumlah teknik untuk
mengoptimalkan Urutan eksekusi tunggal, termasuk prediksi cabang, mendaftar mengganti
nama, dan teknik superscalar.Apa yang dicapai adalah paralelisme tingkat urutan, yang dapat
memberikan kinerja yang sangat meningkat ketika digabungkan dengan paralelisme tingkat
instruksi.
Secara garis besar, ada empat pendekatan utama untuk multithreading:

Multithreading berselang : Ini juga dikenal sebagai multithreading berbutir halus.
Prosesor berurusan dengan dua atau lebih konteks utas sekaligus, beralih dari satu
utas ke utas lainnya di setiap siklus jam. Jika utas diblokir karena ketergantungan data
atau latensi memori, utas itu dilewati dan utas siap dijalankan.



Multithreading yang diblokir: Ini juga dikenal sebagai multithreading berbutir kasar.
Urutan intruksi dijalankan secara berturut-turut hingga terjadi peristiwa yang dapat
menyebabkan penundaan, seperti cache yang hilang. Peristiwa ini menyebabkan
peralihan ke urutan lain. Pendekatan ini efektif pada prosesor berurutan yang akan
menghentikan piap untuk peristiwa penundaan seperti cache yang hilang.
Multithreading simultan (SMT): Instruksi dikeluarkan secara bersamaan dari beberapa
urutan ke unit eksekusi prosesor superscalar. Ini menggabungkan kemampuan
masalah instruksi superscalar yang luas dengan penggunaan beberapa konteks utas.
Multiprocessing chip: Dalam hal ini, banyak inti diterapkan pada satu chip dan setiap
inti menangani urutan terpisah. Keuntungan dari pendekatan ini adalah bahwa area
logika yang tersedia pada sebuah chip digunakan secara efektif tanpa bergantung pada
kompleksitas yang terus meningkat dalam desain pipa.
Sebaliknya, prosesor dapat dengan cepat beralih dari satu urutan ke urutan lainnya,
menggunakan kumpulan register dan informasi konteks lain yang berbeda. Ini menghasilkan
pemanfaatan yang lebih baik dari sumber daya eksekusi prosesor dan menghindari hukuman
yang besar karena pergantian tidak ditemukan dan peristiwa latensi lainnya. Pendekatan SMT
melibatkan eksekusi instruksi simultan yang sebenarnya dari utas yang berbeda,
menggunakan sumber daya eksekusi yang direplikasi. Multiprocessing chip juga
memungkinkan eksekusi instruksi secara bersamaan dari urutan yang berbeda.
5) CLUSTER
Perkembangan penting dan relatif baru dalam desain sistem komputer adalah clustering.
Clustering adalah alternatif dari multiprocessing simetris sebagai pendekatan untuk
menyediakan kinerja tinggi dan ketersediaan tinggi, dan sangat menarik untuk aplikasi server.
Kita dapat mendefinisikan cluster sebagai sekelompok komputer yang saling berhubungan
dan bekerja bersama sebagai sumber daya komputasi terpadu yang dapat menciptakan ilusi
menjadi satu mesin. Istilah seluruh komputer berarti sistem yang dapat berjalan sendiri,
terlepas dari cluster; Dalam literatur, setiap komputer dalam cluster biasanya disebut sebagai
node.
Mencantumkan empat manfaat yang dapat dicapai dengan pengelompokan. Ini juga dapat
dianggap sebagai tujuan atau persyaratan desain:


Skalabilitas mutlak: Anda dapat membuat cluster besar yang jauh melampaui
kekuatan mesin mandiri terbesar sekalipun. Sebuah cluster dapat memiliki puluhan,
ratusan, atau bahkan ribuan mesin, yang masing-masing merupakan multiprosesor.
Skalabilitas tambahan: Sebuah cluster dikonfigurasi sedemikian rupa sehingga
dimungkinkan untuk menambahkan sistem baru ke cluster secara bertahap. Dengan
demikian, pengguna dapat memulai dengan sistem sederhana dan


mengembangkannya sesuai kebutuhan, tanpa harus melalui peningkatan besar di
mana sistem kecil yang ada diganti dengan sistem yang lebih besar.
Ketersediaan tinggi: Karena setiap node dalam cluster adalah komputer mandiri,
kegagalan satu node tidak berarti hilangnya layanan. Pada banyak produk, toleransi
kesalahan ditangani secara otomatis dalam perangkat lunak.
Harga / kinerja unggul: Dengan menggunakan blok penyusun komoditas,
dimungkinkan untuk menyusun kluster dengan daya komputasi yang sama atau lebih
besar daripada satu mesin besar, dengan biaya yang jauh lebih rendah.
Metode umum yang lebih lama yang dikenal sebagai siaga pasif, adalah dengan membuat
satu komputer menangani semua beban pemrosesan sementara komputer lain tetap tidak
aktif, bersiap untuk mengambil alih jika komputer utama gagal. Untuk mengoordinasikan
mesin, aktif, atau primer, sistem secara berkala mengirimkan pesan "detak jantung" ke mesin
siaga. Jika pesan ini berhenti tiba, standby mengasumsikan bahwa server utama telah gagal
dan menjalankannya sendiri. Pendekatan ini meningkatkan ketersediaan tetapi tidak
meningkatkan kinerja. Lebih lanjut, jika satu-satunya informasi yang dipertukarkan antara
dua sistem adalah pesan detak jantung, dan jika kedua sistem tidak berbagi disk yang sama,
maka standby menyediakan cadangan fungsional tetapi tidak memiliki akses ke database
yang dikelola oleh primer.
Siaga pasif umumnya tidak disebut sebagai cluster. Istilah cluster dicadangkan untuk
beberapa komputer yang saling berhubungan yang semuanya aktif melakukan pemrosesan
sambil mempertahankan citra satu sistem ke dunia luar. Istilah aktif sekunder sering
digunakan untuk merujuk pada konfigurasi ini. Tiga klasifikasi pengelompokan dapat
diidentifikasi: server terpisah, tidak berbagi apa-apa, dan memori bersama.
6) NUNIFORM MEMORY ACCESS
Dalam hal produk komersial, dua pendekatan umum untuk menyediakan Sistem multi-prosesor
untuk mendukung aplikasi adalah SMP dan cluster. Selama beberapa tahun, pendekatan lain,
yang dikenal sebagai No uniform memory access (NUMA), telah menjadi subjek penelitian
dan Produk NUMA komersial sekarang tersedia. definisi istilah yang sering ditemukan dalam
literatur NUMA :



Akses memori seragam (UMA) : Semua prosesor memiliki akses ke semua bagian
memori utama menggunakan Beban dan penyimpanan. Waktu akses memori prosesor
ke semua wilayah memori adalah sama.
Tidak ada akses memori seragam (NUMA) : Semua prosesor memiliki akses ke
semua bagian dari memori utama Menggunakan beban dan penyimpanan. Waktu
akses memori prosesor berbeda-beda, bergantung pada wilayah mana dari memori
utama yang diakses.
Cache-coherent NUMA (CC-NUMA) : Sistem NUMA di mana koherensi cache
dipertahankan Di antara cache dari berbagai prosesor.
Sistem NUMA tanpa koherensi cache kurang lebih sama dengan cluster. Produk komersial
yang mendapat banyak perhatian baru-baru ini adalah sistem CC-NUMA, yang sangat berbeda
dari SMP dan cluster. Biasanya, tapi sayangnya tidak selalu, sistem seperti itu sebenarnya
disebut dalam literatur komersial sebagai sistem CC-NUMA. Bagian ini hanya berkaitan
dengan Sistem CC-NUMA.
Motivasi
Dengan sistem SMP, ada batasan praktis untuk jumlah prosesor yang dapat digunakan. Skema
cache yang efektif mengurangi lalu lintas bus antara salah satu prosesor dan memori utama.
Seiring dengan meningkatnya jumlah prosesor, lalu lintas bus ini juga meningkat. Penurunan
kinerja tampaknya membatasi jumlah prosesor dalam Konfigurasi SMP antara 16 dan 64
prosesor.
Batasan prosesor di SMP adalah salah satu motivasi pendorong di balik pengembangan Sistem
cluster. Perincian memori ini memengaruhi kinerja dan, untuk mencapai kinerja maksimum,
perangkat lunak harus Disesuaikan dengan lingkungan ini. Tujuan dengan NUMA adalah
untuk mempertahankan memori seluruh sistem yang transparan sambil mengizinkan beberapa
node Multiprosesor, masing-masing dengan busnya sendiri atau sistem interkoneksi internal
lainnya.
Organisasi
Gambar 20.12 menggambarkan organisasi CC-NUMA yang khas. Jadi, setiap node berisi
banyak prosesor, masing-masing dengan cache L1 dan L2 sendiri, ditambah memori utama.
Misalnya, setiap node Silicon Graphics Origin menyertakan dua Prosesor MIPS R10000; setiap
node NUMA-Q Sequent mencakup empat prosesor Pentium II.
Gambar 20.12 Organisasi CC-NUMA
Setiap node dalam sistem CC-NUMA menyertakan beberapa memori utama. Namun, dari
sudut pandang Prosesor, hanya ada satu memori yang dapat dialamatkan, dengan setiap lokasi
memiliki alamat seluruh Sistem yang unik. Jika jalur yang diinginkan ada di Bagian lokal dari
memori utama, jalur tersebut diambil melintasi bus lokal. Dalam konfigurasi ini, koherensi
cache menjadi perhatian utama. contoh yang diambil dari [PFIS98]. Misalkan prosesor 3 pada
node 2 (P2-3) meminta lokasi memori 798, yang ada di memori node 1. Urutan berikut Terjadi
:
1. P2-3 mengeluarkan permintaan baca pada bus snoopy node 2 untuk lokasi 798.
2. Direktori pada node 2 melihat permintaan tersebut dan mengenali bahwa lokasinya ada di
node 1.
3. Direktori node 2 mengirimkan permintaan ke node 1, yang diambil oleh direktori node 1.
4. Direktori node 1, yang bertindak sebagai pengganti P2-3, meminta isi 798, seolah-olah itu
adalah Prosesor.
5. Memori utama node 1 merespons dengan meletakkan data yang diminta di bus.
6. Direktori node 1 mengambil data dari bus.
7. Nilai tersebut ditransfer kembali ke direktori node 2.
8. Direktori node 2 menempatkan data kembali pada bus node 2, bertindak sebagai pengganti
memori Yang awalnya menahannya.
9. Nilai diambil dan ditempatkan di cache P2-3 dan dikirim ke P2-3.
Urutan sebelumnya menjelaskan bagaimana data dibaca dari memori jarak jauh menggunakan
Mekanisme perangkat keras yang membuat transaksi transparan ke prosesor. Kami hanya
membuat sedikit pernyataan umum di sini. Pertama, sebagai bagian dari urutan sebelumnya,
Direktori node 1 menyimpan catatan bahwa beberapa cache jarak jauh memiliki salinan baris
yang berisi lokasi 798. Misalnya, jika modifikasi Selesai di cache, fakta ini dapat disiarkan ke
node lain. Setiap direktori node yang menerima Siaran seperti itu kemudian dapat menentukan
apakah ada cache lokal yang memiliki baris itu dan, jika demikian, menyebabkannya
dibersihkan.
NUMA Pro dan Kontra
Keuntungan utama dari sistem CC-NUMA adalah dapat memberikan kinerja yang efektif pada
tingkat paralelisme yang lebih tinggi daripada SMP, tanpa memerlukan perubahan perangkat
lunak yang besar. Dengan beberapa node NUMA, lalu lintas Bus pada setiap node terbatas
pada permintaan yang dapat ditangani bus. Namun, jika banyak dari akses memori ke node
jauh, kinerja mulai rusak. Ada alasan untuk percaya bahwa kerusakan kinerja ini dapat
dihindari.
Pertama, penggunaan cache L1 dan L2 dirancang untuk meminimalkan semua akses memori,
termasuk yang jarak jauh. Jika banyak perangkat lunak memiliki lokalitas Temporal yang baik,
maka akses memori jarak jauh tidak boleh berlebihan. Kedua, jika perangkat lunak memiliki
lokalitas spasial yang baik, dan jika memori virtual digunakan, kemudian data yang diperlukan
untuk aplikasi akan berada di halaman yang sering digunakan dalam jumlah terbatas yang
awalnya dapat dimuat ke dalam memori lokal ke aplikasi yang sedang berjalan. Para desainer
Sequent melaporkan bahwa lokasi spasial seperti itu memang muncul dalam aplikasi
Representatif.
Download