±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 2562  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 304Çóµ÷¼Á£¨085602£¬¹ýËļ¶£¬Ò»Ö¾Ô¸985£© +15 »¯¹¤ÈË999 2026-04-04 15/750 2026-04-05 16:25 by ÎÒÊǵç·çÉÈr
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +9 ¸ï΢¹ð 2026-04-04 9/450 2026-04-05 08:27 by 544594351
[¿¼ÑÐ] ²ÄÁÏ334Çóµ÷¼Á +15 Eecho# 2026-04-03 15/750 2026-04-04 23:05 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] ÇóÉúÎïѧѧ˶µ÷¼Á¡ª¡ª364·Ö +7 ÔÆ¶äåÞÍäÖ¸ÄÏ 2026-04-04 7/350 2026-04-04 22:49 by zhyzzh
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +18 Ò»ÑùYWY 2026-04-02 19/950 2026-04-04 22:14 by hemengdong
[¿¼ÑÐ] 085600µ÷¼Á +4 1amJJ 2026-04-02 4/200 2026-04-04 21:53 by hemengdong
[¿¼ÑÐ] 085400µç×ÓÐÅÏ¢319Çóµ÷¼Á£¨½ÓÊÜ¿çרҵµ÷¼Á£© +5 ÐÇÐDz»Õ£ÑÛà¶ 2026-04-03 6/300 2026-04-04 21:50 by hemengdong
[¿¼ÑÐ] ±¾9Ò»Ö¾Ô¸2 0854µÍ·Öר˶286Çóµ÷¼Á +9 âÖÖ111 2026-04-04 9/450 2026-04-04 11:01 by tangruihua
[¿¼ÑÐ] 297Çóµ÷¼Á +11 ljy20040718£¡ 2026-04-03 13/650 2026-04-04 09:23 by À´¿´Á÷ÐÇÓê10
[¿¼ÑÐ] 266Çóµ÷¼Á +8 ѧԱ97LZgn 2026-04-03 8/400 2026-04-04 09:02 by 20021109
[¿¼ÑÐ] Çóµ÷¼Á£¬Ò»Ö¾Ô¸ÄϾ©º½¿Õº½Ìì´óѧ £¬080500²ÄÁÏ¿ÆÑ§Ó빤³Ìѧ˶ +10 @taotao 2026-04-03 10/500 2026-04-04 09:01 by T¿É¿ÉÎ÷ÀïT
[¿¼ÑÐ] ²ÄÁÏ¿ÆÑ§Ó빤³Ì339Çóµ÷¼Á +12 hyz0119 2026-03-31 13/650 2026-04-03 18:33 by lsÁõ˧
[¿¼ÑÐ] ÎåÒØ´óѧÍÁľ¹¤³ÌÕе÷¼ÁÉú2026 +3 wyutj 2026-03-31 4/200 2026-04-03 18:21 by zengxj_7201
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£© +7 ÏàÐűػá¹ââÍòÕ 2026-04-02 7/350 2026-04-03 16:48 by rzh123456
[¿¼ÑÐ] 321Çóµ÷¼Á Ò»Ö¾Ô¸ Õã½­¹¤Òµ´óѧÉúÎïÒ½Ò© +5 ºÙºÙHC 2026-04-01 6/300 2026-04-02 15:23 by sophie2180
[¿¼ÑÐ] 0710ÉúÎïѧ£¬325Çóµ÷¼Á +3 mkkkkkl 2026-04-01 3/150 2026-04-02 09:48 by Jaylen.
[¿¼ÑÐ] 0855»úе³õÊÔ280Çóµ÷¼Á +3 kazenotori 2026-03-31 3/150 2026-04-01 10:08 by JourneyLucky
[¿¼ÑÐ] Çó0861½»Í¨ÔËÊäר˶or²ÄÁÏר˶µ÷¼Á +4 ÀÕ²¼ÀÊ@ 2026-03-31 4/200 2026-04-01 09:54 by Ò»Ö»ºÃ¹û×Ó?
[¿¼ÑÐ] Ò»Ö¾Ô¸Öк£Ñó²ÄÁÏ357 +4 Âó¶÷Àò. 2026-03-30 4/200 2026-03-31 14:35 by ¼Çʱ¾2026
[¿¼ÑÐ] ²ÄÁÏר˶ 085600Çóµ÷¼Á +7 BBQ233 2026-03-30 7/350 2026-03-30 17:44 by oooqiao
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û