Apakah mungkin (slash dapat Anda berikan contoh) untuk mengurangi kompleksitas komputasi dari suatu masalah dengan menggunakan algoritma paralel yang tidak memerlukan sejumlah prosesor relatif terhadap ukuran input?
cc.complexity-theory
dc.parallel-comp
Nick Larsen
sumber
sumber
Jawaban:
Jika yang Anda maksud adalah prosesor O (1), maka tidak ada, kompleksitas komputasi tidak dapat dikurangi.
Cukup sejajarkan pekerjaan yang dilakukan oleh masing-masing prosesor dan lakukan pada satu saja. Jika Anda khawatir tentang sinkronisasi, maka satu prosesor dapat dengan mudah meniru itu.
sumber
Ada bidang muncul dari algoritma paralel tdk halus, di mana waktu berjalan (dan konsumsi sumber daya komputasi lainnya) dianggap sebagai fungsi dari parameter independen n (ukuran input) dan p (jumlah prosesor), sering di bawah asumsi yang alami n >> p .
Titik awal yang baik adalah ke google untuk "paralelisme massal-sinkron".
sumber
Anda mungkin tertarik dengan makalah ini:
Kinerja Superlinear Dalam Komputasi Paralel Real-Time oleh Selim Akl.
sumber
Tapi NO kompleksitas berubah.
sumber
"Anda tidak dapat menghitungnya dengan 1 prosesor, tetapi dapat menghitung dengan 2."
Ini tidak mungkin, dengan asumsi bahwa kedua prosesor adalah TM atau model yang kurang kuat. Dari wikipedia, untuk mesin multi-tape:
Juga untuk mesin multi-head, dari "Simulasi waktu linear mesin turing multihead dengan head - To-head jumps" oleh Walter J. Savitch dan Paul MB Vitányi:
sumber
Mungkin "paralel atau" (diberikan dua fungsi mengembalikan boolean, katakan apakah salah satu dari mereka mengembalikan true, mengingat bahwa salah satu dari mereka, tetapi tidak keduanya, mungkin gagal untuk mengakhiri) mungkin apa yang Anda bicarakan: Anda tidak dapat menghitung dengan 1 prosesor, tetapi dapat menghitung dengan 2.
Namun, ini sangat tergantung pada model komputasi yang akan Anda gunakan, apakah Anda diberikan proses sebagai kotak hitam atau sebagai deskripsi mereka yang dapat Anda interpretasikan sendiri, dll.
sumber