Tek Fotolok İpucu 88–Task.WaitAll out, Parallel.Invoke in 25 Mart 2013 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Bildiğiniz üzere paralel çalışmasını istediğimiz görevler olduğunda genellikle bunları birer Task halinde üretir ve bir dizi içerisinde toplarız(En azından TPL-Task Parallel Library geldikten sonra böyle yapmakta olduğumuzu ifade edebiliriz) G&o... [Daha fazla]
.Net Framework 4.5 Asenkron IO İşlemleri 25 Ocak 2013 Burak-Selim-Senyurt .Net Framework 4.5 Asenkron çalışma çok uzun zamandır hayatımızda. Ancak yazılım geliştiriciler için halen daha tam anlamıyla mükemmel değil. Özellikle .Net Framework açısından olaya baktığımızda. Yine de her .Net Framework sürümünde, User Experience' ın yoğun ve cevap verebilirliği yüksek ekranların tasarlanmaya çalışıldığı senaryolarda, geliştiricilerin ellerinde daha güçlü kozlar oluşmakta. Burada en büyük yardımcı tabiki Framework içerisine dahil edilen Built-In operasyonlar/fonksiyonlar. [Daha fazla]
WCF 4.5–Task Based Asynchronous Operasyonlar 01 Ocak 2013 Burak-Selim-Senyurt WCF, WCF 4.5 Bilindiği üzere .Net Framework 4.5 ile birlikte altyapıya entegre olan async ve await anahtar kelimelerini kullanarak, task bazlı asenkron programlama teknikleri uygulanabilmektedir. Çok doğal olarak WCF 4.5 tarafında da bunun bir yansımasını görmekteyiz. Visual Studio arabirimi üzerinden herhangibir WCF servis referansını istemci uygulamaya eklemeye çalıştığımızda Task bazlı operasyon desteği varsayılan olarak etkinleştirilmekte ve proxy tipi içeriğinde buna uygun metodlara yer verilmektedir. Dolayısıyla WCF(Windows Communication Foundation) servislerini kullanan istemciler, operasyon çağrılarında async ve await anahtar kelimelerinden de yararlanabilirler. [Daha fazla]
Asp.Net Web API’ leri ASPX’ den Asenkron Çağırmak 14 Kasım 2012 Burak-Selim-Senyurt .Net Framework 4.5 Bilindiği gibi Asenkron(Asynchronous) çalışma, günümüz yazılım geliştirme araçlarının olmazsa olmaz parçalarından birisidir. Nitekim kullanıcı deneyimi(User Experience) yüksek olan uygulamalarda, istemcilerin uzun sürebilecek işlemleri beklemeden başkalarına devam edebilmesi tercih edilen ve işlem sürelerini kısaltan bir kabiliyettir. [Daha fazla]
Entity Framework 6 Alpha 1 ve async, await Özellikleri 01 Kasım 2012 Burak-Selim-Senyurt Entity Framework Sözü fazla uzatmıyayım ama daha bu ayki Entity Framework 5.0 tabanlı Nedirtv?com Webinerime hazırlanırken bir kaç gün önce EF 6.0’ nın alpha sürümünün yayınlandığını ve NuGet paket yönetim aracı ile indirilebileceğini öğrendim. [Daha fazla]
WCF Tarafında Task Bazlı Asenkron Operasyonlar 24 Mayıs 2012 Burak-Selim-Senyurt WCF 4.0 Uzun bir zamandır .Net Framework içerisinde, fonksiyonların asenkronize edilmesi üzerinde çalışılmaktadır. Daha önceleri Thread bazlı veya Delegate tipleri ile gerçekleştirdiğimiz asenkron çağırımlar, .Net Framework 4.0’ a gömülü olarak gelen Task Parallel Library sayesinde daha da gelişmiş ve alt yapının her noktasına enjekte edilebilir olmuştur. Şu günlerde .Net Framework 4.5 ile birlikte gündeme gelen ve uzun zamandır da haberdar olduğumuz async, await gibi anahtar kelimeler de, temel de Task tiplerine dayanmaktadır. Bir başka deyişle TPL kütüphanesi ve içeriği, ilerleyen zamanlarda .Net Framework’ ün pek çok önemli alt yapısında etkisini hissettirecektir. [Daha fazla]
Task Relations–Continuation Metodları 18 Kasım 2011 Burak-Selim-Senyurt Parallel Programming Continuations tekniklerinde, bir Task’ ın çalıştırılması veya icra edilmesi, atası olan ya da öncesinden tanımlanıp kendisine bağlanan Task örneklerine bağlıdır. Normal şartlar altında size tek bir Task örneği ve bu Task çalışmasını bitirdikten sonra devreye girmesi gereken bir Task örneğinin ele alındığı senaryoyu aktarmam gerekiyor. Ancak bana göre konunun daha iyi anlaşılabilmesi için aşağıdaki kod parçasında yer alan örneği göz önüne alarak başlamamız daha doğru olacaktır [Daha fazla]
Barrier Class, Sıralama Algoritmaları ve At Yarışı 17 Ekim 2011 Burak-Selim-Senyurt Parallel Programming Durumu daha iyi analiz edebilmek için dilerseniz basit bir senaryo üzerinden ilerlemeye çalışalım. Malumunuz günümüz üniversitelerinde özellikle algoritma derslerinde en çok sorulan, okutulan, ezberletilen konuların başında sıralama teknikleri gelmektedir. Bubble Sort, Quick Sort, Insertion Sort vb… [Daha fazla]
Composite Cancellations 26 Nisan 2011 Burak-Selim-Senyurt Parallel Programming, TPL Bildiğiniz üzere Task iptal taleplerinde, CancellationTokenSource örneğine ait Cancel metodunun çağırılması gerekmektedir. CancellationTokenSource örneği üzerinden yapılan iptal taleplerinin hangi Task işleyişini keseceğinin belirlenmesinde ise CancellationToken örneklerinden yararlanılmaktadır. [Daha fazla]
Task İptal İşlemlerinin İzlenmesi(Monitoring Cancellation) 23 Nisan 2011 Burak-Selim-Senyurt Parallel Programming Bu yazımızda daha önceden .Net Framework Beta 1 ve Beta 2 sürümlerinde incelediğimiz Task iptal işlemlerini son sürümde ele alıp toparlamaya çalışıyor olacağız. [Daha fazla]
TPL Senkronizasyonu Sağlamak – 2 (Interlocked) 31 Ocak 2011 Burak-Selim-Senyurt Parallel Programming Hatırlayacağınız üzere TPL Senkronizasyonu Sağlamak – 1 başlıklı yazımız ile Task Parallel Library(TPL) tarafında senkronizasyon kullanımını incelemeye başlamıştık. Aslında başımıza iş mi açtık bilemiyorum ama sonuç itibariyle kritik bir konu olduğunda sanıyorum ki hepimiz hem fikiriz. Önceki yazımızda değerlendirdiğimiz senaryoda, lock keyword kullanımı ile izole edilmiş bir veri alanının, farklı iş parçaları tarafından nasıl güvenli bir şekilde kullanılabileceğini analiz etmiştik. Üstelik bu keyword’ ün aslında arka planda Monitor tipini kullandığını da Intermediate Language(IL) kodunda görmüştük. Elbette iş parçalarının senkronizasyonu için kullanılabilecek farklı tipler de söz konusudur. Interlocked sınıfı gibi. [Daha fazla]
TPL Senkronizasyonu Sağlamak - 1 27 Ocak 2011 Burak-Selim-Senyurt Parallel Programming, TPL TPL ve Shared Data Isolation başlıklı yazımızda, n sayıda Task örneğinin ortaklaşa kullandıkları bir veri alanı üzerindeki işlemlerinin, ne gibi sonuçlara yol açabileceğini incelemiş ve bunun önün geçmek için basit bir kaç yolu ele almıştık. [Daha fazla]
TPL ve Shared Data Isolation 20 Ocak 2011 Burak-Selim-Senyurt Parallel Programming Task Parallel Library alt yapısını kullanarak geliştirdiğimiz paralel kodlarda önem arz eden konulardan birisi de, paylaşılan verilerin hesaplamalara katıldığı durumlardaki sonuç tutarlılıklarının nasıl sağlanacağıdır. Bunun bilinen bir kaç yolu vardır. Aslında bir tanesi ve en basiti kodu tamamen senkron olarak geliştirmektir. Yani paralel çalıştırmak gibi bir maceraya hiç girmemektir. Diğer bir yol ise Task örnekleri içerisinde ele alınan paylaşılmış verilerin izole edilerek kullanılmasıdır. [Daha fazla]
Paralel Programlamada İstisna Yönetimi 13 Ocak 2011 Burak-Selim-Senyurt Parallel Programming Task örneklerinin kullanıldığı senaryolarda, bloklar içerisinde yer alan işlevselliklerin doğurabileceği çalışma zamanı istisnalarını ele almak, son derece önemlidir. Nitekim paralel çalışmakta olan blokların beklenmedik bir şekilde sonlandırılması söz konusudur. İşte bu yazımızda Task örnekleri içerisinde oluşabilecek istisnaların nasıl ele alınabileceğini incemelye çalışıyor olacağız. [Daha fazla]
Task Wait,WaitAll,WaitAny 06 Ocak 2011 Burak-Selim-Senyurt Parallel Programming Task Süreçlerinde Bilinçli Olarak Duraksatma başlıklı bir önceki yazımızda CancellationToken.WaitHandle.WaitOne, Thread.Sleep ve Thread.SpinWait metodlarından yararlanarak bir Task çalışmasının bekletme işlemlerinin nasıl yapılabileceğini incelemeye çalışmıştık. [Daha fazla]
Task Süreçlerinde Bilinçli Olarak Duraksatma 31 Aralık 2010 Burak-Selim-Senyurt Parallel Programming Bu günkü konumuz Task nesne örneklerinin işlettikleri süreçleri bilinçli olarak nasıl bekletebileceğimiz ile ilgilidir. Pek çok sebepten dolayı Task örneklerinin çalıştırdıkları iş parçalarının belirli süreler boyunca veya süre bağımsız olarak bekletilmeleri istenebilir. Burada zaman bağımlı ya da koşul bağımlı olarak bekletmelerin/duraksatmaların yapılabilmesi söz konusudur. Genel olarak 3 farklı bekletme tekniğinden söz edebiliriz. [Daha fazla]
AttachedToParent Hakkında Detaylar 02 Eylül 2010 Burak-Selim-Senyurt Parallel Programming, TPL Daha önceki iki yazımızda(Parent-Child Tasks Kavramı, Parent-Child Task Exception Durumlar) sürekli olarak AttachedToParent metodunun belirli bir kullanımını ele aldık. Oysa ki, Child Task örneklerinin Parent Task örneklerinin yaşam döngülerine eklenmelerinde izlenebilecek birden fazla yol bulunmaktadır. Buna göre Parent Task örneğine dahil olmak için aşağıdaki tekniklerden herhangibirisinden yararlanılabilir. [Daha fazla]
Parent-Child Task Exception Durumları 03 Ağustos 2010 Burak-Selim-Senyurt C# 4.0, Parallel Programming, TPL Hatırlayacağınız üzere Parent-Child Tasks Kavramı başlıklı yazımızda .Net Framework 4.0 tarafında paralel programlamada önemli bir yere sahip olan Task örnekleri arasındaki Parent, Child ilişkiyi incelemeye çalışmıştık. Parent-Task nesne örnekleri arasındaki ilişkilerde bilinmesi gereken konulardan birisi de, istisnaların nasıl ele alındığıdır(Exception Handling). Aslında konuya hızlı bir giriş yaparak ilerlememiz şu aşamada avantajımız olacaktır. [Daha fazla]
Microsoft Teknoloji Günleri Akşam Sınıfı – Gün 2 – Paralel Programlama Tamamlandı 23 Haziran 2010 Burak-Selim-Senyurt Eğitimler Microsoft Teknoloji Günleri Akşam Sınıfının ikinci eğitimi olan Paralel Programlama dersimizi, 22 Haziran 2010 günü Microsoft İstanbul Ofisi Jupiter 1 salonunda gerçekleştirdik. Öncelikle katılan tüm arkadaşlarımıza, ilgi ve alakaları için teşekkür ediyorum. [Daha fazla]
TPL – Göz Göre Göre Başımızı Belaya Sokmak 21 Haziran 2010 Burak-Selim-Senyurt Parallel Programming, TPL Ancak birden fazla iş parçasının da deadlock’ a düşmesi, bir başka deyişle birbirlerini beklemeleri nedeniyle, içinde çalıştıkları Thread’ i(çoğunlukla ana uygulama iş parçası-Main Thread) kitlemeleri söz konusudur. Durumu daha net anlayabilmek için aşağıdaki kod parçasını göz önüne alalım. [Daha fazla]
Parent-Child Tasks Kavramı 11 Haziran 2010 Burak-Selim-Senyurt Parallel Programming, TPL Ancak Task nesne örneklerinin devreye girdiği noktada, Parent-Child ilişkiler kurularak Planlanmış/Yapılandırılmış görevlerin(Structured Tasks) oluşturulması da mümkündür. [Daha fazla]
Paralel Programlamada Performans, Hız, Verimlilik ve Ölçeklenebilirlik Ölçümleri 22 Şubat 2010 Burak-Selim-Senyurt Parallel Programming Ben Matematik Mühendisliği eğitimi almış bir bireyim. Öğrenim hayatım boyunca en çok yaptığım işlerden birisi, matematiksel teoremlerin bilimsel ispatlarını gerçekleştirmek olmuştur. Hemen hemen mühandisliğin her alanındaki farklı problemlerin modellenmesi ve ispatlarının yapılarak en uygun yol olduklarının gösterilmesi adına pek çok kağıt karalamış ve tüketmişimdir. [Daha fazla]
Webiner - .Net 4.0 ile Paralel Programlamaya Giriş [Beta 2] 25 Aralık 2009 Burak-Selim-Senyurt Parallel Programming Merhaba Arkadaşlar, Bundan yıllar önce üniversitede öğrenciyken ilk kişisel bilgisayarımı almak üzere rahmetli babam ile birlikte Perpa' ya gittiğimi hatırlıyorum. O sıralar piyasada var olan bilgisayar dergilerini hatırlıyorum da...486 DX-33 tabanlı işlemcilere sahip sistemler ... [Daha fazla]
FORParallelism 16 Aralık 2009 Burak-Selim-Senyurt TPL Günümüz yazılım teknolojilerinin belkide en popüler olan konularından biriside paralel programlamadır(Parallel Programming). Özellikle kullanıcı bilgisayarlarının artık birden fazla çekirdeğe sahip işlemcilerle donatılmış olduğu düşünüldüğünde geliştirme ortamlarının da(.Net Framework 4.0' da olduğu üzere) paralel programlamaya daha fazla destek vermeye başladığını görmekteyiz. [Daha fazla]
Task Parallel Library(TPL) - Detached Tasks [Beta 2] 12 Kasım 2009 Burak-Selim-Senyurt TPL Bir önceki yazımızda Task Parallel Library tarafında .Net Framework 4.0 Beta 2 tabanlı olarak iptal işlemleri(Task Cancellation) için yapılan değişikliklere değinmeye çalışmıştık. TPL tarafında yapılan değişikliklerden birisi de iç içe çalışan Task' ler arasındaki Parent - Child ilişkiye yönelik olarak yapılmıştır. Aslında basit bir davranış değişikliği olduğunu söyleyebiliriz. Konuyu daha net kavramak amacıyla aşağıdaki örnek kod parçasını göz önüne alalım. [Daha fazla]