Apakah ada perubahan yang dapat dilakukan pada CPU untuk membuatnya berkinerja lebih baik untuk runtime bersamaan seperti Rust? Misalnya, apakah ada perubahan pada implementasi prediksi cabang atau ukuran cache yang akan membantu runtime bersamaan?
Saya memiliki kesan bahwa desain CPU saat ini mungkin lebih dioptimalkan untuk runtime prosedural seperti C. Jika kita malah akan mengoptimalkan untuk runtimes bersamaan, bagaimana CPU terlihat berbeda?
Untuk isntance, prediksi cabang diimplementasikan berdasarkan generalisasi yang diambil dalam makalah penelitian menganalisis kode prosedural. Saya bertanya-tanya apakah abstraksi konkurensi akan menambah set-kerja yang signifikan ke runtime yang berdampak buruk pada algoritma prediksi cabang yang ada. Sebagai contoh, memprediksi dalam loop for adalah satu hal, tetapi ketika target cabang selalu beberapa bagian baru dari memori (grafik, teks, dll), itu akan selalu menjadi cache miss, dan tidak akan pernah ada cabang sejarah untuk itu - karena belum menyentuhnya.
Ini mungkin pertanyaan konyol karena isinya, meskipun mungkin selalu dalam RAM, akan bercabang ke urutan lebih kecil dari yang akan digunakan (setelah itu dimuat ke cache) ... tapi tetap saja, ada harus menjadi batas temporal yang dapat diamati pada konteks yang disimpan dalam cache dan prediktor cabang dalam runtime prosedural, yang akan dimanifestasikan sebagai batas abstraksi dalam lingkungan yang lebih paralel. Jadi saya bertanya-tanya ... Apakah batas-batas ini telah diamati? Apakah ada makalah penelitian yang menganalisis ini?
Apakah arsitektur CPU bias terhadap kode prosedural dibandingkan kode konkuren; atau apakah CPU modern cukup bertujuan umum sehingga bahasa yang sangat konkuren tidak menderita?