Android

Chip Multicore Pose Tantangan Besar Berikutnya untuk Industri

Understand OS series | Part 1 | Operating system overview | SystemAC

Understand OS series | Part 1 | Operating system overview | SystemAC
Anonim

Menambahkan lebih banyak inti pemrosesan telah muncul sebagai cara utama meningkatkan kinerja server dan chip PC, tetapi manfaatnya akan sangat berkurang jika industri tidak dapat mengatasi tantangan perangkat keras dan pemrograman tertentu, peserta di Multicore Expo di Santa Clara, California, mengatakan minggu ini.

Sebagian besar perangkat lunak saat ini masih ditulis untuk chip single-core dan perlu ditulis ulang atau diperbarui untuk mengambil keuntungan dari meningkatnya jumlah core yang dibuat oleh Intel, Sun Microsystems dan pembuat chip lainnya. produk mereka, kata Linley Gwennap, presiden dan analis utama di The Linley Group.

Aplikasi off-the-shelf akan sering berjalan lebih cepat pada CPU dengan hingga empat core prosesor, tetapi di luar kinerja itu turun dan bahkan mungkin memburuk karena lebih banyak inti ditambahkan, katanya. Laporan terbaru dari Gartner juga menyoroti masalah.

Pembuat chip dan pembangun sistem telah memulai upaya untuk mendidik pengembang dan memberi mereka alat yang lebih baik untuk pemrograman multicore. Setahun yang lalu, Intel dan Microsoft mengatakan mereka akan menginvestasikan US $ 20 juta untuk membuka dua pusat penelitian di universitas AS yang ditujukan untuk mengatasi masalah tersebut. Kurangnya alat pemrograman multicore untuk pengembang mainstream mungkin adalah tantangan terbesar yang dihadapi industri saat ini, kata Gwennap.

Menulis aplikasi dengan cara yang memungkinkan bagian yang berbeda dari tugas komputasi, seperti memecahkan masalah matematika atau rendering gambar, dibagi dan dieksekusi secara bersamaan di beberapa core bukanlah hal baru. Tetapi model ini, sering disebut komputasi paralel, telah dibatasi sejauh ini terutama untuk lingkungan komputasi khusus berperforma tinggi.

Namun dalam beberapa tahun terakhir, Intel dan Advanced Micro Devices telah menambahkan inti sebagai cara yang lebih hemat daya untuk meningkatkan kinerja chip, perubahan yang ditandai dari praktik tradisional mereka yang meningkatkan clock speed. Intel sedang membangun delapan core ke chip Nehalem-EX yang akan datang, dan AMD sedang merancang chip 12-core untuk server. Mereka juga menambahkan kemampuan multi-threading, yang memungkinkan masing-masing inti bekerja pada beberapa baris kode pada saat yang sama.

Itu berarti aplikasi mainstream harus ditulis dengan cara yang berbeda untuk mengambil keuntungan dari core tambahan yang tersedia.. Pekerjaan ini sulit dilakukan dan menciptakan potensi untuk jenis baru untuk bug perangkat lunak. Salah satu yang paling umum adalah "kondisi balapan," di mana output perhitungan bergantung pada berbagai elemen tugas yang diselesaikan dalam urutan tertentu. Jika tidak, kesalahan dapat terjadi.

Beberapa alat pemrograman paralel tersedia, seperti Intel Parallel Studio untuk C dan C ++. Vendor lain di luar angkasa adalah Codeplay, Software Polycore, dan Clik Arts. Ada juga model pemrograman paralel berbasis C baru yang disebut OpenCL, yang dikembangkan oleh The Khronos Group dan didukung oleh Apple, Intel, AMD, Nvidia dan lainnya.

Tetapi banyak alat yang tersedia masih bekerja dalam proses, peserta di Expo Multicore berkata. Penyusun perangkat lunak harus mampu mengidentifikasi kode yang dapat diparalelkan, dan kemudian melakukan pekerjaan paralelisasi tanpa campur tangan manual dari pemrogram, kata Shay Gal-on, direktur rekayasa perangkat lunak di EEMBC, sebuah organisasi nirlaba yang mengembangkan standar untuk chip tertanam.

Meskipun kurangnya alat, beberapa vendor perangkat lunak telah menemukan relatif mudah untuk membuat kode paralel untuk pekerjaan komputasi sederhana, seperti pemrosesan gambar dan video, kata Gwennapp. Adobe telah menulis ulang Photoshop dengan cara yang dapat memberikan tugas seperti pembesaran dan penyaringan gambar ke inti x86 tertentu, meningkatkan kinerja hingga tiga hingga empat kali, katanya.

"Jika Anda melakukan video atau grafik, Anda dapat mengambil set yang berbeda dari piksel dan menetapkan mereka ke CPU yang berbeda. Anda bisa mendapatkan banyak paralelisme seperti itu, "katanya. Tetapi untuk tugas yang lebih kompleks, sulit untuk menemukan pendekatan tunggal untuk mengidentifikasi urutan perhitungan yang dapat diparalelkan dan kemudian membaginya.

Sementara sisi pemrograman mungkin menghadirkan tantangan terbesar, ada juga perubahan perangkat keras yang perlu dibuat, untuk mengatasi masalah seperti latensi memori dan kecepatan bus lambat. "Ketika Anda menambahkan lebih banyak CPU pada chip, Anda membutuhkan bandwidth memori untuk mendukungnya," kata Gwennap.

Berbagi satu memori cache atau bus data di antara beberapa inti dapat menciptakan kemacetan, yang berarti inti ekstra akan sebagian besar terbuang. "Pada saat Anda mendapatkan enam atau delapan CPU, mereka menghabiskan seluruh waktu mereka berbicara satu sama lain dan tidak bergerak maju untuk menyelesaikan pekerjaan apa pun," katanya.

Tanggung jawab akhirnya dapat terletak pada pengembang untuk menjembatani kesenjangan antara perangkat keras dan perangkat lunak untuk menulis program paralel yang lebih baik. Banyak pengkode tidak mempercepat pada perkembangan terbaru dalam desain perangkat keras, Gal-on mengatakan. Mereka harus membuka lembar data dan mempelajari arsitektur chip untuk memahami bagaimana kode mereka dapat berkinerja lebih baik, katanya.