Situs web

Paralelisme Membutuhkan Aplikasi Pembunuh untuk Adopsi Massal

Seminar Penafsiran Alkitab oleh Dr. Bob Utley, Pelajaran 13

Seminar Penafsiran Alkitab oleh Dr. Bob Utley, Pelajaran 13
Anonim

Penambahan beberapa core ke mikroprosesor telah menciptakan peluang yang signifikan untuk pemrograman paralel, tetapi aplikasi pembunuh diperlukan untuk mendorong konsep ke mainstream, para peneliti mengatakan selama diskusi panel di konferensi Hot Chips.

Sebagian besar perangkat lunak saat ini masih sedang ditulis untuk eksekusi sekuensial dan model pemrograman perlu diubah untuk mengambil keuntungan dari perangkat keras yang lebih cepat dan peningkatan jumlah inti pada chip, kata panelis. Programmer perlu menulis kode dengan cara yang memungkinkan tugas untuk dibagi dan dijalankan secara bersamaan di berbagai inti dan untaian.

Banyak fokus dan uang yang digunakan untuk membuat mesin cepat dan bahasa pemrograman yang lebih baik, kata David Patterson, komputer profesor sains di University of California, Berkeley, pada konferensi di Stanford pada hari Senin. Perhatian yang relatif kecil telah dibayarkan untuk menulis program desktop secara paralel, tetapi aplikasi seperti game dan musik dapat mengubah itu. Pengguna program seperti itu menuntut kinerja real-time terbaik, sehingga programmer mungkin harus mengadopsi model yang memecah tugas melalui beberapa utas dan inti.

Misalnya, bentuk-bentuk baru paralelisme dapat meningkatkan kualitas musik yang diputar di PC dan smartphone, kata Patterson. Kode yang melakukan pekerjaan yang lebih baik untuk memisahkan saluran dan instrumen pada akhirnya dapat menghasilkan suara melalui interaksi paralel.

Universitas California, Berkeley, memiliki laboratorium komputasi paralel di mana para peneliti mencoba untuk memahami bagaimana aplikasi digunakan, yang dapat membantu mengoptimalkan kode untuk perangkat genggam. Satu proyek bertujuan untuk membawa penjelajahan berkualitas desktop ke perangkat genggam dengan mengoptimalkan kode berdasarkan tugas-tugas khusus seperti rendering dan penguraian halaman. Proyek lain melibatkan pengoptimalan kode untuk pengambilan informasi kesehatan yang lebih cepat. Laboratorium ini didanai terutama oleh Intel dan Microsoft.

Peneliti Berkeley mencoba membawa paralelisme dengan mengganti bit kode yang awalnya ditulis menggunakan bahasa scripting seperti Python dan Ruby on Rails dengan kode C tingkat rendah yang baru. Kode baru secara khusus berfokus pada tugas-tugas tertentu seperti menganalisis pola suara tertentu dalam aplikasi pengenalan suara, Patterson mengatakan dalam sebuah wawancara, Rabu. Kode ini ditulis menggunakan OpenMP atau MPI, antarmuka pemrograman aplikasi yang dirancang untuk menulis aplikasi paralel tingkat mesin.

Para ahli harus menulis kode paralel yang sangat khusus ini, kata Patterson. Ini mengurangi waktu pengembangan bagi para programmer yang sebaliknya akan menggunakan Python dan Ruby on Rails, yang membuat pengembangan aplikasi lebih mudah, tetapi tidak fokus pada paralelisme, kata Patterson dalam wawancara. Laboratorium telah menunjukkan lompatan tugas spesifik melompat dengan faktor 20 dengan kode mesin tingkat rendah.

Konsep paralelisme bukanlah hal baru, dan sebagian besar merupakan domain komputasi berkinerja tinggi. Tingkat paralelisme yang rendah selalu dimungkinkan, tetapi para programmer telah menghadapi tugas yang menakutkan dengan kurangnya perangkat lunak dan lingkungan perangkat keras yang selalu berubah.

"Benang harus disinkronkan dengan benar," kata Christos Kozyrakis, seorang profesor teknik elektro dan ilmu komputer di Stanford University, selama presentasi sebelum diskusi panel. Kode harus ditulis dalam bentuk yang berperilaku dapat diperkirakan dan berskala ketika lebih banyak inti tersedia.

Compiler juga perlu dibuat lebih pintar dan cukup perseptif untuk memecah utas tepat waktu sehingga output diterima dalam urutan yang benar, Kozyrakis mengatakan. Usaha yang salah untuk membangun paralelisme ke dalam kode dapat menciptakan perangkat lunak buggy jika perhitungan tertentu tidak dilaksanakan dalam urutan tertentu. Itu adalah masalah yang biasa disebut sebagai kondisi balapan. Pembuat kode juga perlu belajar bagaimana menggunakan berbagai alat pemrograman untuk mencapai tingkat paralelisme yang lebih baik, kata panelis.

"Tidak ada pendekatan pemalas untuk pemrograman," kata Patterson di konferensi.

Memori dan latensi jaringan telah menciptakan kemacetan dalam throughput data, yang dapat meniadakan kinerja yang dicapai oleh eksekusi tugas paralel. Ada juga alat pemrograman yang berbeda untuk arsitektur yang berbeda, yang membuatnya sulit untuk mengambil keuntungan dari semua perangkat keras yang tersedia.

Banyak alat paralelisme yang tersedia saat ini dirancang untuk memanfaatkan kemampuan pemrosesan paralel CPU dan unit pengolah grafis untuk meningkatkan kinerja sistem. Apple, Intel, Nvidia dan Advanced Micro Devices adalah salah satu perusahaan yang mempromosikan OpenCL, lingkungan pemrograman paralel yang akan didukung dalam sistem operasi Apple Mac OS X 10.6 yang akan datang, juga disebut Snow Leopard, yang akan dirilis Jumat. OpenCL bersaing dengan Microsoft, yang mempromosikan alat pemrograman paralel DirectX eksklusifnya, dan Nvidia, yang menawarkan kerangka CUDA.

OpenCL mencakup bahasa pemrograman seperti-C dengan API (antarmuka pemrograman aplikasi) untuk mengelola distribusi kernel di perangkat keras seperti sebagai inti prosesor dan sumber daya lainnya. OpenCL dapat membantu Mac OS memecahkan kode video lebih cepat dengan mendistribusikan pemrosesan piksel di beberapa CPU dan unit pemrosesan grafis dalam suatu sistem.

Semua alat yang ada diarahkan pada lingkungan perangkat lunak yang berbeda dan memanfaatkan sumber daya yang berbeda, kata Patterson. OpenCL, misalnya, diarahkan lebih ke arah pelaksanaan tugas di GPU. Model proprietary seperti DirectX sulit digunakan di lingkungan komputasi yang heterogen, sementara beberapa model seperti OpenCL hanya beradaptasi pada lingkungan tertentu yang bergantung pada GPU.

"Saya tidak berpikir [OpenCL] akan dipeluk di semua arsitektur." Kata Patterson. "Kami perlu sementara itu untuk mencoba hal-hal lain," seperti mencoba untuk memperbaiki model pemrograman dengan alat pengembangan yang umum digunakan, seperti Ruby on Rails, katanya.

Sementara penonton menunjukkan bahwa paralelisme telah menjadi masalah bagi dekade, panelis mengatakan bahwa universitas sekarang mengambil pendekatan baru untuk bekerja pada beberapa alat pemrograman untuk mengaktifkan paralelisme. Setelah bertahun-tahun pengembangan chip pendanaan, pemerintah juga lebih memperhatikan pemrosesan paralel dengan pendanaan program terkait.

Kozyrakis mengatakan Stanford telah membentuk lab yang bertujuan untuk "membuat pengembangan aplikasi paralel praktis untuk [orang]," pada 2012 Para peneliti bekerja sama dengan perusahaan seperti Intel, AMD, IBM, Sun, Hewlett-Packard, dan Nvidia.

Tes tugas segera untuk pengembang dapat berupa mencoba mengkonversi kode warisan lama secara paralel untuk eksekusi pada chip modern, Patterson dari Berkeley kata. Beberapa perusahaan menawarkan paralelisasi otomatis, tetapi menulis ulang dan menyusun kode warisan yang awalnya ditulis untuk eksekusi berurutan bisa menjadi tantangan besar.

"Ada uang yang akan dibuat di daerah-daerah itu," kata Patterson.