batas bawah pada memori akses acak?

8

Inilah pertanyaan yang mungkin naif yang telah menggelitik saya: Apakah ada Ω(n3)batas bawah asimptotik untuk menangani memori besar sewenang-wenang secara acak? Penyebab kepercayaan saya adalah bahwa jalur terpendek ke memori yang disimpan secara fisik harus melalui ruang tiga dimensi, dan diagonal di sini harus memiliki panjang minimal.

Misalnya, ketika menyortir banyak elemen secara sewenang-wenang, maka menangani elemen-elemen ini pada akhirnya harus menelan biaya yang sebanding dengan jarak, dan bahkan jika Anda memiliki kabel berkecepatan tinggi di antara setiap titik di suatu tempat, tampaknya seolah-olah ada batas geometrik yang dibatasi pada lebih tinggi dari Ω(nlgn).

Apa yang salah dengan argumen saya?

Simon Shine
sumber

Jawaban:

6

Jika Anda berbicara tentang latensi, ya, itu kedengarannya benar bagi saya. Batas bawah pada jarak menyiratkan batas bawah pada latensi, karena pertimbangan kecepatan cahaya. Namun dalam prakteknya pertimbangan kecepatan cahaya ini mungkin tidak mendominasi sampai jumlah memori sangat besar.

Omong-omong, situasinya berbeda jika kita berbicara tentang bandwidth (yaitu, jumlah operasi memori akses-acak yang dilakukan per detik), daripada latensi. Satu dapat memproses banyak operasi memori akses-acak secara bersamaan, dengan menggunakan jaringan penyortiran.

Satu peringatan penting adalah bahwa Anda tampaknya mengasumsikan arsitektur di mana kami memiliki satu CPU besar di sebelah kiri dan satu memori besar di sebelah kanan, dan mereka terpisah entah bagaimana. Namun itu belum tentu satu-satunya cara untuk menyusun perhitungan. Seseorang juga dapat menyusun komputasi, misalnya, sebagai komputasi paralel, di mana Anda memiliki 2-D atau 3-D mesh prosesor kecil masing-masing dengan memori kerja lokal mereka sendiri. Sekarang mengakses memori lokal Anda bisa sangat cepat, sedangkan mengakses memori jauh jauh lambat. Dalam beberapa hal masih adan atau n3 terikat operasi, tetapi n jauh lebih kecil untuk memori lokal daripada untuk memori jauh, jadi jika algoritma Anda dirancang sedemikian rupa sehingga memastikan bahwa sebagian besar operasi memori adalah untuk memori lokal, maka Anda mungkin dapat "mengalahkan" batas bawah yang Anda jelaskan (dalam beberapa merasakan).

Dalam arsitektur komputer, orang sering mengukur kinerja suatu sirkuit oleh SEBUAHT ukur: dengan kata lain, area sirkuit (SEBUAH) dikalikan dengan waktu yang dibutuhkan sirkuit untuk menyelesaikan perhitungan (T). Jika Anda suka, Anda dapat menganggap ini sebagai rasio harga terhadap kinerja: itu adalah harga (yang diasumsikan proporsional dengan luas rangkaian) dibagi dengan kinerja (jumlah perhitungan yang dapat dilakukan per kedua, yaitu kebalikan dariT). Arsitektur standar dengan CPU berdaging tunggal dan satu memori besar tidak selalu merupakan arsitektur optimal. Terkadang Anda bisa mendapatkan speedup besar (lebih dari faktor konstan) dengan menggunakan komputasi paralel atau arsitektur lainnya. Ini setidaknya sebagian karena masalah yang Anda sebutkan: jauh lebih cepat untuk mengakses memori yang ada di dekat Anda daripada mengakses memori yang jauh. Caching (misalnya, L1 cache, L2 cache, dll.) Juga didasarkan pada prinsip yang sama.

Di bawah ini adalah contoh makalah dalam dunia kriptografi yang mempertimbangkan desain sirkuit tujuan khusus untuk tugas kriptanalitik, dan mempertimbangkan masalah ini. Misalnya, ia memiliki banyak prosesor, memori besar, dan jaringan pengurutan di antara keduanya untuk merutekan akses memori dari prosesor ke memori. Ini memungkinkan sejumlah besar operasi memori menjadi "dalam penerbangan" sekaligus, meskipun tidak menghilangkan latensi.


Jika Anda ingin terjun lebih jauh ke dalam garis pemikiran ini, ada debat yang menarik (tetapi sebagian besar teoretis) yang dapat dimiliki seseorang mengenai apakah metrik yang tepat adalah area atau volume, yaitu, apakah batas bawah kanan adalah n atau n3. Ya, dunia tiga dimensi, tetapi disipasi panas adalah dua dimensi; kubus besar komputer akan dibatasi oleh kemampuannya untuk menghilangkan panas, yang bersisik dengan luas permukaannya, bukan volumenya. Seseorang dapat terus maju dalam nada ini. Jika ini terdengar seperti topik yang menarik, lihat R.9 (hal.45-46) dari makalah berikut:

DW
sumber
Terima kasih banyak! Ini menambahkan lebih banyak perspektif daripada yang saya bayangkan. :)
Simon Shine
2

Lihat batas bawah terkait untuk perhitungan (dan memori, yang dapat dilihat sebagai bentuk perhitungan) peka terhadap kecepatan komunikasi yang terbatas, batas bawah pada ukuran unit, dan dimensi spasial tetap.

David C. Fisher: Algoritma Paralel Favorit Anda Mungkin Tidak Akan Secepat yang Anda Pikirkan. IEEE Trans. Komputer 37 (2): 211-213 (1988)

Secara khusus, dalam dimensi d, Anda mendapatkan batas bawah Nd+1, jadi akar kubik muncul untuk dimensi dua - sesuai untuk sebagian besar chip semikonduktor saat ini. Watch out for DRAM cube Micron!

Igor Markov
sumber
2

Ikatan asimptotik teoretis juga HAI(n)jika kita ingin menghindari komputer runtuh menjadi lubang hitam .

Jelas pembatasan ini dicabut jika kita mencari tahu lubang cacing, dalam hal ini kita dapat menjalankan komputer kita di alam semesta saku juga.

NXTangl
sumber