сравнение python с c / fortran

Я написал следующие программы, чтобы сравнить скорость python с c / fortran. Чтобы узнать время, используемое программами, я использовал команду «time». Все программы вычисляют квадратный корень из x x + y y + z * z, где x, y, z - числа с плавающей запятой. Я использовал квадратный корень, потому что это одна из самых трудоемких частей в научные вычисления, которыми я занимаюсь.

Я получил следующие результаты:

fortran  0m29.9s //
c        0m20.7s //
python  30m10.8s

В соответствии с простым тестом, который я сделал, я обнаружил, что Python не рекомендуется для научные вычисления. Но, наверное, мой код очень неэффективен.

Как вы думаете, я мог бы сделать свой код более эффективным только для этого простого тестового примера?

Fortran:

program root_square
implicit none

integer i,j
real x,y,z,r

x=1.0
y=2.0
z=3.0

do j=1,3000
    do i=1,1000000
        r=sqrt(x*x+y*y+z*z)
    enddo
enddo

end program root_square

C:

#include "stdio.h"
#include "math.h"

int main (void)
{

float x=1.0,y=2.0,z=3.0,r;
int i,j;

for(j=0; j<3000; j++){
        for(i=0; i<1000000; i++) {
                r=sqrt(x*x+y*y+z*z);
        }
}

return 0;
}

Python:

#!/usr/bin/env python

from math import sqrt

x = 1.0
y = 2.0
z = 3.0

for j in range(1,3001):
  for i in range(1,1000001):
    r = sqrt(x*x+y*y+z*z)
12
задан Devesh Saini 18 June 2015 в 17:00
поделиться