Laman web

Parallelism Needs Killer Application for Mass adoption

18. Domain Specific Languages and Autotuning

18. Domain Specific Languages and Autotuning
Anonim

Penambahan teras pelbagai ke mikropemproses telah mencipta peluang yang besar untuk pengaturcaraan selari, tetapi aplikasi pembunuh diperlukan untuk mendorong konsep ke arus utama, kata para penyelidik semasa perbincangan panel di persidangan Chip Hot.

Kebanyakan perisian hari ini masih ditulis untuk pelaksanaan dan model pengaturcaraan perlu diubah untuk memanfaatkan perkakasan yang lebih cepat dan semakin banyak teras pada cip, kata para panelis. Pengaturcara perlu menulis kod dengan cara yang membolehkan tugas dibahagikan dan dijalankan secara serentak di seluruh teras dan benang.

Banyak tumpuan dan wang telah pergi ke mesin bina dan bahasa pengaturcaraan yang lebih baik, kata David Patterson, komputer profesor sains di University of California, Berkeley, pada persidangan di Stanford pada hari Isnin. Perhatian yang agak sedikit telah dibayar untuk menulis program desktop secara selari, tetapi aplikasi seperti permainan dan muzik dapat mengubahnya. Pengguna program sedemikian menuntut prestasi masa nyata yang terbaik, jadi pengaturcara mungkin perlu mengadaptasi model-model yang memecah tugas-tugas melalui beberapa benang dan teras.

Sebagai contoh, bentuk-bentuk paralelisme baru dapat membawa peningkatan kualiti muzik yang dimainkan semula pada PC dan telefon pintar, kata Patterson. Kod yang berfungsi lebih baik memisahkan saluran dan instrumen dapat menghasilkan bunyi melalui interaksi selari.

University of California, Berkeley, mempunyai makmal pengkomputeran selari di mana para penyelidik cuba memahami bagaimana aplikasi digunakan, yang dapat membantu mengoptimumkan kod untuk peranti pegang tangan. Satu projek bertujuan untuk melayari kualiti desktop ke peranti pegang tangan dengan mengoptimumkan kod berdasarkan tugas tertentu seperti rendering dan parsing halaman. Satu lagi projek melibatkan mengoptimumkan kod untuk mendapatkan maklumat kesihatan yang lebih cepat. Makmal ini dibiayai terutamanya oleh Intel dan Microsoft.

Para penyelidik Berkeley cuba membawa paralelisme dengan menggantikan bit kod asalnya ditulis menggunakan bahasa skrip seperti Python dan Ruby on Rails dengan kod C tahap rendah baru. Kod baru khusus memberi tumpuan kepada tugas-tugas tertentu seperti menganalisis corak suara tertentu dalam aplikasi pengiktirafan ucapan, kata Patterson dalam temu bual Rabu. Kod ini ditulis menggunakan OpenMP atau MPI, antara muka pengaturcaraan aplikasi yang dirancang untuk menulis aplikasi selari peringkat mesin.

Pakar perlu menulis kod selari yang sangat khusus ini, kata Patterson. Ia mengurangkan masa pembangunan untuk pengaturcara yang akan menggunakan Python dan Ruby on Rails, yang menjadikan pembangunan aplikasi lebih mudah, tetapi tidak memberi tumpuan kepada paralelisme, kata Patterson dalam temu bual itu. Makmal ini telah menunjukkan jumpaan pelaksanaan tugas tertentu dengan faktor 20 dengan kod mesin rendah.

Konsep parallelisme bukanlah baru, dan kebanyakannya merupakan domain komputasi berprestasi tinggi. Tahap rendah parallelism selalu mungkin, tetapi pengaturcara telah menghadapi tugas yang menakutkan dengan kekurangan alat perisian dan persekitaran perkakasan yang sentiasa berubah.

"Threads perlu diselaraskan dengan betul," kata Christos Kozyrakis, seorang profesor kejuruteraan elektrik dan sains komputer di Stanford University, semasa persembahan sebelum perbincangan panel. Kod perlu ditulis dalam bentuk yang boleh diramal dan skala kerana lebih banyak teras boleh didapati.

Penyusun juga perlu dibuat lebih bijak dan cukup pandai untuk memecahkan benang tepat pada waktunya supaya output diterima dalam urutan yang betul, kata Kozyrakis. Percubaan yang salah untuk membina parallelisme ke dalam kod boleh membuat perisian buggy jika pengiraan tertentu tidak dilaksanakan dalam urutan tertentu. Itulah masalah yang biasanya dirujuk sebagai keadaan kaum. Coders juga perlu belajar bagaimana menggunakan alat pengaturcaraan pelbagai untuk mencapai tahap paralelisme yang lebih baik, kata panelis.

"Tidak ada pendekatan untuk pemrograman yang malas," kata Patterson pada persidangan itu.

Memori dan rangkaian latensi telah mencetuskan kemacetan dalam output data, yang dapat menafikan prestasi yang dicapai oleh pelaksanaan tugas selari. Terdapat juga alat pengaturcaraan yang berbeza untuk seni bina yang berbeza, yang menjadikannya sukar untuk mengambil kesempatan daripada semua perkakasan yang tersedia.

Banyak alat paralelisme yang tersedia hari ini direka untuk memanfaatkan keupayaan memproses selari CPU dan unit pemprosesan grafik untuk meningkatkan prestasi sistem. Apple, Intel, Nvidia dan Advanced Micro Devices adalah antara syarikat yang mempromosikan OpenCL, persekitaran pengaturcaraan selari yang akan disokong dalam sistem operasi Apple Mac OS X 10.6 yang akan datang, yang juga dikenali sebagai Snow Leopard, yang akan dibebaskan pada hari Jumaat. OpenCL bersaing dengan Microsoft, yang mempromosikan alat pengaturcaraan paralel DirectX proprietarinya, dan Nvidia, yang menawarkan rangka kerja CUDA.

OpenCL termasuk bahasa pengaturcaraan seperti C dengan API (antaramuka pengaturcaraan aplikasi) untuk menguruskan pengedaran kernel pada perkakasan seperti sebagai teras pemproses dan sumber lain. OpenCL dapat membantu Mac decode video lebih cepat dengan mengedarkan pemproses pixel merentasi pelbagai CPU dan unit pemprosesan grafik dalam satu sistem.

Semua alat sedia ada diarahkan ke persekitaran perisian yang berbeza dan memanfaatkan sumber yang berlainan, kata Patterson. Sebagai contoh, OpenCL lebih banyak menjurus kepada pelaksanaan tugas pada GPU. Model proprietari seperti DirectX sukar diletakkan di persekitaran pengkomputeran yang heterogen, sementara beberapa model seperti OpenCL menyesuaikan diri dengan hanya persekitaran tertentu yang bergantung pada GPU.

"Saya tidak fikir [OpenCL] akan dipeluk oleh semua seni bina." Patterson berkata.

Sementara para penonton menunjukkan bahwa paralelisme telah menjadi masalah untuk dekad, para panelis mengatakan bahawa universiti kini mengambil pendekatan baru untuk mengerjakan berbagai alat pengaturcaraan untuk membolehkan paralelisme.

Kozyrakis berkata Stanford telah menubuhkan sebuah makmal yang bertujuan untuk "membuat pembangunan aplikasi selari praktikal untuk orang ramai," menjelang tahun 2012

Ujian tugas segera bagi pemaju boleh cuba untuk mengubah kod warisan sedia ada secara selari untuk pelaksanaan cip moden, Berkeley's Patterson kata. Beberapa syarikat menawarkan penyetaraan secara automatik, tetapi menulis semula dan menyusun kod warisan yang asalnya ditulis untuk pelaksanaan yang berurutan boleh menjadi satu cabaran besar.

"Ada wang yang akan dibuat di kawasan tersebut," kata Patterson.