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
