×
Yeni bir madde oluştur
Sayfa başlığınızı buraya yazın:
We currently have 15 articles on UHeM Wiki. Type your article name above or create one of the articles listed here!



    UHeM Wiki
    15Maddeler

    OPENMP Kullanım Kılavuzu

    simple.c isimli bir openmp kodumuz olduğunu varsayalım. Bu OpenMP kodu derleyerek, "programim" adıyla bir program (executable) elde etmek için, aşağıdaki şekilde derleme yapılabilir:

    Gcc için:

    [yildirim@lnode2 ~]$ gcc -fopenmp simple.c -o programim
    

    Intel'in derleyicisi için:

    [yildirim@lnode2 ~]$ icc -openmp simple.c -o programim
    simple.c(9) : (col. 1) remark: OpenMP DEFINED REGION WAS PARALLELIZED
    



    Unutulmamalıdır ki OpenMP kodları ortak paylaşımlı bellekler gerektirdiği için, sadece tek bir bilgisayarda çalışacaktır. MPI işleri gibi birden fazla bilgisayarı kullanacak şekilde çalıştırılamazlar.


    Derlediğimiz programımızı UHEM'de çalıştırmak için,

    [yildirim@lnode2 ~]$ bsub -q kuyruk_adi -m ege –P proje_adi -n 8 -a openmp  -R "span[hosts=1]" -o %J.out -e %J.err ./programim
    Job <6230> is submited to queue <short>.
    

    Buradaki "span[hosts=1]" ifadesi "istedigim tüm işlemcileri tek bir makinada ver" demektir. Openmp birden fazla bilgisayarı aynı anda kullanamadığından bu gereklidir. Ayrıca "-a openmp" ile işimizin openmp işi oldugunu lsf'e bildiriyoruz.


    Bakalım işimiz çalıştı mı?

    [yildirim@lnode2 ~]$ bjobs
    JOBID   USER      STAT   QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME
    6230    yildirim  PEND   short       ege                            ./programim      Mar 15 13:30
    [yildirim@lnode2 ~]$ bjobs
    JOBID    USER   STAT  QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME
    6230    yildirim RUN   short      ege          b094           ./programim         Mar 15 13:3
    

    Ve aşağıdaki gibi bir çıktı elde edebiliriz:

    The output (if any) follows:
    Hello World from thread = 0
    Number of threads = 8
    Hello World from thread = 1
    Hello World from thread = 3
    Hello World from thread = 2
    Hello World from thread = 4
    Hello World from thread = 5
    Hello World from thread = 7
    Hello World from thread = 6