PDA

View Full Version : سوال: پیشنهاد برای بهترین زمان اجرا؟



mox123
جمعه 07 خرداد 1389, 01:57 صبح
با سلام
من تو مرحله پیاده سازی یه الگوریتمم و دنبال ابزار مناسب برای این کار میگردم. مهمترین مطلب برای من زمان اجراست. چطور میتونم یه زبان / کامپایلر / سیستم عامل مناسب پیدا کنم؟

-------------------------------
نمیدونم جای این سوال توی این انجمنه یا نه اگر نیست لطفا منتقل کنید.

xxxxx_xxxxx
جمعه 07 خرداد 1389, 03:16 صبح
سلام،
همه چیز به کاری که اون الگوریتم انجام میده بستگی داره. به نوع داده هایی که باهاشون سر و کار داره. ممکن هست الگوریتم اونقدر خاص نباشه که برای کامپایلرها/مفسرها ی مختلف از لحاظ سرعت اجرا تفاوتی داشته باشه.
ولی در کل از لحاظ سرعت اجرا، زبان های کامپایلری سریعتر از زبان های مفسری عمل می کنند. با این حال باز هم باید کاری که الگوریتم انجام میده دقیقاً مشخص باشه. ممکن هست داده هایی که الگوریتم باهاشون سر و کار داره توی یک زبان تفسیری جمع و جور سریعتر پردازش بشن تا یک کامپایلر. قدرت زبان برنامه نویسی برای کار با اون داده ها اهمیت زیادی داره و تا داده ها و عملکرد الگوریتم مشخص نباشه نمیشه در این مورد نظر داد.

mox123
جمعه 07 خرداد 1389, 10:03 صبح
سلام،
همه چیز به کاری که اون الگوریتم انجام میده بستگی داره. به نوع داده هایی که باهاشون سر و کار داره. ممکن هست الگوریتم اونقدر خاص نباشه که برای کامپایلرها/مفسرها ی مختلف از لحاظ سرعت اجرا تفاوتی داشته باشه.
ولی در کل از لحاظ سرعت اجرا، زبان های کامپایلری سریعتر از زبان های مفسری عمل می کنند. با این حال باز هم باید کاری که الگوریتم انجام میده دقیقاً مشخص باشه. ممکن هست داده هایی که الگوریتم باهاشون سر و کار داره توی یک زبان تفسیری جمع و جور سریعتر پردازش بشن تا یک کامپایلر. قدرت زبان برنامه نویسی برای کار با اون داده ها اهمیت زیادی داره و تا داده ها و عملکرد الگوریتم مشخص نباشه نمیشه در این مورد نظر داد.
ممنون از جواب،
الگوریتم من یه چیزی مشابه الگوریتمی برای حل مساله فروشنده دوره گرده.
من خیلی وقتا دیدم در مقالات محاسباتی از لینوکس به عنوان سیستم عامل نام برده شده. سوالم اینه که سیستم عامل و تنظیمات اون در زمان پردازش چه تاثیری دارن؟
میتونین یه مقاله یا مرجع در مورد مقایسه زمان پردازش بهم معرفی کنین؟

ممکن هست الگوریتم اونقدر خاص نباشه که برای کامپایلرها/مفسرها ی مختلف از لحاظ سرعت اجرا تفاوتی داشته باشه.
یعنی ممکنه یه الگوریتم برای کامپایلرها/مفسرها ی مختلف تا دقت 3-^10 هم اختلاف زمان پردازش نداشته باشه؟

xxxxx_xxxxx
جمعه 07 خرداد 1389, 13:49 عصر
من خیلی وقتا دیدم در مقالات محاسباتی از لینوکس به عنوان سیستم عامل نام برده شده. سوالم اینه که سیستم عامل و تنظیمات اون در زمان پردازش چه تاثیری دارن؟
به دلیل اینکه در سیستم عامل لینوکس، Response Time و Latency به مراتب نسبت به ویندوز کمتر هست. به نظر من سیستم عامل زمانی بیشتر اهمیت پیدا میکنه که الگوریتم شما برای اجرا، حداقل به دو Task نیاز داشته باشه و شما بخواهید ارتباط بین وظیفه ای (Intertask Communication) داشته باشید. البته نمی توان منکر اهمیت سیستم عامل در اجرای الگوریتم شد.



یعنی ممکنه یه الگوریتم برای کامپایلرها/مفسرها ی مختلف تا دقت 3-^10 هم اختلاف زمان پردازش نداشته باشه؟

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

mox123
جمعه 07 خرداد 1389, 13:58 عصر
ولی اگر منظورتون این هست که الگوریتم شما به محاسبات ریاضی زیادی احتیاج داره...
دقیقا محاسبات ریاضی بخش عمده این الگوریتمه. حالا شما پیشنهادی برای:

زبانی رو انتخاب کنید که مکانیزمی متفاوت نسبت به سایر زبان ها برای انجام محاسبات ریاضی اتخاذ کرده باشه.
دارین؟

xxxxx_xxxxx
جمعه 07 خرداد 1389, 14:15 عصر
فکر میکنم Python انتخاب مناسبی باشه.