ما یک برنامه ساده را با استفاده از LUMI، یکی از سریعترین و سبزترین ابررایانههای جهان، اجرا خواهیم کرد.
این ابررایانه در فنلاند قرار دارد! آیا میدانستید که تمام گرمای اضافی تولید شده توسط LUMI به سوناهای کاجانی منتقل میشود تا مردم فنلاند از آن بهرهمند شوند؟ داستانی واقعی!
تعهد مشترک یورو HPC تعدادی از ابررایانهها را در چندین کشور اروپایی مستقر کرده است و شرکتها و سازمانهای عمومی در اروپا میتوانند به طور رایگان به آنها دسترسی داشته باشند. اگر نمیدانید چگونه، ویدیوی قبلی ما را بررسی کنید.
چند نکته: ابررایانههای مختلف رویههای متفاوتی دارند، بنابراین پس از دسترسی، مستندات و تیم سرپرست سیستم را بررسی کنید. همچنین به درک اولیهای از دستورات پوسته یونیکس نیاز خواهید داشت.
فرض کنید من به LUMI دسترسی پیدا کردهام. حالا چه؟ ابتدا باید رایانهام را احراز هویت کنم. این کار با تولید کلیدهای SSH در ترمینال شما انجام میشود، بدون توجه به سیستم عامل شما.
چند روش برای این کار وجود دارد، اما در این ویدیو از دستور زیر استفاده میکنیم. این دستور یک کلید RSA 4096بیتی تولید میکند. میتوانیم نام کلیدها را سفارشی کنیم، اما فعلاً به پیشفرضها پایبند هستیم.
رمز عبور دلخواه خود را انتخاب میکنیم و ادامه میدهیم. میبینیم که پوشهای به نام SSH در پوشه اصلی ما با یک جفت فایل کلید SSH ایجاد شده است. وقتی به پوشه دسترسی پیدا میکنیم، میبینیم که یکی id_rsa و دیگری id_rsa.pub است. فایل عمومی همان فایلی است که باید برای شناسایی خود به ابررایانه ارسال کنید.
با استفاده از دستور «cat» و سپس نام فایل، میتوانید محتوای فایل را ببینید. همانطور که مشاهده میکنید، یک فایل متنی حاوی رشتهای از حروف و ارقام است. در مورد LUMI، این متن را در شناسه دسترسی من که سیستم ورود به سیستم LUMI است، جایگذاری میکنید.
به یاد داشته باشید که فقط فایل ".pub" خود را به اشتراک بگذارید و فایل خصوصی را محرمانه نگه دارید. همچنین رایانهای که کلیدهای SSH را با آن تولید کردهاید باید همان رایانهای باشد که برای دسترسی به ابررایانه استفاده میکنید. برای استفاده از رایانههای دیگر، باید کلیدهای SSHآن رایانه را تولید و فایل «.pub» جدید را آپلود کنید.
چند ساعت بعد، رایانه ما مجاز به دسترسی به LUMIخواهد بود. بیایید وارد سیستم شویم و "ssh -i" را تایپ کنیم. پرچم -i به معنای استفاده از یک فایل هویت برای ورود به سیستم است. سپس مسیر کلید خصوصی SSHدر رایانه خود و سپس نام کاربری که LUMIبه ما ارائه کرده است را وارد میکنیم.
اکنون به LUMI وارد شدهایم و میتوانیم اطلاعات مرتبط با مستندات و پشتیبانی کاربر را همراه با اطلاعیههای مهم مشاهده کنیم. با تایپ "pwd" میبینیم که در پوشه کاربری خود قرار داریم. برای فهرست کردن همه فایلها، «ls» را تایپ میکنیم و میبینیم که پوشه فعلاً خالی است.
یک فایل «hello.py» روی دسکتاپ داریم که پیام تبریک و تاریخ و زمان فعلی را چاپ میکند. برای کپی کردن آن در ابررایانه، نمونهای از ترمینال محلی جدید را باز میکنیم و عبارت زیر را تایپ میکنیم که به معنای کپی امن است و فایل ما را که روی دسکتاپ قرار دارد به پوشه کاربر ما در LUMI کپی میکند.
سوپرکامپیوترها شامل گرههای ورود به سیستم هستند که برای مدیریت کارهای شما طراحی شدهاند و نه برای اجرای محاسبات. هر گره به گرههای دیگر با شبکهای با سرعت بالا در داخل خوشه متصل است. با دسترسی به چندین گره، میتوانید کارهایتان را بهطور موازی اجرا کنید، که به آن محاسبات موازی میگویند.
پارتیشنها گروههایی از گرهها هستند که برای استفاده خاص رزرو شدهاند. برای مشاهده پارتیشنها، «sinfo -s» را تایپ میکنیم و نسخههای مختلف با شمارههای در دسترس و سایر اطلاعات را میبینیم. بسته به کارتان، میتوانید پارتیشنهای مختلفی را انتخاب کنید.
دو روش برای دسترسی به گرههای محاسباتی وجود دارد: تعاملی با فرمان «salloc» و غیرتعاملی با اسکریپتهای دستهای. "salloc" به شما امکان دسترسی مستقیم به تعداد گرههای محاسباتی را میدهد که مشخص کردهاید. فرض کنید میخواهیم به یک گره محاسباتی با «salloc» دسترسی داشته باشیم تا کد خود را اشکالزدایی کنیم. این دستور با استفاده از شماره پروژه ما که در LUMI داریم، یک گره را به مدت 30 دقیقه در پارتیشن «اشکالزدایی» رزرو میکند.
با دستور "squeue -u" که با نام کاربری خود دنبال میشود، میتوانید تخصیصهای فعلی خود را بررسی کنید. در حال حاضر یک گره داریم که از طریق دستور قبلی "salloc" به ما اختصاص داده شده است.
حال که یک گره برای پروژه خود اختصاص دادهایم، بیایید یک کار آزمایشی را روی LUMI اجرا کنیم. ابتدا باید یک ماژول پایتون را برای اجرای فایل بارگیری کنیم. برای فهمیدن ماژولهای پایتون موجود، «module avail python» را تایپ میکنیم. اولین مورد را انتخاب و با تایپ کردن «module load» و نام ماژول، آن را بارگذاری میکنیم.
اکنون پایتون بارگذاری شده و میتوانیم فایل را با تایپ «srun python» و سپس نام فایل خود اجرا کنیم. با "srun" از گره محاسباتی استفاده میکنیم که برای کارهای خود با استفاده از "salloc" اختصاص دادهایم. بلافاصله خروجی برنامه خود را در ترمینال میبینیم.
اکنون به استفاده از Slurm برای اسکریپتهای دستهای میپردازیم. Slurm یک زمانبندی کار است که به برنامهریزی کارهایتان کمک میکند. برای استفاده از Slurm، فایل دستهای را با تایپ «nano» و سپس نام انتخابی خود برای کار دستهای ایجاد میکنیم. مثلاً "batch_job.sh".
در این فایل، نام کار دستهای، فایل خروجی، فایل خطا، پارتیشنها، شماره گرهها، زمان تخصیص و شماره پروژه را مشخص میکنیم. هنگامی که چهار گره مشخص شده در دسترس قرار گیرند، اسکریپت اجرا خواهد شد.
برای اجرای اسکریپت دستهای، «sbatch» و نام کار دستهای را تایپ میکنیم. هر زمان که LUMI دارای چهار گره CPU آزاد باشد، کار دستهای ما شروع میشود. نتایج را مشاهده میکنیم و میبینیم که فایل ما چهار بار اجرا شده است زیرا از چهار گره به صورت موازی استفاده کردهایم.
https://shabihsazan.com/%D8%A7%D8%AC%D8%A7%D8%B1%D9%87-%D8%A7%D8%A8%D8%B1-%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87/