Şimdiye kadar sunulan cevaplar çok güzel, ama aynı zamanda paralel ve dağıtılmış işleme arasındaki belirli bir farka vurgu yapmayı bekliyordum: yürütülen kod. Paralel süreçler göz önüne alındığında, yürütülen kod, paralellik seviyesinden (talimat, veri, görev) bağımsız olarak aynıdır. Tek bir kod yazarsınız ve bu kod , örneğin matris ürünleri hesaplanırken veya permütasyonlar oluşturulurken farklı iş parçacıkları / işlemciler tarafından yürütülür.
Öte yandan, dağıtılmış hesaplama farklı işlemcilerde (bir veya daha fazla makineden) farklı algoritmaların / programların aynı anda yürütülmesini içerir. Bu tür hesaplamalar daha sonra mevcut veri iletişimi / senkronizasyonu araçları (paylaşılan hafıza, ağ) kullanılarak bir ara / nihai sonuçta birleştirilir. Ayrıca, dağıtılmış bilgi işlem, disk paralelliğinden (genellikle büyük veritabanları için darboğazdan) yararlanılmasına izin verdiği için BigData işlemesi için çok caziptir.
Son olarak, paralellik düzeyi için, senkronizasyon üzerinde bir kısıtlama olarak ele alınabilir. Örneğin, tek komutlu çoklu veri (SIMD) olan GPGPU'da, paralellik, tek bir komut için farklı girişlere sahip olarak oluşur, her bir çift (veri_i, komut) farklı bir iş parçacığı tarafından yürütülür. Farklı dallar durumunda, iplikler yeniden birleşene kadar çok sayıda gereksiz hesaplamayı atmanın gerekli olduğu kısıtlama budur. Ancak CPU iş parçacıkları için genellikle birbirlerinden ayrılırlar; yine de, kodun belirli bölümlerinin aynı anda yürütülmesini sağlamak için senkronizasyon yapıları kullanılabilir.