²é¿´: 2538  |  »Ø¸´: 8
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

mhyuan

½ð³æ (СÓÐÃûÆø)

[ÇóÖú] ¹ØÓÚMPI²¢Ðбà³ÌµÄ»ù±¾ÎÊÌâ

ÏëÒª×ÔѧMPI²¢Ðбà³Ì£¬ÓÉÓÚÒÔǰ´Óδ½Ó´¥¹ýMPI£¬ÓÐÊìϤµÄÏ£ÍûÄܰï¸ö棬¶àл¡£

ÎÒÏÖÔÚµÄÏëÒªµÄÊÇ£¬¸øÎÒ¾ÙÒ»¸öMPIµÄʵ¼ÊÀý×Ó£¬ÏÂÃæÊÇÎÒдµÄÒ»¸ö¼òµ¥µÄFortran³ÌÐò£¬ÊǹØÓÚ¼ÆËãÁ½¸öÊý×éÏà³ËµÄ¡£³ÌÐò²»ÊǺܸ´ÔÓ£¬Ï£ÍûÊìϤMPIµÄÐֵܽãÃðïÎҸıà³ÉMPI²¢ÐгÌÐò£¬²¢Ïêϸ˵Ã÷Ò»ÏÂÈçºÎÔËÐУ¨ÓÉÓÚ³õѧMPI£¬¶ÔÕâ·½ÃæµÄ֪ʶ»¹´¦ÓÚ¿Õ°×״̬£©£¬Ï£ÍûÓÐÈ˰ïæ£¬²»Ê¤¸Ð¼¤£¡

  Program Matrix
  Implicit None
  Integer :: I,J,K
  Integer :: A(4,4),B(4,4),C(4,4)
  Data A/1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7/
  Data B/9,8,7,6,5,4,3,2,1,9,8,7,6,5,4,3/
  Do I=1,4
    Do J=1,4
      C(I,J)=0
      Do k=1,4
        C(I,J)=C(I,J)+A(I,K)*B(K,J)
      Enddo
    Enddo
  Write(1101,*) (C(I,J),J=1,4)
  Enddo
  End

[ Last edited by mhyuan on 2011-7-11 at 21:40 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

lrlrwu

½ð³æ (СÓÐÃûÆø)

ºÇºÇ£¬ÎÒÒ²¸Õ¿ªÊ¼Ñ§Ï°MPI±à³Ì~ÎÒÓõÄÊÇC»·¾³ÏµÄ~
7Â¥2012-09-11 18:06:41
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 9 ¸ö»Ø´ð

tsiangsun

ľ³æ (СÓÐÃûÆø)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï
xzhdty(½ð±Ò+1): »¶Ó­³£À´³ÌÐòÓïÑÔ°æÌÖÂÛ 2011-07-13 01:07:47
mhyuan(½ð±Ò+5): 2011-07-16 09:23:21
mpiÊÇcpuÖ®¼ä´«µÝÐÅÏ¢£¨Êý¾Ý£©µÄЭÒé¡£ÄãÒªÃ÷È·Ö¸¶¨Ã¿¸öcpuÒª×öʲô¼ÆË㣬²»ÊÇ˵°ÑÕâ¸ö³ÌÐò±à³Ìmpi¾ÍÐÐÁ˵ġ£

ÍøÉϺÍÊéµê¾ÍÓÐÂô½Ì²ÄµÄ£¬¿´ÁËÒÔºóÔÙÀ´ÎÊ
2Â¥2011-07-12 23:48:18
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

mhyuan

½ð³æ (СÓÐÃûÆø)

¡ï
jjdg(½ð±Ò+1): ¸Ðл²ÎÓë³ÌÐòÓïÑÔ°æÌÖÂÛ 2011-07-16 13:31:29
ÒýÓûØÌû:
Originally posted by tsiangsun at 2011-07-12 23:48:18:
mpiÊÇcpuÖ®¼ä´«µÝÐÅÏ¢£¨Êý¾Ý£©µÄЭÒé¡£ÄãÒªÃ÷È·Ö¸¶¨Ã¿¸öcpuÒª×öʲô¼ÆË㣬²»ÊÇ˵°ÑÕâ¸ö³ÌÐò±à³Ìmpi¾ÍÐÐÁ˵ġ£

ÍøÉϺÍÊéµê¾ÍÓÐÂô½Ì²ÄµÄ£¬¿´ÁËÒÔºóÔÙÀ´ÎÊ

ÕýÔÚѧϰ¹ý³ÌÖÐ......ºÇºÇ¡£
3Â¥2011-07-16 09:25:26
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

mhyuan

½ð³æ (СÓÐÃûÆø)

¸ÕÈëÃÅ£¬Ð´ÁËÒ»¸ö×î¼òµ¥µÄ²¢ÐгÌÐò£¨Matrix.f90£©¡£ÈçÏ£º
        Program Matrix
        Implicit None
        Include 'mpif.h'
       
        Integer :: I,J,K
        Integer :: iam,np,ierr
        integer :: status(MPI_STATUS_SIZE)
        Integer :: A(4,4),B(4,4),C(4,4)

        Call MPI_INIT(Ierr)
        Call MPI_COMM_RANK(mpi_comm_world,iam,ierr)
        Call mpi_comm_size(mpi_comm_world,np,ierr)
       
          Data A/1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7/
          Data B/9,8,7,6,5,4,3,2,1,9,8,7,6,5,4,3/
          Data C/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0/

        Do J=1,4
          Do I=1,4
            C((iam+1),J)=C((iam+1),J)+A((iam+1),I)*B(I,J)
          Enddo
        Enddo

        If (iam==0) then
          Call MPI_Recv(c(2,1),1,MPI_Integer,1,0,mpi_comm_world,status,ierr)
          Call MPI_Recv(c(2,2),1,MPI_Integer,1,0,mpi_comm_world,status,ierr)
          Call MPI_Recv(c(2,3),1,MPI_Integer,1,0,mpi_comm_world,status,ierr)
          Call MPI_Recv(c(2,4),1,MPI_Integer,1,0,mpi_comm_world,status,ierr)

          Call MPI_Recv(c(3,1),1,MPI_Integer,2,0,mpi_comm_world,status,ierr)
          Call MPI_Recv(c(3,2),1,MPI_Integer,2,0,mpi_comm_world,status,ierr)
          Call MPI_Recv(c(3,3),1,MPI_Integer,2,0,mpi_comm_world,status,ierr)
          Call MPI_Recv(c(3,4),1,MPI_Integer,2,0,mpi_comm_world,status,ierr)

          Call MPI_Recv(c(4,1),1,MPI_Integer,3,0,mpi_comm_world,status,ierr)
          Call MPI_Recv(c(4,2),1,MPI_Integer,3,0,mpi_comm_world,status,ierr)
          Call MPI_Recv(c(4,3),1,MPI_Integer,3,0,mpi_comm_world,status,ierr)
          Call MPI_Recv(c(4,4),1,MPI_Integer,3,0,mpi_comm_world,status,ierr)
        Elseif (iam==1) then
            Call MPI_send(c(2,1),1,MPI_Integer,0,0,mpi_comm_world,ierr)
            Call MPI_send(c(2,2),1,MPI_Integer,0,0,mpi_comm_world,ierr)
            Call MPI_send(c(2,3),1,MPI_Integer,0,0,mpi_comm_world,ierr)
            Call MPI_send(c(2,4),1,MPI_Integer,0,0,mpi_comm_world,ierr)
        Elseif (iam==2) then
            Call MPI_send(c(3,1),1,MPI_Integer,0,0,mpi_comm_world,ierr)
            Call MPI_send(c(3,2),1,MPI_Integer,0,0,mpi_comm_world,ierr)
            Call MPI_send(c(3,3),1,MPI_Integer,0,0,mpi_comm_world,ierr)
            Call MPI_send(c(3,4),1,MPI_Integer,0,0,mpi_comm_world,ierr)
        Elseif (iam==3) then
            Call MPI_send(c(4,1),1,MPI_Integer,0,0,mpi_comm_world,ierr)
            Call MPI_send(c(4,2),1,MPI_Integer,0,0,mpi_comm_world,ierr)
            Call MPI_send(c(4,3),1,MPI_Integer,0,0,mpi_comm_world,ierr)
            Call MPI_send(c(4,4),1,MPI_Integer,0,0,mpi_comm_world,ierr)
        Endif

        If (iam==0) then
          Do I=1,4
            Write(1102,*) (C(I,J),J=1,4)
          Enddo
        Endif

        Call MPI_FINALIZE(ierr)
        End
ÔËÐз½Ê½Îª£º
    mpif90 Matrix.f90 -o Matrix
       mpirun -np 4 ./Matrix
£¨µ±È»ÔÚ²¢Ðлú»·¾³Ï£©
ÔËÐнá¹û£¨fort.1102)£º
     136          60         146          79
         103          47          99          61
         133          61         124          79
         163          75         149          97
£¨ÓëÉÏÃæµÄ´®ÐгÌÐò½á¹û£¨fort.1101)ÍêȫһÑù£©
£¨Õâ¸ö²¢ÐгÌÐòºÜµÍ¼¶£¬Óдý¼ÌÐø¸Ä½ø......£©
4Â¥2011-07-21 09:01:54
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 26¿¼ÑÐÒ»Ö¾Ô¸ÖйúʯÓÍ´óѧ(»ª¶«)305·ÖÇóµ÷¼Á +6 ¼ÎÄêÐÂ³Ì 2026-03-15 6/300 2026-03-21 17:07 by Dream007008
[¿¼ÑÐ] ÉúÎïѧһ־Ը985£¬·ÖÊý349Çóµ÷¼Á +3 zxts12 2026-03-21 3/150 2026-03-21 16:34 by 33À´ÁËÕæÀ´ÁË
[¿¼ÑÐ] 317Çóµ÷¼Á +8 Éê×ÓÉêÉê 2026-03-19 14/700 2026-03-21 16:29 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] 268Çóµ÷¼Á +9 ¼òµ¥µã0 2026-03-17 9/450 2026-03-21 15:37 by lature00
[¿¼ÑÐ] ²ÄÁÏѧѧ˶080502 337Çóµ÷¼Á-Ò»Ö¾Ô¸»ªÖпƼ¼´óѧ +4 ˳˳˳mr 2026-03-18 5/250 2026-03-21 10:22 by luoyongfeng
[¿¼ÑÐ] 085601µ÷¼Á 358·Ö +3 zzzzggh 2026-03-20 4/200 2026-03-21 10:21 by luoyongfeng
[¿¼ÑÐ] ÄÜÔ´²ÄÁÏ»¯Ñ§¿ÎÌâ×éÕÐÊÕ˶ʿÑо¿Éú8-10Ãû +5 ÍÑÓ±¶ø³ö 2026-03-16 15/750 2026-03-21 10:16 by ÍÑÓ±¶ø³ö
[¿¼ÑÐ] 274Çóµ÷¼Á +10 S.H1 2026-03-18 10/500 2026-03-20 23:51 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸ËÕÖÝ´óѧ²ÄÁÏÇóµ÷¼Á£¬×Ü·Ö315£¨Ó¢Ò»£© +5 sbdksD 2026-03-19 5/250 2026-03-20 22:10 by luoyongfeng
[¿¼ÑÐ] 08¹¤Ñ§µ÷¼Á +5 Óû§573181 2026-03-20 5/250 2026-03-20 15:47 by xia_2003
[¿¼²©] ÕÐÊÕ²©Ê¿1-2ÈË +3 QGZDSYS 2026-03-18 3/150 2026-03-20 11:58 by ßÉßÉßÉßɽÐ
[¿¼ÑÐ] 085410È˹¤ÖÇÄÜר˶317Çóµ÷¼Á£¨0854¶¼¿ÉÒÔ£© +4 xbxudjdn 2026-03-18 4/200 2026-03-20 09:07 by ²»168
[¿¼ÑÐ] 081700»¯¹¤Ñ§Ë¶µ÷¼Á +3 ¡¾1¡¿ 2026-03-16 3/150 2026-03-19 23:40 by edmund7
[¿¼ÑÐ] 0703»¯Ñ§ 305Çóµ÷¼Á +4 FY_yy 2026-03-14 4/200 2026-03-19 05:54 by anny19840123
[¿¼ÑÐ] 311Çóµ÷¼Á +6 26ÑÐ0 2026-03-15 6/300 2026-03-18 14:43 by haxia
[¿¼ÑÐ] ²ÄÁÏ£¬·ÄÖ¯£¬ÉúÎ0856¡¢0710£©£¬»¯Ñ§ÕÐÉúÀ² +3 Eember. 2026-03-17 9/450 2026-03-18 10:28 by Eember.
[¿¼ÑÐ] 334Çóµ÷¼Á +3 Ö¾´æ¸ßÔ¶ÒâÔÚ»úÐ 2026-03-16 3/150 2026-03-18 08:34 by lm4875102
[¿¼ÑÐ] ¶«ÄÏ´óѧ364Çóµ÷¼Á +5 JasonYuiui 2026-03-15 5/250 2026-03-16 21:28 by ľ¹Ï¸à
[¿¼ÑÐ] 318Çóµ÷¼Á +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[¿¼ÑÐ] 070303 ×Ü·Ö349Çóµ÷¼Á +3 LJY9966 2026-03-15 5/250 2026-03-16 14:24 by xwxstudy
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û