ماشین حساب

خرید ماشین حساب

ماشین حساب

خرید ماشین حساب

  • ۰
  • ۰


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

ماشین حساب

 


۰) حافظه را مدیریت کنید. در برخی برنامه ها مدت زمان زیادی صرف تخصیص حافظه می شود. این پست (+) در متلب سایت این موضوع را به خوبی توضیح می دهد. بطور خلاصه با این کار شما زمان تلف شده برای ایجاد و حذف متغیرها در متلب را از میان بر می دارید.


 


۱) نمایش متغیر های اضافی را متوقف نمایید. بسته به سرعت کارت گرافیکی، ممکن است شما در لوپ های درونی متغیرهایی را نشان دهید که به دلیل سرعت بالای اجرای برنامه در ظاهر دیده نشوند. این متغیرها می توانند سرعت زیادی از برنامه بگیرند. تنها متغیرهایی را نشان دهید که واقعاً برای مانیتورینگ نیاز هستند.


 


۲) سعی کنید لوپ های اضافی و زاید برنامه تان را حذف کنید و تا حد ممکن برداری کار کنید. مثلاً یک برنامه آموزش شبکه عصبی به صورت برداری می تواند ۱۰۰ ها برابر با برنامه ای که عملیات را به جای بردارها با استفاده از حلقه های for اضافی انجام می دهد، تفاوت داشته باشد.


 


۳) به جای توابع جستجو همانند دستور find، معادل منطقی آنها را استفاده نمایید. مثلاً اگر می خواهید عناصر مساوی ۱۰ در یک بردار را پیدا کرده و آنها را با ۲۰ جایگزین کنید، وقت برنامه را برای پیدا کردن اندیس تک تک ۱۰ ها و جایگزینی آنها با ۲۰ تلف نکنید. یعنی به جای


>> I  = find(A==10);


>> A(I) = 20;


بصورت ساده ای بنویسید:


>> A(A==10)=20;


 


۴) با استفاده از امکانات بخش Profiler در متلب برنامه تان را از لحاظ زمانی، آنالیز کنید و bottleneck (گلوگاه) های زمانی را پیدا کرده و رفع نمایید. این بخش متلب زمان صرف شدن در هر تابع و زیر تابع را به شما می دهد. شکل زیر نمایی از Profiler در متلب را نشان می دهد.


نمونه ای از عملکرد Profiler در متلب


 


۵) برنامه در حالت پی کد (pcode)، معمولاً سریعتر از حالت عادی اجرا می شود. همچنین پی کد کردن امکان خوبی برای در اختیار گذاشتن برنامه دیگران هست. زیر آنها می توانند برنامه شما را اجرا کنند ولی نمی توانند داخل آن را مشاهده نمایند.


 


۶) از parfor به جای for معمولی برای اجرای موازی برنامه خود استفاده نمایید. در این حالت باید از پردازنده چند هسته ای مثلا Core2 و … استفاده نمایید. در این حالت می توان تقریباً به تعداد هسته ها برنامه را سریعتر نمود. همچنین توجه نمایید که باید تغییرات مختصری در برنامه خود ایجاد نمایید. در این حالت داشتن memory بالا نیز نیاز هست.


 


۷) از MEX برای اجرای بخشی از برنامه خود در زبان سی (C) استفاده نمایید. متلب این قابلیت را دارد که کدهای نوشته شما در متلب را به راحتی به کد سی تبدیل نماید. در این حالت باید برنامه متلب را تا حد زیادی آماده برای این کار نمایید. مثلاً ماتریس ها باید مقدار دهی اولیه شوند (pre-allocation). در این مورد به زودی فیلم جامعی در متلب سایت عرضه خواهد شد. در طی این مدت سعی کنید از راهنمای متلب استفاده نمایید.


 

  • ۹۶/۱۱/۰۷
  • landika blog

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی