نوشته شده توسط
رافعی مهدی
جناب آقای/خانم روانفر
سلام. پیش از هر چیز از اینکه در این بحث شرکت کرده اید ممنونم.
:
:
جالب است بدانیم سرعت حلقه های داخلی نرم افزار Matlab تا بیست و پنج برابر به کمک فرترن بهبود یافته است! این مسئله بیانگر کارآیی بالای فرترن است و البته به عقیده ی من بزرگترین دلیل بر بقای این زبان.
توجه به اینکه شرکتهای بزرگ سازنده ی قطعات اصلی سخت افزاری این زبان را از یکدیگر خریداری می کنند نشان می دهد که ساختار این زبان می تواند ارتباط مستقیمی با نحوه ی عملکرد CPU داشته باشد...
البته قابلیت دیگری هم وجود دارد که به کمک آن می توان سرعت اجرای برنامه های هر زبان مخصوصاً فرترن را به دو تا چند برابر افزایش داد و آن قابلیت این است که اطلاعات اضافی فایلهای میانی که غالباً مربوط به پروسه ی Debugging هستند را از فایل exe حذف کرد و نسخه ی Release فایل exe را بوجود آورد. ممکن است در مورد برنامه ی شما این نکته مراعات نشده باشد. (یعنی سرعت نسخه ی Debug فرترن با Release مطلب مقایسه شده باشد)
همچنین شما به استفاده از نوعی برنامه مجهز به تکنیک Multi-Threads اشاره کردید که به کمک آن می توان زمان بندی CPU را در اختیار گرفت که البته خود عامل بسیار خوبی در افزایش سرعت یک برنامه است. (ولی نه همیشه)
آنچه از مقایسه های متعدد بین Runtime برنامه های فرترن و بالاخص مطلب (با لحاظ کردن امکانات بکار رفته ی مساوی در این برنامه ها) حاصل شده, بیانگر اختلاف چشمگیر سرعت آنهاست.
با احترام
نوشته شده توسط
رافعی مهدی
خدمت meytim عرض شود كه ...
اساساً Matlab را نمي توان جزو زبانهاي برنامه نويسي به شمار آورد، Matlab صرفاً يك نرم افزار (غول پيكر) است، اگرچه كه با آن بتوان برنامه هم نوشت. بنابراين مقايسه ي Matlab با Fortran يك قياس مع الفارق است.
آنچه راجع به فرترن مي توان گفت اين است كه داراي قوي ترين و گسترده ترين كتابخانه ي رياضي در ميان تمام زبانهاي برنامه نويسي است. علاوه بر اين، حتي بدون استفاده از كتابخانه هاي جانبي و در محيط برنامه نويسي معمولي، مثلاً مي توانيد دو بردار را در هم ضرب داخلي كنيد، يا دو ماتريس را در هم ضرب كنيد يا دو عدد مختلط را به توان هم برسانيد. ممكن است اين سؤال ايجاد شود كه پس كتابخانه هاي رياضياتي چه كاري انجام مي دهند؟ در اين مورد مي توان به استفاده از توابع بسل مختلف، سري فوريه و ... اشاره كرد. بنابراين نمي توان گفت فرترن اپراتورهاي برداري را نمي شناسد!!!
ـ اينكه نوشتيد "مقايسهي Matlab با Fortran يك قياس معالفارق است" من هم نخواستم مقايسه كنم؛ شما در مورد سرعتها صحبت كرده بوديد، خواستم يادآوري كنم كه اون ادعا غلطه.
ـ اينكه نوشتيد "نمي
توان گفت فرترن اپراتورهاي برداري را نمي
شناسد" يك حرف غلط ديگه هست؛ چون اين چيزي كه شما نوشتيد چند تا عمل ساده روي بردارها و ماتريسها بود، كه هيچ ارتباطي با "عملگر برداري" نداره. اگه خواستيد بدونيد عملگر برداري چيه مي
تونيد بخش 10.1 و 19.1 كتاب "
شگردهاي عددي" رو بخونيد؛ اونجا در موردشون توضيح دادم.
پينوشت: من قبل از اينکه با MATLAB آشنا بشم، اولش Pascal ياد گرفتم، بعد C ياد گرفتم، بعدش Basic، بعد از اون هم Fortranياد گرفتم. اما بعد از اينکه متلب ياد گرفتم، همة اون زبانها رو کنار گذاشتم و هيچوقت هم به هيچکدومشون هيچاحتياجي پيدا نکردم.
دليل اونهمه تعويض زبان برنامهنويسي اين بود كه اون زبانها توانايي برآوردن نيازهاي من رو نداشتند؛ البته با توجه به پيچيده بودن پروژههايي كهاستادان تعريف ميكردند و نيز زمان محدودِ دردست. اگه قرار باشه يكي از اين محيطهايي رو كه باهاشون كار كردم، براي انجام پروژهاي انتخاب كنم، اولويت اين طور ميشه:
البته اين نظر منه، ممكنه با نظر ديگران فرق داشته باشه.