Dağıtılmış programlama bir paralel programlama veya paralel hesaplama şeklidir. Paralel programlama, bilgisayarların ve bilgisayarların içinde bulunur ve aynı zamanda yarının hava durumunu tahmin etme gibi belirli bir problem üzerinde çalışan bilgisayarlarda bulunur. Hesaplama birimleri çok yakın yerleştirilebilir ve koordine edilebilir veya ayrı yerleştirilebilir. Hesaplama birimleri birbirinden ayrıldığında, dağıtılmış programlama olarak adlandırılır. Böyle bir senaryoda, bilgisayar üniteleri çoğu zaman birbirinden farklıdır ve işletim sistemi ve ağ kurulumu da farklılık gösterir ve bilgisayar faaliyetinin programlanmasını özellikle zorlaştırır.
Bir problemi dağınık bir şekilde çözerken, programın bölümlerinin farklı hesaplama birimlerinde çalışabilmesi için programın bölünmesi gerekir; bu parçalara genellikle "süreçler" denir. İşlemler eşzamanlı olarak yürütülür, ancak girdileri ve sonuçları birbirine iletmesi gerekir. İşlemler, Intel üzerinde çalışan ve SUN'da çalışan bir bölüm gibi farklı donanımlarda çalışıyorsa, programların farklı şekilde derlenmesi ve en iyi duruma getirilmesi gerekir.
Yeterince zor olan bir problemi çözmenin bir yolu, girdi parçalarını parçalamak ve farklı hesaplama birimlerinin aynı algoritmayı, kurallar dizisini veya problem çözme adımlarını kullanarak farklı parçalar üzerinde çalışmasını sağlamaktır. Örneğin, 10.000 çiftli bir genomu kırmak için, ilk 1000 çift birinci hesaplama birimine, ikinci 1,000 çift, ikinci hesaplama birimine atanmış ve benzerleri, hepsi aynı algoritmayı kullanarak tahsis edilebilir. Dağıtılmış programlama ile bir avantaj, farklı hesaplama birimlerinin aynı problemi çözmek için farklı algoritmalar çalıştırabilmesi ve böylece daha iyi bir çözüme yol açmasıdır. Bu, bazı kişilerin sınırda bir araya getirdiği bir bilmecenin çözülmesine benzerken, diğerleri belirli bir renkteki parçaları bir araya getirir.
Dağıtılmış hesaplama işlemlerinin koordinasyonu özellikle zor bir görev olabilir. Bazı bilgi işlem birimleri başarısız olabilir veya diğer işleri yürütmek için kesintiye uğrayabilir. Girdileri veya hesaplamanın sonuçlarını içeren mesajlar hedeflerine ulaşamayabilir. Programlar saf bir şekilde yazılırsa, bilgisayar ünitesinin veya bazı mesajların kaybı tüm bilgisayar setinin askıda kalmasına neden olabilir.
Dağıtılmış programlamada, bir süreç, esasen diğer işlemler tarafından yapılan işleri yapan kontrol süreci olabilir veya tüm işlemler hiçbir işlem "usta" olmadan eşler arası bir şekilde çalışabilir. Dağıtık programlama ile denenen bazı problem örnekleri, petrol, proteinlerin ve biyolojik moleküllerin modellenmesi, kodlanmış mesajların kırılması ve askeri simülasyonlar gibi kaynaklar için jeolojik verilerin analizini içerir. Dünya tarafından alınan radyo mesajlarından dünya dışı akıllı yaşam arayışı için SETI projesi belki de en iyi bilinen örneklerden biridir.


