Ana içeriğe atla

ParallelExtensions Aralık 2007 CTP

Uygulama tasarımında iş mantıklarını küçük parçalara bölüyoruz. Modüller, DLL / OCX dosyaları ve daha sonra da bunları çalıştıran thread birimleri var.

Thread kullanmak çoklu CPU ortamında anlamlı olabilir. Bir işi beklerken diğer taraftan diğer işlemleri de işlemek zamanı kısaltan çözüm yollarından biridir.

Ancak bazı durumlarda, performans yine de etkin şekilde düşünülmemiş olabilir. Eğer bir method içinde;

doIt1();
doIt2();

gibi uzun süren ve birbirlerinden bağımsız 2 ayrı işlem varsa, her ne kadar bir thread içinde de çalıştırılsa da bu işlem yine de etkin olmayabilir!

Yeni çıkan system.threading genişletmesi ile bu satırları paralel çalıştırmak anlamlı ve kolay olacaktır.

Parallel.Do

yöntemiyle, paralel çalıştırılacak yöntemler bu yöntemin içine dizi olarak eklenir ve çalıştırılır. Sonuç olarak bir thread tekrar farklı thread'lere parçalanacak ve sonra tekrar birleşecektir.

Örnek olarak;
doIt1 --> Maliyet muhasebesinde tüm giriş hareketlerinin hesaplandığı alan ise,
doIt2 --> Maliyet muhasebesinde tüm çıkış hareketlerinin hesaplandığı alan ise

ve bunların içinde yer alan hesaplamalar birbirlerini beklemiyor ve/veya ilişkili değilse, bu yöntem rahatlıkla kullanılabilir ve dual-core teknolojilerinde işlem gücü %100 olsa bile eski yöntemlerle çift çekirdekli işlemcilerde bu %50 görünecektir ancak yeni yöntem ile artık tüm işlemcinin gücü rahatlıkla kullanılabilir.

Peki mevcut kodlarla nasıl yapılır?
  • Thread pooling ayarlanmalı
  • Thread manager ile havuzda yer alan thread nesneleri yönetilmeli
  • Paralel işlemler birleştirilmeli
  • Her paralel işlemden doğabilecek istisnalar (exception) kontrol edilmeli
  • Döngüler varsa (toplama, çıkarma gibi array işlemleri) parçalanmalı
  • vb.
  • vb.

Bunları tekrar yazmak mı? yoksa Parallel CTP Aralık 2007 kullanmak mı?

Tercih her zaman olduğu gibi tasarımcının...

Bu blogdaki popüler yayınlar

Zeki sistemler

Zeki sistemler: Yapay zeka tekniklerini kullanan sistemlerdir. Sistem: Ortak bir amaca hizmet etmek için bir araya gelmiş bir ya da birden fazla elemanın uyum içinde çalışmasıdır. Melez Zeki Sistemler: Bir ya da birden fazla zeki sistemin bir araya gelmesi ve uyum için çalışmasıdır. Neden melez sisteme ihtiyaç var? Birçok iyi sistem bir araya getirilerek daha iyi sistemler oluşturulabilir. Uzman sistemlerdeki kararlılık, Genetik algoritmaların rastgeleliği ve True/False olarak ifade edilemeyen ancak yine de çözüm beklenen durumlarda bulanık sistemlerin kullanılarak "Melez Sistemlerin" tasarlanması birçok soruna çözüm sağlayabilir. Üst Zeki Sistemler: İnsan zekasına biraz daha yaklaşmayı hedefleyen ve şuan üzerinde düşündüğüm, çok daha fazla kaynak okumamı gerektiren sistemlerdir. Bu sistemlerle insan zekasına biraz daha yaklaşılması hedeflenebilir. Üst ( Meta ) Zeki Sistem (ÜZS) ile aynı anda birden fazla yapay zeka tekniği ya da alt sistemler kullanılabilir. Görüntü tanıma t

Inposia olarak «e-İrsaliye özel entegratörlük test sürecini» başarıyla tamamladık.

Göksel Üçer - Netle - Netle by Avalara

  Merhaba Arkadaşlar, Zaman çok hızlı geçiyor, biraz geç kalmış olabilirim ve Urla'daki kablosuz ağ üzerinden bu mesajımı da paylaşmak istemedim 😊 Netle'ye geçtiğim ilk yılları hatırlıyorum. Temmuz 2011 döneminde her şey bir anda olmuştu. Yönetici pozisyonundan à şirket sahibi olmak gibi durum değişikliği genelde uzun sürer, planlı olur ve stratejiler belirlenerek yapılırdı ama böyle olmadı. Hayatın bize getirdiklerine razı geldik. Her şey çok hızlı gelişti. Bir anda şirket sahibi olmuş ve diğer kurucu ortaklarımla çalışmaya başlamıştım.  Farklı hedefler, farklı çözümler ve farklı gereksinimler hep vardı ve önemlisi de bunları besleyen, büyüten, gerçekleştiren çok sıkı-yakın-dostlarım oldu. Birlikte yazdık, birlikte hayal ettik, birlikte geliştirdik ve birlikte farklı paradigmaların ulusal yazılımlarına kazanımlarını sağladık. İki ana kolda, aynı omurgada (middle-ware) tek bir şirket stratejisi ile bunu yapmak tabii ki kolay olmadı. Elde olmayan nedenlerden dolayı beklenmeyen