²é¿´: 2527  |  »Ø¸´: 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µÄ»ØÌû

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µÄ»ØÌû

mhyuan

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

¡ï
dubo(½ð±Ò+1): »¶Ó­³£À´³ÌÐòÓïÑÔ°æÌÖÂÛ 2011-07-31 13:22:45
¼òµ¥°æ±¾
        Program Matrix
        Implicit None
        Include 'mpif.h'
       
        Integer :: I,J,K
        Integer :: iam,np,ierr
        Integer :: A(4,4),B(4,4),C(4,4)
        Integer :: AA(4),CC(16)

        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 CC/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0/

        Do I=1,4
          AA(I)=A((iam+1),I)
        Enddo

        Do J=1,4
          Do I=1,4
            CC(J)=CC(J)+AA(I)*B(I,J)
          Enddo
        Enddo

        Call MPI_Gather(CC,4,MPI_Integer,CC,4,MPI_Integer,0,mpi_comm_world,ierr)

        If (iam==0) then
        K=0
        Do I=1,4
          Do J=1,4
            K=K+1
                C(I,J)=CC(K)
          Enddo
          Write(1103,*) (C(I,J),J=1,4)
        Enddo
        Endif

        Call MPI_FINALIZE(ierr)
        End
ÔËÐз½Ê½Ò»Ñù
ÔËÐнá¹ûÒ»Ñù
5Â¥2011-07-22 11:21:26
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

kevin123581

½ð³æ (ÕýʽдÊÖ)

¸Ð¾õmpi¸ÄдºÃ¸´ÔÓ°¡£¬ÎÒÒ²×¼±¸Ñ§Ñ§
6Â¥2012-09-11 11:55:57
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

lrlrwu

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

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

wangjiang381

Í­³æ (³õÈëÎÄ̳)

²»´í£¡ÎÒҲҪѧϰ
8Â¥2012-11-08 21:00:47
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

weiwei43

ÖÁ×ðľ³æ (ÕýʽдÊÖ)

Â¥Ö÷ѧϰµÃÕæ¿ìѽ!
ÔÚ VS2008Ï¿ÉÒÔÂð?Äãд³öµÄÔËÐз½Ê½ÄÜתµ½vs2008ÏÂÂð?
9Â¥2014-07-12 21:37:27
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ mhyuan µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] ±»ÎÒÑÔÖУºÐÂÄ£°å²»Ç¿µ÷¸ñʽÁË£¬¼Ùר¼Ò¿ªÊ¼¹Ü¸ñʽÁË +4 beefly 2026-03-14 4/200 2026-03-17 22:04 by »ÆÄñÓÚ·ÉChao
[¿¼ÑÐ] 296Çóµ÷¼Á +5 ´ó¿Ú³Ô·¹ ÉíÌ彡 2026-03-13 5/250 2026-03-17 21:05 by ²»»ó¿ÉÀÖ
[¿¼ÑÐ] 277µ÷¼Á +5 ×ÔÓɼå±ý¹û×Ó 2026-03-16 6/300 2026-03-17 19:26 by Àîleezz
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤Çóµ÷¼Á +5 Ð÷ÐÒÓë×Ó 2026-03-17 5/250 2026-03-17 16:40 by laoshidan
[¿¼ÑÐ] Áº³ÉΰÀÏʦ¿ÎÌâ×é»¶Ó­ÄãµÄ¼ÓÈë +8 һѼѼӴ 2026-03-14 10/500 2026-03-17 15:07 by һѼѼӴ
[¿¼ÑÐ] 290Çóµ÷¼Á +6 ¿×Ö¾ºÆ 2026-03-12 11/550 2026-03-17 14:41 by ÖÜÖÛÖÛ77
[¿¼ÑÐ] 211±¾£¬11408Ò»Ö¾Ô¸ÖпÆÔº277·Ö£¬ÔøÔÚÖпÆÔº×Ô¶¯»¯Ëùʵϰ +6 Losir 2026-03-12 7/350 2026-03-17 12:09 by danranxie
[¿¼ÑÐ] ¿¼Ñе÷¼Á +3 ä¿ya_~ 2026-03-17 5/250 2026-03-17 09:25 by Winj1e
[¿¼ÑÐ] Ò»Ö¾Ô¸211 0703·½Ïò310·ÖÇóµ÷¼Á +3 ŬÁ¦·Ü¶·112 2026-03-15 3/150 2026-03-16 16:44 by houyaoxu
[¿¼ÑÐ] 311Çóµ÷¼Á +5 26ÑÐ0 2026-03-15 5/250 2026-03-16 16:21 by a²»Ò×
[¿¼ÑÐ] 0703 ÎïÀí»¯Ñ§µ÷¼Á +3 ÎÒ¿ÉÒÔÉϰ¶µÄ¶Ô 2026-03-13 5/250 2026-03-16 10:50 by ÎÒ¿ÉÒÔÉϰ¶µÄ¶ÔÂ
[¿¼ÑÐ] 326Çóµ÷¼Á +3 mlpqaz03 2026-03-15 3/150 2026-03-16 07:33 by Iveryant
[¿¼ÑÐ] ¸´ÊÔµ÷¼Á +3 ºôºô£¿~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
[¿¼ÑÐ] ²ÄÁϹ¤³Ìµ÷¼Á +9 ßäßä¿Õ¿Õ 2026-03-12 9/450 2026-03-13 22:05 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 315Çóµ÷¼Á +9 СÑòСÑò_ 2026-03-11 10/500 2026-03-13 21:13 by SXNUÀîÀÏʦ
[¿¼ÑÐ] 310Çóµ÷¼Á +3 ¡¾ÉÏÉÏÇ©¡¿ 2026-03-11 3/150 2026-03-13 16:16 by JourneyLucky
[¿¼ÑÐ] ¹¤¿Æ278·ÖÇóµ÷¼Á +5 ÖÜÂýÈȰ¡ 2026-03-12 7/350 2026-03-13 15:49 by JourneyLucky
[¿¼ÑÐ] 289Çóµ÷¼Á +3 ÀîÕþÓ¨ 2026-03-12 3/150 2026-03-13 11:02 by Çóµ÷¼Ázz
[¿¼ÑÐ] 333Çóµ÷¼Á +3 152697 2026-03-12 4/200 2026-03-13 07:08 by Iveryant
[¿¼²©] 2026Ä격ʿÉêÇë +3 QwQwQW10 2026-03-11 3/150 2026-03-12 17:58 by gxch43
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û