Paralelno programiranje je dugo bio sveti gral performansnog računarstva. Da je jednostavno implementirati paralelne procese, moderni programski jezici ne bi zahtevali koncepte kao što su semafori, zaključavanja i mutexi.
Bend je novi programski jezik koji se ističe po tome što poseduje tri različita runtime-a. Prvi je napisan u C-u i ne podržava paralelno programiranje. Drugi je napisan u Rust-u i omogućava paralelizam, dok je treći pisan u CUDA-i, jeziku razvijenom specijalno za GPU programe, što nije iznenađujuće s obzirom na to da ga je razvila Nvidia.
Jedna od ključnih karakteristika Benda je njegova inherentna paralelnost. Ne morate se previše brinuti o tome da li je vaš kod paralelan - ono što može biti izvršeno paralelno, biće izvršeno paralelno.
Na primer, izraz ( ( (1 + 2) + 3 ) + 4) ne može se izvršiti paralelno zbog zavisnosti između operacija. 3 mora sačekati da se izvrši 1 + 2, a 4 mora sačekati da se završe prethodni izrazi. Međutim, ako bismo grupisali zagrade drugačije, kao u ( (1 + 2) + (3 + 4)), tada bi 1, 2 i 3, 4 mogli biti izračunati paralelno, a zatim konačno sabrani. Iako Bend automatski brine o paralelizmu, ipak je potrebno obratiti pažnju na strukturu koda.
Sintaksa Benda podseća na Python, što olakšava učenje i upotrebu. Važno je napomenuti da Bend još uvek nije u konačnoj verziji - njegove single-thread performanse su trenutno slabije u odnosu na konkurenciju. Tim programera koji stoji iza ovog jezika obećava poboljšanje performansi sa svakom novom verzijom.
0 komentara