Informace Fórum Stav sítě ČVUT IDS Hledání Přihlášení Mapa stránek

Pi součtem řady - Fortran


ccccccccccccccccccccccccccccccccccccccccccc
c  Ukazka linearniho programu, ktery      c
c  lze rozdelit mezi vice procesoru       c
c                                         c
c  Program vypocte pi souctem rady        c
c                                         c
c  Program se prelozi prikazem            c
c  xlf -o pi pi.f                         c
c                                         c
ccccccccccccccccccccccccccccccccccccccccccc

      program pi_f            !vypocet pi souctem rady
      integer n,i
      character(8) c,clock_
      real*8 w,x,pi,f,a,t1,t2
      f(a)=4.d0/(1.d0+a*a)    !integracni funkce
      c=clock_()
      print *,"pocatek ",c
      call cpu_time(t1)
      pi=0.0d0
      n=1000000000
      w=1.0d0/n
      do i=1,n
      x=w*(i-0.5d0)
      pi=pi+f(x)
      enddo
      pi=w*pi
      call cpu_time(t2)
      c=clock_()
      print *,"a konec ",c
      print *,"vypoctene pi=",pi,"za",t2-t1,"vterin"
      end

Pi součtem řady, rozdělený výpočet - Fortran

ccccccccccccccccccccccccccccccccccccccccccc
c   Ukazka pouziti vice vlaken (threads)  c
c                                         c
c   Program vypocte pi souctem rady       c
c                                         c
c   Program se prelozi prikladem          c
c   xlf_r -q smp -o tpi tpi.f             c
c                                         c
ccccccccccccccccccccccccccccccccccccccccccc

      program tpi_f
      integer n,i
      character(8) c,clock_
      real*8 w,x,pi,pa,t1,t2
      c=clock_()
      print *,"pocatek ",c
      call cpu_time(t1)
      pi=0.0d0
      n=1000000000
      w=1.0d0/n
!$OMP PARALLEL private(x,pa),shared(pi)
!$OMP DO reduction(+: pi)
      do i=1,n
      x=w*(i-0.5d0)
      pa=4.0d0/(1.0d0+x*x)
      pi=pi+pa
      enddo
!SOMP END DO
!$OMP END PARALLEL
      pi=w*pi
      call cpu_time(t2)
      c=clock_()
      print *,"a konec ",c
      print *,"vypoctene pi=",pi,"za",t2-t1,"vterin"
      end

Jednoduché příklady