فیزیک محاسباتی – قسمت اول

سلام مجدد
امروز تصمیم گرفتم که به طور هفتگی مطالب مختلفی در زمینه ی فیزیک محاسباتی در این وبلاگ منتشر کنم که شامل اخبار، معرفی کتاب و مقاله و در نهایت اگر خودم تجربه جدید یا مشکلی داشتم که با موفقیت حل شد، همینجا منتشر کنم.
مطالب اکثرا به لحاظ سطح علمی؛ ابتدایی هستند و هدفم برطرف کردن نقاط ضعف خودم و اگر هم خدا بخواهد کمکی به دوستانم باشد.

به صورت محتوایی این مطالب شامل سیستم عامل لینوکس، زبان های برنامه نویسی فرترن هستش و بعد سی پلاس پلاس (C++) و نهایتا طرح و مدل سازی و نهایتا حل مسئله می باشند. تا حد امکان تلاش میشه تا مطالب ساده و عاری از هرگونه پیچیدگی باشند و البته مجزا از هم.

چون این مطالب در شرایط مختلفی مثل تاکسی، مترو و یه همچین موقعیت هایی نوشته و ارسال میشوند پس دارای اشکالات املایی و دستوری زیادی هم هستند که امیدوارم بابت ای موضوع بنده رو ببخشید.

خوب اسپم دیگه بسه، در این پست فکر میکنم بهتر باشه که یه کمی به یکی از قولهایی که داده بودم عمل کنم و فرترن شروع بشه.
اگر بخواهیم به مهمترین چالش های اولیه وقتی می خواهیم یه زبان رو برای یادگیری انتخاب کنیم اشاره کنیم میزان کارایی به همراه توسعه و پشتیبانی مناسب در آینده هستش. بنده هم سعی می کنم یه جوری این قضیه رو حل کنم
اگر روزی کسی بپرسه چرا فرترن آخه، مگه قدیمی نیست؟، اصلا هنوز استفاده میشه؟،،،، اصلا به چه درد می خوره با این همه ابزار و زبان جدید؟!!!
در جوابش باید گفت : قدیمی!!! – فرترن قدیمی نیست بلکه نسخه های مختلفی داره که البته نسخه 77 مربوط به سال 1977 بله قدیمی هست اما نسخه های جدید مثل 90 و 95 که ساخت اونها هم برمیگرده به سالهای 1990 و 1995 ابزارهایی پیشرفته اند که پردازش موازی (Parallel computing) و متدهای روز دیگر مثل ساختار شی گرا، اشاره گرها و انواع متغییرهای پیشرفته رو پشتیبانی می کنه.شاید این هم جالب باشه که بدونیم بدون نیاز به وارد کردن library های خاصی میشه توابع و محاسبات بسیار پیچیده مثل آرایه های اتوماتیک و یا پردازش موازی، ماتریس ها و خیلی موارد دیگر رو داشته باشیم. با این اوصاف به نظر من که قدیمی نمیاد، در ضمن این رو هم فراموش نکنیم که هنوز داره توسعه داده میشه؛ مثلا نسخه های 2003 و 2008 و البته 2012 که از طرف کمپانی های بزرگی مثل اینتل و ماکروسافت توسعه داده میشود.
در ادامه، پاسخ به سوالات دوم و سوم اینجوری می تونه باشه که: بله هنوز هم استفاده میشه و به دلیل سادگی که داره هنوز مورد استفاده محققان و دانشجویان هستش، سورس، نمونه و کتابخانه استاندارد هم که بماند چه قدر جامع مانع هستش هرچند به سختی پیدا میشوند.

حالا که مثلا قانع شدیم که فقط فرترن و عشق است فرترن و این حرفها بپردازیم به کامپایلر!

کامپایلر چیست؟

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

بهتره یه خورده از نقاط ضعف این زبان برنامه نویسی بگوییم. کامپایلر های رسمی این زبان بسیار گران قیمت هستند. هرچند فرترن 77 همیشه رایگان و در دسترس هستش اما نسخه های بعدی از کامپایلر های مختلفی که گفته شد دیر به دیر رایگان و آزاد معرفی میشوند. به طور مثال حدود سالهای 2005 یا 2006 بود که کامپایلرهایی برای فرترن 90 و 95 رایگان و منبع باز(open source) منتشر شدند. ولی با این اوصاف همیشه در روی پاشنه نمیچرخه 🙂

در حال حاضر کامپایلرهای مختلفی به صورت رایگان در دسترس قرار گرفته اند:

  • The Portland Group Fortran compilers کامپایلری هستش که کاملا رایگان برای سیستم های 32bit و 64bit تحت سیسم عامل های لینوکسی یا ویندوز ساخته شده که البته برای استفاده در سرورها و کلاستر ها (سوپرکامپیوتر های خوشه ای)  هم راهکارهایی رو ارایه میکنه.
  • NAG Fortran Compiler که تا نسخه ی 2003 رو کامل و 2008 رو داره کامل میکنه.
  • Silverfrost FTN95 کامپایلری که فقط تحت ویندوز و رایگان برای استفاده شخصی هستش.

برای دانلود کامپایلر های بالا از لینکشون میتونید استفاده کنید یا برای دریافت فرترن G95 از این لینک استفاده کنید.

فکر میکنم برای بخش اول کافی باشه – در پست های بعدی با مباحث اولیه در ایجاد کد و فرمت بندی های فرترن آشنا میشم که کلمات قلمبه و سلمبه ای هستند اما مفهومش میشه همون نحوه ی نوشتن و ایجاد فایلها در فرترن.

قول میدم که پست بعدی اینقدر خشک و بی روح و بدرد نخور نباشه 🙂 – به یاد قدیما بریم فوتبال دیگه – حرف بسه !!!!!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *