مارا از مرگ میترسانند انگار که ما زنده ایم

کم کم فراموش می کنیم، کم کم فراموش می شویم، این تنها حقیقتی است که همیشه با ما بوده است

مارا از مرگ میترسانند انگار که ما زنده ایم

کم کم فراموش می کنیم، کم کم فراموش می شویم، این تنها حقیقتی است که همیشه با ما بوده است

Mastodon
مارا از مرگ میترسانند انگار که ما زنده ایم

این وبلاگ ، برگه ای است که دلنوشته ها ، نظرات و چیزهایی را که احساس می کنم می تواند برای دیگران آموزنده باشد ،را در آن می نویسم. همه ی آنچه می نویسم ، اگر منبعی جز خودم داشته باشد با منبع خواهم نوشت.
این وبلاگ دیر به دیر اپدیت می شود ولی آپدیت می شود !
سیدسجاد موسوی نژاد سوق

دنبال کنندگان ۵ نفر
این وبلاگ را دنبال کنید

ویرایش اول : 27 بهمن 1393

 

در این پست ٫ به بررسی سرعت حل چند نرم افزار برنامه نویسی علمی می پردازم.  زبان های fortran , matlab , scilab و octave. نرم افزار matlab در این ازمون نسبت به octave و scilab موفق عمل کرده و با فاصله ی اندکی پس از fortran به جواب رسیده است. بی شک این نرم افزار و زبان برنامه نویسی آن بسیار بهینه و قابل اعتماد است ٫ ولی این مثال نمی تواند یک نتیجه کلی در این مقایسه ها باشد. در اینده مقایسه های دیگری را انجام خواهم داد .

 

مقایسه سرعت حل

 

 

 

بروز رسانی: 17 مهر 1398

پس از چند سال دوباره تصمیم گرفتم تست  بالا رو انجام بدم و  البته باتوجه به اینکه واقعا ورژن های قبلی و کدی که نوشته شده رو نداشتم دوباره کد نوشتم و در انتهای پست کدهای اجرا شده رو می تونید مشاهده کنید . بطور کلی انتظاری که از نرم افزارهایی چون octav و scilab داشتم برآورده نشد و انتظار می رفت در طی این چند سال بهبود می یافتند .

 

پ.ن. این تست فقط یک محک ساده است و ولی می توانید نوع عملکرد کد های مختلف برای  حلقه های تو در تو رو ببینید .

پ.ن. اگه دوستان هر کدوم از این نرم افزار ها رو دارند لطفا کد های قرار داده شده رو اجرا کنند و زمان اجرا رو به من اطلاع بدهند.

مقایسه سرعت اجرا

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Mtlab/octave

clear 
tic
number =10000

for i = 2:number
    mode=0;
    for j =2:i
        if mod(i,j)==0
            mode=mode+1;
        end
    end
    if mode==1
        disp(i)
    end

end

toc

 

scilab

// Display mode
mode(0);

// Display warning for floating point exception
ieee(1);

clear
tic
number = 10000

for i = 2:number
  mode = 0;
  for j = 2:i
    if pmodulo(i,j)==0 then
      mode = mode+1;
    end;
  end;
  if mode==1 then
    disp(i)
  end;
end;

toc

 

 

python 2

def tic():
    #Homemade version of matlab tic and toc functions
    import time
    global startTime_for_tictoc
    startTime_for_tictoc = time.time()

def toc():
    import time
    if 'startTime_for_tictoc' in globals():
        print "Elapsed time is " + str(time.time() - startTime_for_tictoc) + " seconds."
    else:
        print "Toc: start time not set"


tic()

number = 10000

for i in range(2,number+1):
    mode=0
    for j in range(2,i+1):
        if i%j ==0:
            mode+=1
    if mode==1:
        print i

toc()

 

 

python 3

def tic():
    #Homemade version of matlab tic and toc functions
    import time
    global startTime_for_tictoc
    startTime_for_tictoc = time.time()

def toc():
    import time
    if 'startTime_for_tictoc' in globals():
        print ("Elapsed time is " + str(time.time() - startTime_for_tictoc) + " seconds.")
    else:
        print ("Toc: start time not set")


tic()


number = 10000

for i in range(2,number+1):
    mode=0
    for j in range(2,i+1):
        if i%j ==0:
            mode+=1
    if mode==1:
        print(i)

toc()

 

 

 

 

 

 

  • سجاد موسوی نژاد سوق

fortran

linux

matlab

python

scilab

ubuntu

نظرات (۱)

  • فاروق کریمی زاده
  • جالب بود.Sci-lab هم که نمیدونم چیه اما ترکونده! میگم بقیه زبان‌ها و کتاب‌خانه های مربوط به کار های علمی و مخاسباتی رو هم امتحان میکردی، جالب تر میشد.
    این هم جالبه:
    https://benchmarksgame-team.pages.debian.net/benchmarksgame/
    پاسخ:
    خوشحالم براتون جالب بود.
    scilab خیلی شبیه matlab هست و چندسالی میشه اپن سورس شده . برای بنچ مارک در اینده زبان های بیشتر با برنامه های بیشتری رو انجام میدم. بخصوص محاسباتی ها رو
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی