Örtük paralellik - Implicit parallelism

İçinde bilgisayar Bilimi, örtük paralellik bir programlama dilinin özelliğidir. derleyici veya çevirmen otomatik olarak yararlanmak paralellik dilin bazı yapıları tarafından ifade edilen hesaplamaların doğasında. Tamamen örtük olarak paralel bir dil, paralel yürütmeyi etkinleştirmek için özel yönergelere, işleçlere veya işlevlere ihtiyaç duymaz; açık paralellik.

Örtülü paralellik içeren programlama dilleri şunları içerir: Axum, BMDFM, HPF, İD, LabVIEW, MATLAB M kodu, NESL, SaC, SİSAL, ZPL ve pH.[1]

Misal

Belirli bir sorun, aynı işlemi bir grup sayı üzerinde gerçekleştirmeyi içeriyorsa (örneğin sinüs veya logaritma her biri sırayla), örtük paralellik sağlayan bir dil, programcının talimatı şu şekilde yazmasına izin verebilir:

sayılar = [0 1 2 3 4 5 6 7];sonuç = günah(sayılar);

Derleyici veya yorumlayıcı, her bir öğenin sinüsünü bağımsız olarak hesaplayabilir ve mevcutsa, çabayı birden çok işlemciye yayabilir.

Avantajları

Örtük olarak paralel kod yazan bir programcının görev bölümü veya süreç iletişimi konusunda endişelenmesine gerek yoktur, bunun yerine programının çözmeyi amaçladığı soruna odaklanır. Örtük paralellik genellikle paralel programların tasarımını kolaylaştırır ve bu nedenle programcı üretkenliğinde önemli bir iyileşme ile sonuçlanır.

Bunu desteklemek için gerekli yapıların çoğu, gerçek paralellik olmadığında bile basitlik veya netlik katar. Yukarıdaki örnek, sin () işlevindeki Liste anlama örneği, kendi başına yararlı bir özelliktir. Örtük paralellik kullanarak, diller, basitçe gerekli işlevselliği desteklemek için kullanıcılara bu tür yararlı yapılar sağlamalıdır (örneğin, iyi bir for () döngüsü olmayan bir dil, birkaç programcının kullanacağı bir dildir).

Dezavantajları

Örtülü paralelliği olan diller, programcının programın paralel yürütülmesi üzerindeki kontrolünü azaltır ve bu da bazen optimalin altında sonuç verir. paralel verimlilik. Yapımcıları Oz programlama dili Ayrıca, örtük paralellik ile ilgili ilk deneylerinin, örtük paralelliğin hata ayıklamayı zorlaştırdığını ve nesne modellerini gereksiz yere garip hale getirdiğini de not edin.[2]

Daha büyük bir sorun, her programın bazı paralel ve bazı seri mantığına sahip olmasıdır. Örneğin ikili G / Ç, Write () ve Seek () gibi seri işlemler için destek gerektirir. Örtük paralellik istenirse, bu, diziliş veya dağıtılamayan kodu desteklemek için yapılar ve anahtar kelimeler için yeni bir gereksinim oluşturur.

Notlar

  1. ^ Nikhil, Rishiyur; Arvind. PH'ta Örtük Paralel Programlama. ISBN  1-55860-644-0.
  2. ^ Seif Haridi (2006-06-14). "Giriş". Oz Eğitimi. Alındı 2007-09-20.