Fork and Join Framework

Slides:



Advertisements
Benzer bir sunumlar
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Advertisements

Erkan BALABAN Yazılım Uzmanı NTV
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
Programlama-II (Java ile Bilgisayar Programlama)
Bölüm 6 – Metodlar ve Parametreler
Metodlar ve Parametreler
Özyinelemeli(Recursive) Algoritma Tasarımı
BPR152 ALGORİTMA VE PROGRAMLAMA - II
HAZIRLAYANLAR AYHAN ÇINLAR YUNUS BAYIR
19. VE 20. YÜZYILDA BİLİM.
İŞLETİM SİSTEMİ İşletim Sistemi Nedir İşletim Sisteminin Görevleri
ÇOCUKLARDA BRONŞİOLİT VE PNÖMONİ
ADRESLEME YÖNTEMLERİ.
Diksiyon Ödevi Konu:Doğru ve etkili konuşmada
BAĞIMLILIK SÜRECİ Prof Dr Süheyla Ünal.
FACEBOOK KULLANIM DÜZEYİNİN TRAVMA SONRASI STRES BOZUKLUĞU, DEPRESYON VE SOSYODEMOGRAFİK DEĞİŞKENLER İLE İLİŞKİSİ  Psk. Asra Babayiğit.
BİLİŞİM TEKNOLOJİLERİ NEDİR?
Can, H. (1997). Organizasyon ve Yönetim.
AKIŞKANLAR MEKANİĞİ 3. BASINÇ VE AKIŞKAN STATİĞİ
GAZLAR Yrd. Doç. Dr. Ahmet Emin ÖZTÜRK. GAZLAR Yrd. Doç. Dr. Ahmet Emin ÖZTÜRK.
DİSİPLİN HUKUKU.
IMPLEMENTATION OF SOME STOCK CONTROL METHODS USED IN BUSINESS LOGISTICS ON DISASTER LOGISTICS: T.R. THE PRIME MINISTRY DISASTER AND EMERGENCY MANAGEMENT.
A416 Astronomide Sayısal Çözümleme - II
Sosyal Bilimler Enstitüsü
FURKAN EĞİTİM VAKFI TEFSİR USULÜNE GİRİŞ
Tarımsal nüfus ve tarımda istihdam
AKIŞKANLAR MEKANİĞİ 3. BASINÇ VE AKIŞKAN STATİĞİ
Emir ÖZTÜRK T.Ü. F.B.E. Bilg. Müh. A.B.D. Y.L. Semineri
Toplam Çıktı - Bir ekonomide belirli bir dönemde üretilen (arz edilen) toplam mal ve hizmet miktarıdır. Toplam Gelir - Belirli bir dönemde üretim faktörlerinin.
THE EVALUATION OF CRITICAL SUCCESS FACTORS AND PERFORMANCE CRITERIA AT DISASTER AND EMERGENCY MANAGEMENT THROUGH THE EYES OF EMPLOYEES: GÜMÜŞHANE CITY.
7 AĞIRLIK VE GEOMETRİK MERKEZ.
KEMOSENTEZ
Endometrium Kanserinde Fertilite Koruyucu Tedavi
Cumhuriyet Dönemi ve Sonrası Türk Mimarisi
İDARİ YARGI SİSTEMİ VE DENETİMİNİN KAPSAMI-SINIRLARI
Prof. Dr. Ayten DEMİR Ankara Üniversitesi Sağlık Bilimleri Fakültesi
ÇOCUĞUN SOYBAĞI SOYBAĞI KAVRAMI VE ÇEŞİTLERİ
Skrotumal Hastalıklar
‘’REİS BEY’’ CAST SUNUM DOSYASI (ERKEKLER)
BUDAMA Budama koltuk (sürgün) alma, yaprak alma, uç (tepe) alma şeklinde yapılır. 1-KOLTUK (SÜRGÜN) ALMA Domateslerde yaprağın gövdeye birleştiği yerden.
BÖLÜM 3 . BASINÇ VE AKIŞKAN STATİĞİ
[ Doğrusal Programlama] [DOĞRUSAL PROGRAMLAMA ÖRNEKLERİ]
Ankara Üniversitesi Sağlık Bilimleri Fakültesi Sosyal Hizmet Bölümü
Prof. Dr. Güray Küçükkocaoğlu
YRD. DOÇ. DR. OKTAY KIZILKAYA
11. SINIF: ELEKTRİK ve MANYETİZMA ÜNİTESİ Manyetizma ve Elektromanyetik İndükleme: Yüklü Parçacıkların Manyetik Alan İçerisindeki Hareketleri Doç.
AYRIK İŞLEMSEL YAPILAR
11. Sınıf: KUVVET ve HAREKET ünitesi Tork
Bölüm 5: MIMO Kanal Modelleri
1 .KALİTE KAVRAMI.
Varyans Analizi: Ortalamalar Arası Farkların Test Edilmesi
Diyot uygulamaları Elektronik Devre Lab. Arş. Gör. KEMAL KALAYCI
İNSANİ GELİŞME İNDEKSİ HESAPLAMA ÖRNEĞİ 2 YUNANİSTAN
ELE 561 Kablosuz Haberleşme
ELE 561 Kablosuz Haberleşme
AKIŞKANLAR MEKANİĞİ 12. SIKIŞTIRILABİLİR AKIŞKANLARDA AKIŞ
MALTEPE ÜNİVERSİTESİ Paralel Hesaplama MATLAB ve Paralel Hesaplama
11. SInIf: ELEKTRİK VE MANYETİZMA ÜNİTESİ KONDASATÖR (SIĞAÇ)
2016 – DÖNEM TEOG GÜLTEPE ORTAOKULU.
22nd ERES Conference, June 24-27, 2015, Istanbul/TR
Öğr. Elemanı: Dr. M. Cumhur AKBULUT
Fatih Dervent, Erhan Devrilmez, Emi Tsuda, Phillip Ward
GÜG’lerin Üretilen Mamullere Yüklenmesi
MÜHENDİSLİK ÖLÇMELERİ
Analog Haberleşme Dersi 12. Hafta
Uygarlık tarihi Kisim 7.
Recursion (Özyineleme)
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Fork and Join Framework Buğra Güneş

Fork and Join Framework Result solve(Problem problem) { if (problem Küçük mü ?) Sorunu Hemen Çöz! else { Problemi parçalara ayır fork  alt görevlere ayırma problemi çöz join alt görevleri birleştir Sonuç }

Fork and Join Framework Fork-Join bir problemi küçük parçalara bölerek, onları paralel olarak eş zamanlı çözmek ve çözümü nihayetinde birleştirerek sonuca ulaşma yaklaşımı baz alınrak geliştirilmiş framework(çatı)'tür. Öncesinde JDK 5 içindede mevcut olan bu yapı , JDK 7'de de yerini almıştır.

Fork and Join Framework ForkJoin Framework’ü Java 7 standart kütüphanelerinin parçasıdır. Bilgisayarınızda kullanabilmeniz için JDK7’ nin ve uygun bir IDE’nin kurulu olması yeterli olacaktır.

Fork and Join Framework Framework'ün gerçek anlamda performanslı çalışması için yüksek sayıda (onlarca) işlemci ile işlem yapılıyor olması gereklidir. Multi-core(çok çekirdek) sistemler için dizayn edilmiştir. Genel olarak, 4 çekirdek ve üzeri sistemlerde performans olarak kısmen göze çarpabilir bu ise yapılacak işe göre değişkenlik gösterir. 

Fork and Join Framework

Fork and Join Framework Aşağıdaki 4 yapı Fork and Join Framework’ü için önem taşımaktadır. ForkJoinPool RecursiveTask ForkJoinTask RecursiveAction

Fork and Join Framework Fork Join Pool :Framework’ün ana sınıfıdır, görevleri çalıştıran sorumlu birim fork join pool sınıfıdır. Fork Join Task: ForkJoinPool içinde soyut bir sınıftan(java.util.concurrent) türemiş task olarak çalışır. Birden çok sayıda yeni tasklar oluşturmakiçin fork() vejoin.fork() metodlarını kullanır.

Fork and Join Framework fork() metodu daha küçük parçaya ayrılan yeni işi kuyruğa ekler. Her thread'in kendi kuyruğu var, ancak gerekirse diğer thread'ler iş çalma (work stealing) yapabilirler. compute() metodu daha küçük parçaya ayrılan yeni işi kuyruğa eklemeden mevcut thread ile çalıştırır. join() metodu kuyruktaki çalıştırılan işin bitmesini bekler.

Fork and Join Framework if (problem Küçük mü ?) Hemen Çöz! else { Alt Görevlere böl Görevleri işlet SONUÇLARIN TAMAMLANMASINI BEKLE }

Fork and Join Framework RecursiveAction:Görevlerinizin bir sonuç dönmesi gerekmiyorsa recursive action alt sınıfını kullanabilirsiniz. RecursiveTask:Görevleriniz bir sonuç dönmesi gerekiyorsa recursive task alt sınıfını kullanabilirsiniz.Örneğin Fibonacci sayıları hesaplanırken , her görev bi sonraki göreve değer aktarmalıdır.Bu hesaplamada recursivetask kullanılır.

Fork and Join Framework ForkJoinPool fjpool = new ForkJoinPool(); for (int i = 0; i < iterations; i++) { RecursiveAction task = new RandomFillAction(array, 0, array.length); long start = System.currentTimeMillis(); fjpool.invoke(task);

Fork and Join Framework class RandomFillAction extends RecursiveAction { if (high - low > splitSize) { // task büyükse parçala int mid = (low + high) >>> 1; invokeAll(asList(new RandomFillAction(array, low, mid), new RandomFillAction(array, mid, high))); } else { Random random = new Random(); for (int i = low; i < high; i++) { array[i] = random.nextInt(10000);

Fork and Join Framework Fork Join Framework’ü kullanılmaksızın elde edilen çıktılar Sequential processing time: 1360 ms Sequential processing time: 1362 ms Sequential processing time: 1338 ms Sequential processing time: 1346 ms Sequential processing time: 1304 ms Sequential processing time: 1296 ms Sequential processing time: 1309 ms Sequential processing time: 1343 ms Sequential processing time: 1351 ms Sequential processing time: 1359 ms Number of processor available: 4

Fork and Join Framework Fork Join Framework’ü kullanılarak elde edilen çıktılar Parallel processing time: 445 ms Parallel processing time: 398 ms Parallel processing time: 370 ms Parallel processing time: 366 ms Parallel processing time: 378 ms Parallel processing time: 365 ms Parallel processing time: 363 ms Parallel processing time: 367 ms

Fork and Join Framework

Fork and Join Framework

Fork and Join Framework Uygulamalar

Fork and Join Framework Teşekkürler