top of page

Paralel Programlama Nedir?

  • Writer: Sevdanur GENC
    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...

Recent Posts

See All
Oracle Java Cloud Service Uygulamasi

Bir onceki Oracle Cloud Computing yazisinda bahsettigim gibi JDeveloper Oracle Cloud icin gelistirmis oldugu surumu olan Oracle JDeveloper 11g (11.1.1.6.0) ile kucuk bir uygulama gelistirip bunu oracl

 
 
 
Oracle Cloud Computing Hakkinda

Bulut bilisim konusundaki arastirmalarima devam ederken bu kez solugu Oracle Cloud Computing'de aldim. Bu makalem ve ilerleyen makalelerimde Trial versiyonu ile user tarafini pek yormayan bir yapidan

 
 
 
Loop Optimization - Loop Optimizasyonu

Var olan dongulerin acilmis yada sikistirilmis hallerini optimize ettikten sonra cache'imizde nasil bir performans saglayacigini gorebiliriz. Bunun icin uc adet dogu optimizasyon yontemi bulunmaktadir

 
 
 

Comments


©2035 by Sevdanur Genc. Powered and secured by Wix

bottom of page