2012/5/8 Mucibirahman İLBUĞA <[email protected]>

> 08-05-2012 13:52 tarihinde, Sinan Onur ALTINUÇ yazdı:
> > Ve ben de ekipte bu işlerden anlayan ve uğraşmaya gönüllü bir kişi
> > bulundurulmasının çok yararlı olacağına şiddetle katılıyorum. Bunun
> > yanında da programlama yapacak herkesin belli bir temel seviyeye
> > ulaşması gerekiyor paralel programlama hakkında. (Yoksa düzgün bir
> > performans farkı yaratılamayabilir) Çünkü bu mevzuyla ilgilenenler
> > için bile sıkıntı yaratabilen bir konu.
> >
> Merhabalar,
> Çok fazla bilgim yok ancak konu dikkatimi çekti. Hesaplamalara konu olan
> yöntem nedir? Bir de, okuduğum bir yazıda yüzlerce Playtation'un paralel
> bağlanarak çok hızlı bilgisayarlar üretildiğinden bahsediyordu. Sanırım
> ya NASA yada ona benzer bir yerdi. GPU (Graphics Processing Unit) diye
> incelediğimde garip geldi biraz. Grafik bir işlemci ile neden daha hızlı
> hesaplamalar yapılabiliyor? Netice de o da bir işlemci değil mi? Farkı
> nedir?...
>
>
Şimdi aslında temelde paralalleştirme ideal oalrak yapılabilen bir şey
değil. Çünkü programın akışı gereği belli verilerin üretilmesi için başka
verilerin gelmesi gerekebiliyor. Yani ne kadar işlemcimiz olursa olsun
zaman zaman diğerlerini bekliyor olabilir. Burada kodu yazarken epeyce
fazla şey düşünülmesi gerekiyor. işlem yapan birimler mümkün olduğunca
birbirinden bağımsız çalışması gerekiyor.

Sizlerin muhtemelen sıkça kullandığı matris çarpma gibi işlemler için
bulunan hazır çözümler olsa da yazılımın genel tasarımı bu işe uygun
olmazsa 100 işlemci de bağlasak 2 işlemci de bağlasak aynı sürece
çözebiliriz.

Cuda hakkında tam bilgi sahibi değilim ama grafik işlemcilerinin özelliği
biraz daha farklı. En basit şekliyle elinizde bir matris var bu matrisin
bütün elemanlarına 1 eklemek istiyorsunuz. Grafik işleci bunu tek seferde
yapabilecek kabiliyettedir. Yani tek komutu çok fazla veri üzerinde
uygulamaya yönelik çalışır (Single Instruction Multiple Data) Zaten
ekranlarımıza gelen görüntülerin bütün piksellerinde hep benzer işlemler
uygulandığından işlemciler ne kadar iyi olsa da grafik kartlarının yerini
tutamazlar. Diğer taraftan sıradan birbirinin ardına komutları çalıştıra
klasik bir programı grafik işlemcide çalıştırmaya kalkmak size muhtemelen
hız kazancı sağlamaz. Hatta oradaki işlemcilerin gücü cpunuzdan çok daha
düşük olduğundan çok daha yavaş yapacaktır. Bunun sebebi. Bir adım bir
önceki adımın sonucunu beklediğinden aynı anda sadece bir işlemcinin
kullanılıyor olmasıdır.

İnsanların yazdığı kodu otomatik analiz ederek kendisi paralelleştirmeye
çalışan araçlar geliştirmek için çeşitli çabalar var. Fakat şu anda pek
verim alınabilecek bir konu değil. O yüzden henüz eski yöntemlere güvenerek
bu konularda biraz bilgi edinmeyi mümkünse bir paralel programlama dersi
almayı ve yine mümkünse işin bu kısmıyla sürekli ilgilenecek problemleri
çözecek birilerini bulmayı öneriyorum.
_______________________________________________
Linux-sohbet mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-sohbet
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap