31 toplam yazı
2 December 2011 en yeni yazı
21 May 2009 ilk yazı
11 Bu sayfadaki yazılar

Bu kategorideki yazılar

  • Paralel Programlama

    Concurrent Collections (Eş Zamanlı Koleksiyonlar) [Beta 1]

    .Net Framework 4.0 ve içerdiği paralel genişletmeler (Parallel Extensions) ile birlikte gelmekte olan yenilikler arasında, eş zamanlı (Concurrent) çalışabilen ve Thread Safe olan koleksiyonlarda bulunmaktadır. Bu koleksiyonlar aslında veri yapıları (Data Structures) ile birlikte gelen yeni tipler arasında yer almaktadır.

  • Paralel Programlama

    for mu, foreach mi? Yoksa Parallel.For mu, Parallel.ForEach mi? [Beta 1]

    Gecenin bu saatinde uyuyamayıp blog’uma bir şeyler yazmak isteyişimin sebebi, bu gün bir okurumdan gelen şu sorudur; “Madem Parallel.For veya Parallel.ForEach ile herşey daha hızlı oluyor, niye normal for ve foreach döngülerini bu formasyona sokmuyorlarda ek bir şeyler ilave ediyorlar”. Dolayısıyla klavyemi elime aldım ve hemen bir test programı yazmaya koyuldum. Bu kez amaç vaat edilenin tersini göstermekti. Yani performansa ve hıza ulaşmaya çalışmayacak, tam aksi yöne gitmeye gayret edecektim. Aslında bu işlemler için gayet profesyonel test araçları mevcuttur. Ancak bir araca gerek duymadanda analizimizi yapabiliriz. İşe Visual Studio 2010 Beta 1 üzerinde, basit bir Console örneği geliştirerek başladım. İşte kodlarımız;

  • Paralel Programlama

    TPL - İptal İşlemi [Beta 1]

    Bir önceki blog yazımda, TPL kullanılarak WinForms uygulamalarında paralel işlemlerin nasıl yapılabileceğini ele almaya çalışmıştım. Örnekte son geldiğimiz noktaya bakıldığında aşağıdaki kazanımları elde ettiğimizi düşünebiliriz.

  • Paralel Programlama

    TPL ile WinForms Macerası [Beta 1]

    Dün gece Task Parallel Library ile ilgili olarak internette araştırma yaparken, örnekleri çoğunlukla (hatta tamamen) Console uygulamaları üzerinde geliştirdiğimi farkettim. Oysaki TPL veya PLINQ gibi alt yapıların, WinForms yada WPF (Windows Presentation Foundation) uygulamalarında nasıl kullanılabileceğide önemli bir konuydu. Özellikle Windows Form’larının TPL çalışmalarına karşı nasıl tepkilerde bulunabileceği belkide en önemli noktaydı. Biliyorsunuz TPL alt yapısında, işlemci ve çekirdek gücü sonuna kadar kullanılmakta ve arka planda coşan pek çok Thread yer almaktadır. Fakat WinForms uygulamalarında herşeyin hakimi olan ana Thread’in genellikle bencil olduğuda bilinmektedir. Bu nedenle TPL ile çekilen bir veri içeriğinin, Form üzerindeki bir kontrole doldurulması gerçekten başa bela olabilir.

  • Paralel Programlama

    TPL için Önemli Bir Kavram : Task [Beta 1]

    Bir önceki blog yazımda Task Parallel Library alt yapısının ne olduğunu sizlere aktarmaya çalışmıştım. Tabiki bu alt yapı üzerinde durulması gereken pek çok konu bulunmaktadır. Heyecanım çok, anlatmak içinde sabırsızlanıyorum. Ama her zamanki gibi adım adım ilerlemekte ve acele etmemekte yarar olduğu kansındayın. TPL ile ilişkili önemli konulardan birisi Task (yada Task) sınıfıdır. TPL esas itibariyle görev adı verilen küçük iş parçaları üzerine kurulu bir yapı olarak düşünülebilir. Bu nedenle Task sınıfı son derece önemlidir.

  • Paralel Programlama

    TPL(Task Parallel Library) Nedir? [Beta 1]

    Uzun uzun zaman önceydi. İlk bilgisayarımı daha dün gibi hatırlıyorum. Efsane Commodore 64.

  • Paralel Programlama

    PLINQ - ForAll [Beta 1]

    Bildiğiniz gibi bir süredir LINQ sorgularının paralel çalıştırılması ile ilişkili çalışmalarıma ve araştırmalarıma devam etmekteyim. Bu yazımdaki konumuz ise System.Linq.ParallelEnumerable static sınıfı içerisinde tanımlanmış olan ForAll genişletme metodudur (extension methods).

  • Paralel Programlama

    Paralel Sorgularda İstisna Yönetimi(Exception Handling) [Beta 1]

    Yönetimli kod (Managed Code) tarafında istisna yönetimi oldukça önemli konulardan birisidir. Uygulamaların veya kod süreçlerinin istem dışı sonlanmasının önüne geçilmek istendiği durumlarda, basit try…catch…finally bloklarından yararlanabilir yada Enterprise Library gibi kütüphanelerin sunduğu bloklardan faydalanarak istisna yönetimini üst seviyede sağlayabiliriz. Bu yazımda çok geniş kapsamda düşünmeyip, PLINQ (Parallel Language INtegrated Query) ifadelerinde oluşabilecek istisnai durumların nasıl ele alınması gerektiği üzerinde durmaya çalışacağız. Olaya hızlı bir giriş yapıp aşağıdaki örnek kod parçasına sahip olduğumuzu düşünelim.

  • Paralel Programlama

    PLINQ - Paralellik Altında Ardışık(Sequential) Çalışmak [Beta 1]

    Bir önceki blog yazımızda PLINQ ifadelerinde sıralama konusuna değinmeye çalışmıştık. Bu yazımızda ise, paralel olarak çalıştırılan LINQ sorguları içerisinde, ardışık (Sequential) olarak nasıl işlem yapılabileceğini incelemeye çalışacağız.

  • Paralel Programlama

    PLINQ - Sıralamayı(Ordering) Korumak [Beta 1]

    Hatırlayacağınız gibi, PLINQ (Parallel LINQ) ile ilişkili ilk yazımda, LINQ sorgularının eş zamanlı olarak nasıl çalıştırılabileceğini incelemeye çalışmıştık. Hello World örneğimizde ağırlıklı olarak aşağıdaki sorgu üzerinde durmuştuk.

  • Paralel Programlama

    PLINQ (Parallel LINQ) - Hello World [Beta 1]

    Bildiğiniz gibi son yazımı deniz kenarında bir kafede tatildeyken yazmıştım. Ama tatil bitti malesef ve tekrardan Morpheus’un sözleri kulaklarımda çınladı “Wellcome to the real world”. Yinede 1 haftalığınada olsa tatil yapabildiğime şükrediyorum. Gerçek dünyaya döndükten sonra tabiki bir süre adaptasyon sorunları ile karşılaşıyor insan doğal olaraktan. Bu adaptasyon sorunları içerisinde boğuşurken, neleri araştırabilirim diye düşünürken buluverdim kendimi.