Arsitektur CPU Hybrid Intel Hadapi Tantangan Penjadwalan saat FreeBSD Tangani Manajemen P-Core dan E-Core

Tim Komunitas BigGo
Arsitektur CPU Hybrid Intel Hadapi Tantangan Penjadwalan saat FreeBSD Tangani Manajemen P-Core dan E-Core

Peralihan Intel ke desain CPU hybrid telah menciptakan teka-teki kompleks bagi para pengembang sistem operasi. Sejak diperkenalkannya prosesor Alder Lake , Intel hampir tidak mungkin membeli chip konsumer tanpa core Performance (P) dan core Efficiency (E). Meskipun arsitektur ini menjanjikan performa dan efisiensi daya yang lebih baik, hal ini telah menimbulkan tantangan signifikan untuk penjadwalan tugas yang masih terus dipecahkan oleh sistem operasi.

Lini Waktu CPU Hybrid Intel

  • 2011: ARM memperkenalkan arsitektur big.LITTLE
  • 2020: Intel merilis Lakefield (ketersediaan terbatas)
  • 2021: Intel meluncurkan Alder Lake dengan adopsi core P+E secara luas
  • 2023: Intel memperkenalkan Meteor Lake dengan core LP-E (Low Power Efficiency)

Kompleksitas Memilih Core yang Tepat

Tantangan mendasar terletak pada keputusan core mana yang harus menangani tugas mana. Tidak seperti CPU tradisional di mana semua core pada dasarnya setara, arsitektur hybrid memaksa scheduler untuk membuat keputusan yang kompleks. Haruskah tugas berumur pendek diberikan ke P-core untuk penyelesaian cepat, atau E-core sudah cukup? Jawabannya tidak mudah, karena diskusi komunitas mengungkapkan sifat bernuansa dari keputusan-keputusan ini.

Bahkan ketika laptop berjalan dengan daya baterai, tidak selalu optimal untuk langsung menggunakan E-core sebagai default. Beberapa tugas sensitif terhadap latensi dan memerlukan respons langsung yang hanya dapat diberikan oleh P-core. Sementara itu, tugas yang berjalan lama yang tampaknya sempurna untuk E-core mungkin sebenarnya mendapat manfaat dari akselerasi P-core untuk menyelesaikan lebih cepat dan menghemat energi secara keseluruhan.

Manajemen Daya Menjadi Lebih Kompleks

Pendekatan tradisional menggunakan level nice CPU - fitur Unix yang memungkinkan pengguna mengatur prioritas tugas - tidak dapat diterjemahkan dengan baik ke arsitektur hybrid. Meskipun beberapa menyarankan menggunakan level nice untuk menentukan penugasan core, pendekatan ini memiliki keterbatasan. Hal ini akan mencegah skenario seperti berjalan di core Performance, tetapi mengalah kepada proses lain dengan cepat, yang mungkin justru dibutuhkan oleh aplikasi tertentu.

Batasan termal menambah lapisan kompleksitas lainnya. Bahkan ketika terhubung ke daya AC, P-core dapat dengan cepat menghabiskan anggaran daya yang tersedia dan menghasilkan panas berlebihan. Ini berarti bahkan tugas berprioritas tinggi mungkin mendapat manfaat dari penggunaan E-core strategis untuk mempertahankan performa berkelanjutan tanpa throttling termal.

Metode Deteksi Jenis Core

  • Core P vs E: Instruksi CPUID leaf (0x1a)
  • Core LP-E: Tidak tersedia metode deteksi yang kompatibel ke depan
  • Thread Director: Komponen perangkat keras yang memberikan umpan balik performa secara real-time

Masalah Keadilan

Salah satu aspek paling menantang melibatkan pemeliharaan keadilan antara tugas-tugas. Scheduler tradisional memastikan akses yang sama ke sumber daya CPU dengan memberikan semua tugas time slice yang sama. Namun, pada arsitektur hybrid, waktu yang sama tidak berarti daya komputasi yang sama. Tugas yang berjalan di P-core akan menyelesaikan lebih banyak pekerjaan dalam time slice yang sama dibandingkan dengan yang berjalan di E-core.

Ini menciptakan masalah mendasar: bagaimana memastikan alokasi sumber daya yang adil ketika sumber daya itu sendiri secara inheren tidak setara? Solusi yang diusulkan FreeBSD melibatkan perhitungan virtual runtime yang memperhitungkan perbedaan performa antara jenis core, tetapi ini merupakan penyimpangan signifikan dari pendekatan penjadwalan saat ini.

Kontrol Pengguna vs. Manajemen Otomatis

Perdebatan meluas ke seberapa banyak kontrol yang harus dimiliki pengguna atas penugasan core. Beberapa pengguna menginginkan kontrol langsung atas core mana yang menangani tugas kritis mereka, terutama dalam skenario di mana masa pakai baterai atau persyaratan performa menjadi yang utama. Namun, sistem biasanya membuat ribuan keputusan penjadwalan per detik, membuat intervensi manual tidak praktis untuk sebagian besar situasi.

Komputer tidak dapat mengetahui kasus-kasus ini.

Ini menyoroti ketegangan antara optimisasi otomatis dan maksud pengguna. Meskipun sistem operasi dapat membuat tebakan yang terdidik tentang persyaratan tugas, mereka tidak memiliki konteks yang dimiliki pengguna tentang kebutuhan dan prioritas langsung mereka.

Kebijakan Penjadwalan yang Diusulkan

  • Performa Maksimum (0): Prioritaskan P-core, jaga semua core tetap sibuk bila memungkinkan
  • Skala Efisiensi (0-100): Rasio yang dapat dikonfigurasi antara performa dan efisiensi
  • Efisiensi Maksimum (100): Jalankan thread hanya pada E-core atau core yang paling efisien yang tersedia

Melihat ke Depan

Saat FreeBSD dan sistem operasi lainnya bekerja untuk mengatasi tantangan-tantangan ini, solusinya kemungkinan akan melibatkan kombinasi deteksi otomatis yang ditingkatkan, kebijakan yang dapat dikonfigurasi pengguna, dan petunjuk tingkat aplikasi. Teknologi Thread Director Intel , yang menyediakan umpan balik real-time tentang karakteristik tugas dan performa core, menawarkan satu jalur ke depan.

Arsitektur CPU hybrid merepresentasikan pergeseran signifikan dalam komputasi, tetapi ekosistem perangkat lunak masih mengejar ketinggalan. Sampai sistem operasi sepenuhnya beradaptasi dengan realitas baru ini, pengguna mungkin terus mengalami performa yang tidak konsisten yang telah membuat beberapa pengembang skeptis terhadap pendekatan hybrid. Keberhasilan arsitektur ini pada akhirnya akan bergantung pada seberapa baik perangkat lunak dapat memanfaatkan potensi memiliki berbagai jenis core yang bekerja sama secara efisien.

Referensi: Scheduling on Hybrid CPUs