Bahasa Pemrograman Baru Untuk Komputer Berperforma Tinggi

Bahasa Pemrograman Baru Untuk Komputer Berperforma Tinggi

Bahasa Pemrograman Baru Untuk Komputer Berperforma Tinggi

Bahasa Pemrograman Baru Untuk Komputer Berperforma Tinggi – Dengan prototipe bahasa tensor, “kecepatan dan ketepatan tidak harus bersaing … mereka bisa berjalan bersama-sama, bergandengan tangan.”

Bahasa Pemrograman Baru Untuk Komputer Berperforma Tinggi

Komputasi berperforma tinggi diperlukan untuk jumlah tugas yang terus bertambah seperti pemrosesan gambar atau berbagai aplikasi pembelajaran mendalam di jaringan saraf di mana seseorang harus membajak tumpukan data yang sangat besar, dan melakukannya dengan cukup cepat, jika tidak, hal itu akan memakan waktu yang lama. https://3.79.236.213/

Jumlah waktu. Secara luas diyakini bahwa, dalam menjalankan operasi semacam ini, ada pertukaran yang tak terhindarkan antara kecepatan dan keandalan. Jika kecepatan adalah prioritas utama, menurut pandangan ini, maka keandalan kemungkinan akan menurun, dan sebaliknya.

Namun, tim peneliti, yang sebagian besar berbasis di MIT, mempertanyakan gagasan itu, mengklaim bahwa seseorang dapat, pada kenyataannya, memiliki semuanya. Dengan bahasa pemrograman baru, yang telah mereka tulis khusus untuk komputasi kinerja tinggi,

kata Amanda Liu, mahasiswa PhD tahun kedua di MIT Computer Science and Artificial Intelligence Laboratory (CSAIL), “kecepatan dan ketepatan tidak harus bersaing. Sebaliknya, mereka dapat berjalan bersama-sama, bergandengan tangan, dalam program yang kami tulis.”

Liu — bersama dengan postdoc University of California di Berkeley Gilbert Louis Bernstein, Associate Professor MIT Adam Chlipala, dan Asisten Profesor MIT Jonathan Ragan-Kelley menggambarkan potensi kreasi mereka yang baru dikembangkan, “A Tensor Language” (ATL), bulan lalu di konferensi Prinsip Bahasa Pemrograman di Philadelphia.

“Semuanya dalam bahasa kami,” kata Liu, “bertujuan untuk menghasilkan angka tunggal atau tensor.” Tensor, pada gilirannya, adalah generalisasi dari vektor dan matriks. Sedangkan vektor adalah objek satu dimensi (sering diwakili oleh panah individu) dan matriks adalah array angka dua dimensi yang familiar, tensor adalah array n dimensi, yang dapat berbentuk array 3x3x3, misalnya, atau sesuatu yang lebih tinggi. (atau lebih rendah) dimensi.

Inti dari algoritma atau program komputer adalah untuk memulai perhitungan tertentu. Tetapi ada banyak cara berbeda untuk menulis program itu “variasi membingungkan dari realisasi kode yang berbeda,” seperti yang ditulis Liu dan rekan penulisnya dalam makalah konferensi mereka yang akan segera diterbitkan beberapa jauh lebih cepat daripada yang lain.

Alasan utama di balik ATL adalah ini, dia menjelaskan: “Mengingat komputasi berkinerja tinggi sangat intensif sumber daya, Anda ingin dapat memodifikasi, atau menulis ulang, program ke dalam bentuk yang optimal untuk mempercepat segalanya.

Seseorang sering memulai dengan program yang paling mudah untuk ditulis, tetapi itu mungkin bukan cara tercepat untuk menjalankannya, sehingga penyesuaian lebih lanjut masih diperlukan.”

Sebagai contoh, anggaplah sebuah gambar diwakili oleh larik angka 100×100, masing-masing sesuai dengan piksel, dan Anda ingin mendapatkan nilai rata-rata untuk angka-angka ini. Itu bisa dilakukan dalam perhitungan dua tahap dengan terlebih dahulu menentukan rata-rata setiap baris dan kemudian mendapatkan rata-rata setiap kolom. ATL memiliki toolkit terkait yang oleh ilmuwan komputer disebut “kerangka kerja” yang mungkin menunjukkan bagaimana proses dua langkah ini dapat diubah menjadi proses satu langkah yang lebih cepat.

“Kami dapat menjamin bahwa pengoptimalan ini benar dengan menggunakan sesuatu yang disebut asisten bukti,” kata Liu. Untuk tujuan ini, bahasa baru tim dibangun di atas bahasa yang sudah ada, Coq, yang berisi asisten bukti. Asisten bukti, pada gilirannya, memiliki kapasitas yang melekat untuk membuktikan pernyataannya secara matematis yang ketat.

Coq memiliki fitur intrinsik lain yang membuatnya menarik bagi grup berbasis MIT: program yang ditulis di dalamnya, atau adaptasinya, selalu berakhir dan tidak dapat berjalan selamanya pada loop tanpa akhir (seperti yang dapat terjadi dengan program yang ditulis di Java, misalnya).

“Kami menjalankan program untuk mendapatkan satu jawaban angka atau tensor,” kata Liu. “Program yang tidak pernah berakhir tidak akan berguna bagi kami, tetapi penghentian adalah sesuatu yang kami dapatkan secara gratis dengan memanfaatkan Coq.”

Proyek ATL menggabungkan dua kepentingan penelitian utama Ragan-Kelley dan Chlipala. Ragan-Kelley telah lama memperhatikan optimasi algoritma dalam konteks komputasi kinerja tinggi. Chlipala, sementara itu, lebih fokus pada verifikasi optimasi algoritmik formal (seperti dalam berbasis matematis). Ini merupakan kolaborasi pertama mereka. Bernstein dan Liu dibawa ke perusahaan tahun lalu, dan ATL adalah hasilnya.

Sekarang berdiri sebagai yang pertama, dan sejauh ini satu-satunya, bahasa tensor dengan pengoptimalan yang diverifikasi secara formal. Liu memperingatkan, bagaimanapun, bahwa ATL masih hanya sebuah prototipe meskipun menjanjikan yang telah diuji pada sejumlah program kecil.

“Salah satu tujuan utama kami, melihat ke depan, adalah untuk meningkatkan skalabilitas ATL, sehingga dapat digunakan untuk program yang lebih besar yang kami lihat di dunia nyata,” katanya.

Bahasa Pemrograman Baru Untuk Komputer Berperforma Tinggi

Di masa lalu, pengoptimalan program-program ini biasanya dilakukan dengan tangan, secara lebih ad hoc, yang sering kali melibatkan coba-coba, dan terkadang banyak kesalahan. Dengan ATL, Liu menambahkan, “orang akan dapat mengikuti pendekatan yang jauh lebih berprinsip untuk menulis ulang program-program ini dan melakukannya dengan lebih mudah dan jaminan kebenaran yang lebih besar.”