next up previous
Next: Örnek 2 Up: Paralel Grid Ortami1 ( Previous: PME'nin Kurulumu

Örnek 1

PME yordamlarini kullanan ilk örnek olarak asagidaki programi deneyebilirsiniz:


#include <stdio.h>
#include "mpi.h"
#include "libpme.h"

main(
int   argc,
char *argv[])
{

    char      file[40]        ;
    pMesh     mesh            ;
    int       mypid           ;

    MPI_Init(&argc,&argv) ;
    MPI_Comm_rank(MPI_COMM_WORLD,&mypid) ;

    sprintf(file,"%s.%d.msh",argv[1],mypid) ;

    mesh  = pme_new_msh(MPI_COMM_WORLD,NULL) ;

    pme_read_msh(mesh,file) ;

    pme_part_inertia(mesh) ;

    printf("[%d] %d %d %d %d %d %d %d %d %d %d\n",
            mypid,
            pme_num_entity(mesh,PME_VERTEX),
            pme_num_entity(mesh,PME_EDGE),
            pme_num_entity(mesh,PME_FACE),
            pme_num_entity(mesh,PME_REGION),
            pme_num_pb_entity(mesh,PME_VERTEX),
            pme_num_pb_entity(mesh,PME_EDGE),
            pme_num_pb_entity(mesh,PME_FACE),
            pme_num_gb_entity(mesh,PME_VERTEX),
            pme_num_gb_entity(mesh,PME_EDGE),
            pme_num_gb_entity(mesh,PME_FACE)) ;

    if ( pme_high_entype(mesh) == PME_REGION)
       pme_off_gb_pb(mesh,"vis") ;
    else if ( pme_high_entype(mesh) == PME_FACE)
       pme_off_2d(mesh,"vis") ;
    MPI_Finalize() ;
    exit(0) ;
}

Bu programi derledikten sonra asagidaki sekilde 4 islemci üzerinde çalistirirsaniz, elde edeceginiz çikti söyledir:


>mpirun -np 4 ornek1 kare
[0] 4 5 2 0 3 2 0 3 2 0
[1] 4 5 2 0 3 2 0 3 2 0
[2] 4 5 2 0 3 2 0 3 2 0
[3] 4 5 2 0 3 2 0 3 2 0

Yukarida Sekil 1(a)'daki kare gridi girdi olarak programa verilmis, bu grid 4'e parçalanmis ve her islemci üzerinde olan parça grid hakkinda çesitli bilgiler yazilmistir. Bu bilgiler sirasiyla söyledir: nokta sayisi, kenar sayisi, yüz sayisi, bölge sayisi, parca sinirinda bulunan nokta, kenar, yüz sayilari ve geometrik model siniri üzerinde bulunan nokta, kenar, yüz sayilari.

Ayni programa girdi olarak üç boyutlu uçak (airplane) gridi (bak. Sekil 1(b)) verilmek istenirse asagidaki sekilde program çalistirilabilir:


>mpirun -np 8 ornek1 airplane

Örnek 1 programi varlik sayilarini yazdiktan sonra vis.off, vis.0.off, vis.1.off, vis.2.off, vis.3.off isimli 5 dosya yaratir. Bu dosyalar GEOMVIEW (http://www.geomview.org) görsellestirme yazilimi ile görülebilirler. Sekil 1(a-b)'de elde edilen resimler, GEOMVIEW kullanilarak hazirlanmistir.

Figure: Örnek 1'de kullanilan iki boyutlu kare grid (a) ve üç boyutlu uçak gridi (b)
\begin{figure}
\centerline {
\psfig{file=1a.ps,width=2.5in,height=2.5in}
\psfig{file=1b.ps,width=2.5in,height=2.5in}
}\end{figure}

Figure: Örnek 2'de kullanilan iki boyutlu kare gridine Rivara ince uyarlama yapilmasi
\begin{figure}
\centerline {
\psfig{file=3a.ps,width=2.5in,height=2.5in}
\psfig{file=3b.ps,width=2.5in,height=2.5in}
}\end{figure}


next up previous
Next: Örnek 2 Up: Paralel Grid Ortami1 ( Previous: PME'nin Kurulumu
Can Ozturan
2001-12-22