Paralel Programlama Nedir?
- Sevdanur GENC

- Feb 21, 2013
- 2 min read
Paralel Hesaplama yada Paralel Programlama hakkinda soyleyebilecegimiz seyler genellikle bilgisayar mimarileri uzerinde olacaktir cunku calisacagimiz ortam islemciler/memory'ler uzerindeki gorevler uzerinde olacaktir. Genelde bir sorunu cozebilmek icin kaynaklar eszamanli ve coklu bir sekilde calismaktadirlar.
Paralel Programlama ile elimizdeki problemin cozumunu olusturabilmemiz icin ufak gorev parcalarina ayristiririz ve bunlarin es zamanli olarak sistemli bir sekilde calismalarini saglariz. Boylelikle, Paralel Programlama ile performansin daha cok arttigi ve var olan buyuk problemlerin kisa bir surede cozulecegi gozlemlenmistir.
Paralel Programlama icin pek cok isletim sistemi seviyesinde ve programlama dili seviyelerinde pek cok yazilim sistemi gelistirilmistir. Bu sistemler sorunlarin pek cok parcaya bolunerek islemcilere atanmasini saglayan akilli algoritmalardan olusmaktadir.
Sik kullanilan Paralel programlama modelleri ise; MPI, OpenMP, PVM, Co-Array Fortran, Global Arrays vb...
Simdilik calismalarimizda OpenMP'yi kullaniyor olacagiz.
Flynn'in Klasik Taxonomy Yapisi
Flynn's Classical Taxonomy'ye gore Paralel programlamada dort onemli yapi bulunmaktadir.
Single Instruction, Single Data (SISD): Tek Direktif, Tek Veri. Ilk bakista, Seri bilgisayarlar akla gelmektedir. Seri bir kodun verilerinin yuklenmesi veya dinamik islemlerinde seri bir sekilde calismasidir. tek kod, tek data, bir cekirdekli makina seklinde de dusunebiliriz.
Single Instruction, Multiple Data (SIMD): Tek Direktif, Cok Data. Bu yapi paralel bilgisayarlara bir ornektir. shared memory yapisi uzerinde dusunulmektedir. Ornegin, bir elemanli bir kod yapimiz varsa bunu her bir cekirdege gore ayirarak islem yapabiliyoruz.
Multiple Instruction, Single Data (MISD): Cok Direktif, Tek Data. Bu yapi paralel bilgisayarlara bir ornektir. Farkli islemleri tek bir data uzerinde yapabiliyoruz. Ayni veriyi farkli kod satirlari ile isleyebiliyoruz.
Multiple Instruction, Multiple Data (MIMD): Cok Direktif, Cok Data. Bu yapi paralel bilgisayarlara bir ornektir. Bu durumda hem datalar hem kodlar bolunmus bir yapidadir. Verilerde islemlerde farkli farkli calisabilirler.
Data, Text, BSS, Stack Ve Heap Kavramlari;
Bellege verileri isleyebilmemiz icin Ram'de Text, Data, Bss, Heap ve Stack gibi bilgileri ihtiyac duyulmaktadir. Yandaki sekilde de goruldugu gibi bunlarin aciklamalarini soyle yapabiliriz; TEXT : Text alani, kodlarin kendisi ve sabitler bulunmaktadir. DATA : Data alani, ilk degerler, global ve static degiskenler tanimlanmaktadir. BSS : Bss alani, Ilk degerleri 'atanmayan' global ve static degiskenler tanimlanmaktadir. HEAP : Heap alani, runtime esnasinda dinamik bir yapiya hakimdir. STACK : Stack alani, local degiskenler tanimlanmaktadir. Keyifli Calismalar Dilerim...
Comments