Süreleri kronometreyle tutunca, yazma gereği duymadım ama 1.000.000 e kadar saydırırken süreler aynıydı.. http://yigitdemirag.com

up http://yigitdemirag.com

Merhaba arkadaşlar fortranda elimde bir dngü var diyelim 1-100 e kadar sayıyor. Bunu paralelleştirmek için PROGRAM counter USE omp_lib INTEGER :: i, j, a!$OMP PARALLEL PRIVATE !$OMP DO DO i=1,100 WRITE omp_get_thread_num , i END DO!$OMP END DO!$OMP END PARALLEL END PROGRAM counter yazıyorum. Ama bunun çalışma süresiyle hiç openmp kullanmamamın verdiği süre aynı. Bu neden oluyor anlamıyorum.. Ayrıca programın çıktısı da 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 4 53 4 54 4 55 4 56 4 57 4 58 4 59 4 60 4 61 4 62 4 63 4 64 4 65 7 92 7 93 7 94 7 95 7 96 7 97 7 98 7 99 7 100 3 40 3 41 3 42 3 43 3 44 5 66 5 67 5 68 5 69 5 70 5 71 5 72 5 73 5 74 5 75 5 76 5 77 5 78 3 45 3 46 3 47 3 48 3 49 3 50 3 51 3 52 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 2 27 2 28 2 29 2 30 2 31 2 32 2 33 2 34 2 35 2 36 2 37 2 38 2 39 6 79 6 80 6 81 6 82 6 83 6 84 6 85 6 86 6 87 6 88 6 89 6 90 6 91 bunun gibi oluyor. Threadler işlemcilere dağıldı. Her işlemci uygun olduğu zamanda sayıyor ve tekrarlanma olmuyor. Ancak neden sıralı değiller. Bu bir do dngüsü ve sıralı olmaları gerekmez mi.. Unuttuğum yer neresi.. Ve son olarak i değerini private yaparsam her işlemciye zel olacaktı. Sadece her işlemciye zelse, kendi cache lerinde tutuluyor bu sayede diğerleri onu okuyamıyor diye düşünmüştüm. Ancak arada sayılarda tekrarlanma olmadığına gre, kimin nerede olduğunu bütün işlemciler biliyor. Bu nasıl mümkün oluyor, yanlış olduğum yer neresi.. Yardımlarınız için şimdiden teşekkürler.. Gece gece olmadı openMP.. http://yigitdemirag.com

openMP hiç kulannamadım ama mpi programlama ile paralel denemeleri yapmıştık, kaça kadar sayılacaksa belirtilen çekirdek sayısına blüp arrayler ile o işlemclere yoluuuyodu, yle bişeyler deneybilirsin istersen.

süreler nerde hocam? .

hocam mpi kullanırken bizde allocate edip blüp gnderiyorduk ancak burada durumun farklı olacağını düşünüyorum. Message send değil de threadler üzerine çalışılınca hız farkı nasıl olaak onu inceliyordum bende.. http://yigitdemirag.com