ماژول Job آباکوس - راهنمای جامع و گام به گام
مقدمه
تا قبل از رسیدن به ماژول job آباکوس ، مشغول آماده سازی پروژه برای پردازش هستیم. پس از اینکه مدل ها و شرایط پروژه را تعیین کردیم، نوبت به آغاز شبیه سازی و مشاهده نتایج می رسد.
ماژول job آباکوس مسئولیت حل مساله و پردازش آن را در نرم افزار آباکوس بر عهده دارد. در واقع تا پیش از این ماژول، مسئله را کاملا برای نرم افزار آباکوس مشخص کرده ایم و در این ماژول به سراغ حل مساله می رویم.
حتما می دانید که انجام پروژه در آباکوس، شامل سه مرحله می شود:
Preprocess : پیش پردازش. ماژول هایی که تا به اینجا بررسی کردیم، برای پیش بردن پیش پردازش استفاده می شدند. یعنی آماده سازی مقدمات.
Process: حل مساله و اجرای فرایند حل در این مرحله انجام می شود. تنظیمات این مرحله را در ماژول Job انجام می دهیم. حل مساله فقط در ماژول job آباکوس انجام می شود.
Post Process: تحلیل ها و اقدامات پس از حل و دریافت نتایج، در این مرحله انجام می شوند.
اگر بخواهیم به صورت دقیق تر وظایف ماژول job آباکوس را نام ببریم، می توانیم موارد زیر را ذکر کنیم:
1- فرستادن مسئله ای که در مراحل قبلی تعریف شده، برای حل و پردازش
2- همان طور که می دانید، امکان نوشتن سابروتین با زبان فرترن در آباکوس وجود دارد. اگر در یک پروژه از سابروتین ها استفاده کرده باشیم، در ماژول job آباکوس باید مسیر ذخیره فایل سابروتین را مشخص کنیم تا آباکوس در فرایند حل مساله از آن استفاده کند.
3- مشخص کردن برخی تنظیمات و کنترلرهای مربوط به حل. بعضی از این کنترلرها از نوع سخت افزاری است. مثلا تنظیماتی از این نوع که در زمان حل، چه میزان از CPU، رم و … برای حل مسئله و پردازش درگیر شوند.
4- نمایش خطاها و هشدارهای هنگام پردازش مساله، توسط ماژول job آباکوس انجام می شود.
مراحل حل مسئله در ماژول Job آباکوس
ایجاد یک job و انتخاب نام مناسب برای آن
Job تعریف شده را به مدل مورد نظرمان اختصاص دهیم. (چون در یک فایل ممکن است چند تا مدل داشته باشیم.)
شروع فرایند حل مساله یا متوقف کردن فرایند حل
مشاهده نتایج به دست آمده از پردازش و حل مساله
همچنین می توانیم یک فایل متنی از نوع inp ایجاد کنیم که تمام جزئیات انجام پروژه را نمایش می دهد. جزئیات مرحله مدلسازی و ایجاد هندسه مدل، مشخصات کامل مواد اختصاص داده شده، Section های انتخابی، حلگر انتخاب شده و همچنین جزئیات مراحل بعدی در این فایل کاملا مشخص می شود. مختصات همه گره ها و المان ها هم در این فایل لیست می شود. (یعنی برای مساله ای که مثلا 10 میلیون گره دارد، لیست مختصات همه این 10 میلیون گره در این فایل متنی آورده می شود!) پس از لیست گره ها، لیست المان ها ظاهر می شود که در آن مشخص شده چه گره هایی به هر یک از المان ها اختصاص دارد.
پس فایل inp همه اطلاعات یک پروژه را همراه خود دارد. اگر نتوانیم فایل اصلی پروژه را به فرد یا سیستم دیگری انتقال دهیم، با استفاده از این فایل inp می توانیم پروژه را در سایر سیستم ها ایجاد کنیم. یا اگر بخواهیم پروژه خودمان را در آباکوس با ورژن پایین تر باز کنیم، فایل inp به ما کمک می کند. (حتما می دانید که پروژه ای که با ورژن های جدید تر ایجاد و ذخیره شده باشد، در ورژن های قبلی باز نمی شود.)
ایجاد یک Job جدید در ماژول Job آباکوس
برای ایجاد یک Job جدید بر روی گزینه Create Job کلیک می کنیم. پنجره Create Job باز می شود و در ابتدا باید یک نام برای آن انتخاب کنیم.
در یک فایل آباکوس ممکن است چندین مدل داشته باشیم که هر کدام شامل چندین Part می شود. در پنجره Create Part باید یکی از این مدل ها را انتخاب کنیم تا مسئله مربوط به آن مدل حل شود.
البته در تصویر بالا فقط یک مدل به نام Model-1 ایجاد کرده ایم و به همین خاطر هم فقط همان مدل برای ما نمایش داده می شود و به صورت پیش فرض انتخاب شده است. اگر مدل های دیگر هم داشتیم، باید از بین آنها مدل دلخواه را انتخاب می کردیم.
با کلیک بر روی Continue پنجره Edit Job باز می شود.
بخش Description در بالای پنجره، یک بخش اختیاری است که می توانید در آن توضیحات لازم درباره این Job را درج کنید.
برویم سراغ زبانه Submission . در قسمت اول از این زبانه باید نوع Job را مشخص کنیم. در حالت عادی که شبیه سازی باید از نقطه صفر آغاز شود، گزینه Full analysis را انتخاب می کنیم. اما اگر به هر دلیلی نیاز باشد از وسط مسئله شبیه سازی انجام شود، باید گزینه Restart انتخاب شود.
اما سوال این است که چرا گاهی باید شبیه سازی را از وسط مساله شروع کنیم؟
فرض کنید پروژه ای را run کرده اید و مثلا 70 درصد پروژه پیش رفته که ناگهان برق سیستم قطع و سیستم خاموش می شود. در این حالت دیگر نیاز نیست از اول فرایند حل انجام شود. یا فرض کنید شبیه سازی تا جای خاصی انجام شده و پس از آن تصمیم می گیرید که برای ادامه شبیه سازی، تغییراتی در شرایط مسئله ایجاد کنید. (مثلا وضعیت شرایط مرزی را تغییر دهید.) پس برای بار دوم، دیگر نیاز نیست که مسئله از ابتدا شبیه سازی شود.
در این حالت ها گزینه Restart را انتخاب می کنیم.
گزینه Recover هم تنها در تحلیل هایی که از نوع Explicit باشند می تواند فعال باشد.
بخش بعدی مربوط به Run Mode است. اگر گزینه Background فعال باشد، بخش Submit Time در پایین پنجره ظاهر می شود که با استفاده از تنظیمات آن می توانیم تعدادی تحلیل موازی انجام دهیم و زمان هر کدام را هم تعیین نماییم. با انتخاب گزینه Queue در بخش Submit Time می توانیم زمان دقیق آغاز شبیه سازی را مشخص کنیم.
زبانه بعدی، General است که مهم ترین بخش آن، بخش User subroutine file است. اگر برای هر بخش از پروژه سابروتین نوشته باشیم (مثلا برای مشخص کردن یک رفتار خاص از ماده ای خاص و یا وارد کردن یک بار خاص یا … ) باید فایل مربوط به آن سابروتین را در این بخش انتخاب کنیم.
دقت داشته باشید که در این بخش تنها می توانیم یک فایل را انتخاب کنیم. پس اگر برای پروژه خودمان چندین سابروتین تعریف کرده ایم، باید همه آن ها را در یک فایل قرار دهیم و سپس فایل فوق را انتخاب نماییم.
در قسمت Results Format باید فرمت نتایج ذخیره شده را تعیین کنیم که معمولا روی ODB تنظیم می کنیم. می توانیم SIM یا both (یعنی هم ODB هم SIM) راه هم انتخاب کنیم.
به سراغ زبانه بعدی در پنجره Edit Job در ماژول Job آباکوس می رویم. نام این زبانه Memory می باشد. در زبانه Memory تعیین می کنیم که آباکوس برای حل و شبیه سازی پروژه چه میزان از سخت افزار سیستم (کامپیوتر یا لب تاپ) استفاده کند.
مثلا اگر گزینه Percent of physical memory فعال باشد، می توانیم درصد استفاده آباکوس از Memory کامپیوتر در جهت حل مساله را تعیین کنیم. مثلا وقتی مانند تصویر، عدد 90 درصد را وارد کرده باشیم، فارغ از مقدار RAM سیستم، از 90 درصد آن برای حل مساله در آباکوس استفاده می شود. در این حالت 10 درصد سیستم آزاد می ماند که باعث می شود سیستم هنگ نکند.
می توانیم به جای وارد کردن درصد، گزینه Megabytes یا Gigabytes را انتخاب کرده و مقدار آن را وارد کنیم. مثلا اگر بخواهیم از 8 گیگابایت از سیستم برای حل مساله استفاده شود، مانند تصویر زیر عمل می کنیم:
اگر تیک گزینه پایین صفحه یعنی Increase memory allocation … را بزنیم، به آباکوس اجازه می دهیم تا در صورت نیاز، از مقدار RAM تعیین شده هم فراتر برود و از مقدار بیشتری از حافظه استفاده کند.
در ادامه بررسی زبانه های پنجره Edit Job در ماژول Job آباکوس به زبانه Parallelization می رسیم. در این زبانه تنظیمات CPU و کارت گرافیک انجام می شود.
با فعال کردن تیک گزینه Use multiple processors می توانیم تعداد هسته های فعال برای حل مسئله در آباکوس را وارد تعیین کنیم. با افزایش تعداد هسته های فعال و ایجاد پردازش موازی، سرعت تحلیل بسیار بالاتر می رود. اگر گزینه فوق را فعال نکنیم، از مقادیر پیش فرض استفاده می شود.
با فعال کردن گزینه Use GPGPU acceleration از کارت گرافیک به عنوان یک شتابدهنده برای افزایش سرعت تحلیل استفاده می شود.
در زبانه Precision هم باید دقت حل را تعیین کنیم. اگر گزینه Nodal output precision بر روی حالت Single تنظیم شده باشد، اعداد در طی حل تا حدی رند می شوند و سرعت حل بالا می رود. اما در صورتی که این گزینه را بر روی full تنظیم کنیم، دقت حل بالا می رود و سرعت آن کاهش می یابد.
بعد از انجام همه این تنظیمات، بر روی OK کلیک می کنیم تا یک Job جدید ایجاد شود. با کلیک بر روی گزینه Job Manager در ماژول Job آباکوس ، می توانیم Job ایجاد شده را مشاهده کنیم.
همانطور که مشاهده می کنید، یکی از ستون ها Status نام دارد که وضعیت Job را مشخص می کند و در تصویر بر روی حالت None قرار دارد. در ادامه، انواع وضعیت هایی را که یک Job می تواند داشته باشد بررسی می کنیم.
نمایش وضعیت حل مساله
در ماژول job آباکوس، وضعیت حل مساله با چند عبارت مشخص می شود:
None: مساله آماده حل شدن است اما برای حل فرستاده نشده و هیچ کاری بر روی آن انجام نشده است.
اگر بر روی گزینه Submit کلیک کنیم، فرایند حل مساله آغاز می شود.
Submitted: دستور حل مساله داده شده و در حال ارسال به واحد پردازش است. پس وقتی دستور حل را صادر کنیم، وضعیت از None به Submitted تغییر پیدا می کند.
Running: مسئله Submit شده و توسط نرم افزار پذیرفته شده است و مسئله در فرایند حل قرار گرفته است و پردازش و آنالیز بر روی آن در حال انجام است.
Completed: اگر مسئله بدون خطا حل شود، این عبارت برای ما نمایش داده می شود. در این حالت حل مسئله تکمیل شده است.
Aborted : در صورتی که پس از Running خطایی در مسئله وجود داشته باشد و مسئله حل نشود، این وضعیت ظاهر می شود. در این صورت باید بر روی گزینه Monitor کلیک کنیم تا خطاها نمایش داده شوند و بتوانیم برای رفع آنها اقدام کنیم.
بعد از این اتمام حل مسئله به سراغ فرایند پس پردازش در ماژول Visualization می رویم تا اطلاعات به دست آمده را تحلیل و بررسی کنیم.
محل ذخیره فایل های خروجی در ماژول Job آباکوس
یک سوال مهم: فایل های خروجی در کجا ذخیره می شوند؟ پیش از کلیک بر روی گزینه Submit و آغاز فرایند حل، باید از طریق منوی File بر روی گزینه Set work directory کلیک کنیم تا پنجره مربوط به آن باز شود.
در این پنجره می توانیم محل ذخیره فایل های خروجی را تعیین کنیم.
سلام وقتتون بخیر. من مدلم رو حالت runing هست و تقریبا 48 ساعت که به همین حالت مونده. طبیعیه این موضوع؟
با سلام و وقت بخیر
ران شدن مسائل مختلف در آباکوس ممکن است از چند ثانیه تا چند هفته زمان ببرد. به پیچیدگی مسئله (خطی یا غیرخطی بودن، نوع همگرایی، تعداد و نوع مش ها و … ) بستگی دارد. به صورت کلی این زمان غیرطبیعی نیست اما ممکن است بتوان با ساده سازی این زمان را کاهش داد.
در اینجور مواقع کاری که بنده انجام میدم اینه که گزینه monitor رو میزنم و از جدولی که هست متوجه میشم چقدر از کار انجام شده و مطمین میشم که کار در حال انجامه ولی طول میکشه