Raku tarafından hangi eşzamanlılık mekanizmaları sağlanır ve bunlar nasıl değerlendirilebilir? [kapalı]

Dec 28 2020

Şu anda Raku ile ilgili tezim üzerinde çalışan bir öğrenciyim ve bunun için Raku'nun (Perl 6) yüksek eşzamanlılıkla uğraşırken iyi bir dil olup olmadığını değerlendirmeye karar verdim.

Resmi web sitesi dışında Raku'nun eşzamanlılığı hakkında herhangi bir makale bulamadım. Ayrıca Raku'nun eşzamanlılığını nasıl değerlendireceğim hakkında hiçbir fikrim yok (örneğin, hangi programı kullanmalıyım, hangi dili Raku ile karşılaştırmalıyım, vb.).

Raku tarafından hangi eşzamanlılık mekanizmaları sağlanır? Bunlar nerede belgeleniyor? İşlevleri ve performansları nasıl değerlendirilebilir?

Yanıtlar

14 JonathanWorthington Dec 29 2020 at 05:39

Raku bir dizi farklı eşzamanlılık mekanizması sağlar (ayrıca bir dizi paralel programlama yaklaşımı da sağlar, ancak sorunun gerçekten eşzamanlılıkla ilgili olduğunu varsayacağım). Raku'da bulunanların çoğu diğer dillerde bulunabilir; Örneğin:

  • gather/ takeLazily değerleri üretmek için bir mekanizma. Bu, çeşitli dillerde üreteç işlevleri olarak görülür; Ancak Raku'da tek bir yığın çerçeve sınırı yoktur, bu nedenle bunlar çok güçlüdür. (Bu, eşzamansız programlamayı içeren herhangi bir bağlamda değildir, ancak yine de eşzamanlılık tanımına uygundur).
  • PromiseEşzamanlı olmayan bir işlemin tek bir sonuç taşımak için bir mekanizma gibi bir çok olan PromiseJavaScript ya da s Task.NET (semantik yakın ikinci biraz vardır).
  • A Supply, eşzamansız değerler akışıdır. Reaktif uzantılarla (Rx) oldukça ortak bir yanı vardır, ancak genel Raku dili tasarımına uyan bir adlandırma ve API seçmiştir (örneğin, yöntem adları dizilerdeki eşzamanlı ikili ile eşleşir).
  • Bir Channelbu vasıtalar Eğer betwee kolay geçişi olabilir ki, doldurulması ve hata iletmek için bir mekanizma bulunmaktadır eşzamanlı kuyruğudur Supplyve Channelparadigmalar. Temel fark, bir Channeldepolama alanına sahip olmasıdır - içine değerler koyabilir ve hemen başka bir şey yapmaya devam edebilirsiniz - bir değer yayarsanız Supply, işlem maliyetlerini ödersiniz (bir geri basınç mekanizması sağlar). Aşamalı olay güdümlü mimariChannel gibi çeşitli mimariler inşa edilebilir .

Diğer dillerde doğrudan bulunmayan Raku'da en ayırt edici kavram react/ supply/ wheneverconstruct'tır. Birden çok eşzamansız akış için işlemciler yazmak genellikle zordur (abonelik yönetimi, eşzamanlılık kontrolü); yapı, ona yapılandırılmış bir programlama yaklaşımı sağlar. Bunun ötesinde, Raku'da bu şeylere sadece kitaplıklar gibi davranmaktan ziyade dil entegrasyonunun biraz daha güçlü olması meselesi.

Diğerlerinin de belirttiği gibi, henüz resmi belgelerin yolunda pek bir şey yok. Ancak, bu slaytlar ilgi çekici olabilir (sorumluluk reddi: onlar benim; Raku eşzamanlılık tasarımına katkıda bulundum ve react/ supply/ icat ettim whenever).

  • Perl 6'da eşzamanlılık ve paralellik yapmanın 8 yolu
  • Tepki verme, tedarik etme ve her zaman anlama
  • Perl 6 eşzamanlılığı içinde - nasıl uygulandığına bakılıyor
9 jjmerelo Dec 28 2020 at 17:53

Raku'nun eşzamanlılığı hakkında makaleler : Eşzamanlılığın nasıl çalıştığına dair bir açıklama istiyorsanız, bildiğim hiçbir akademik makale yok. Bazı Şenlik Takvimi yayınlarına bakabilirsiniz, örneğin bu HTTP sunucularında eşzamanlılık hakkında . Kendi Raku Tariflerim (Apress tarafından yayınlanan) gibi Raku ile ilgili kitapların çoğu Eş Zamanlılık hakkında bir bölüm içerir, bu yüzden bu da kontrol edebilirsiniz. Son olarak, birlikte yazdığım bu makale , Raku'nun evrimsel hesaplama için eşzamanlılığını iyi sonuçlar elde etmek için kullanıyor.

Raku'nun eşzamanlılığı nasıl değerlendirilir: * Raku, iletişim halinde sıralı süreçleri kullanır ve Kanalları birinci sınıf nesneler olarak kullanır . Bu anlamda, buna benzer Go . Öte yandan, Julia'nın makrolar aracılığıyla yaptığı gibi, veri akışlarını hyper / race aracılığıyla otomatik olarak işleyebiliyor. Yani bunlar karşılaştırma için iki hedef olabilir.

Belki de perl6 kullanıcıları e-posta listesi , böyle sorular sormak için daha iyi bir yer olabilir.

5 p6steve Dec 29 2020 at 04:10

Raku için yerleşik CSP, Tony (Anthony) Hoare tarafından tasarlanan iyi kurulmuş bir eşzamanlılık modelidir. Ayrıca Tony'nin araştırma hattını devam ettiren Bill (William) Roscoe'nun çalışmalarını da aramak isteyebilirsiniz. Bunun genel CSP araştırması olacağını unutmayın. Henüz özellikle Raku'da yapılmış referans alınabilecek herhangi bir şey olduğundan şüpheliyim.