عنوان پروژه
پیادهسازی سیستم اجرای Jobهای محاسباتی GPU روی با Docker و API (دانلود کد/دیتاست، اجرای پایتون، آپلود دورهای نتایج، توقف خودکار کانتینر)
توضیح کلی پروژه
من یک کانتینر Docker آمادهی محاسبات GPU (پایتون + کتابخانهها) روی پلتفرم Salad.com دارم. هدف این پروژه این است که بتوانم از طریق API سالاد یک Job محاسباتی را روی GPU اجرا کنم؛ به این صورت که کانتینر بهصورت خودکار کد پایتون و دیتاست را از اینترنت دانلود کند، اجرا کند، نتایج را حین اجرا بهصورت دورهای آپلود کند، و پس از اتمام محاسبات کانتینر بهطور قطعی متوقف شود و ریاستارت نشود.
وضعیت فعلی
• اجرای کد پایتون از طریق UI سالاد را تست کردهام.
• مشکل فعلی در UI این است که بعد از اتمام کار، کانتینر متوقف نمیشود و محاسبات دوباره شروع/ریاستارت میشود.
• قصد دارم اجرای Jobها را کاملاً از طریق API کنترل کنم (مثلاً کانتینر فقط هنگام نیاز بالا بیاید و بعد از پایان خاموش شود).
خروجی مورد انتظار (Deliverables)
فریلنسر باید یک راهکار کامل و قابلاستفاده ارائه دهد که شامل موارد زیر باشد:
1. ساخت/اصلاح کانتینر Docker برای اجرای Jobهای GPU
• اجرای یک سرویس/واسط داخل کانتینر (ترجیحاً Python) که درخواست Job را دریافت کند.
• آماده بودن محیط GPU + پایتون + وابستگیها.
2. واسط دریافت Job از طریق API
• کانتینر باید بتواند یک پیام JSON (بهعنوان ورودی Job) دریافت کند. سالاد یک کد برای این کار دارد که همراه با کانتینر ایجاد شده. ولی یک کد ساده برای ارتباط با کد روی کانتینر نیاز هست که اطلاعات json را از طریق این فایل درفات کند.
• JSON شامل حداقل این موارد باشد:
o script_url : لینک دانلود فایل پایتون (مثلاً روی Google Drive یا URL مستقیم)
o dataset_url : لینک دانلود دیتاست/فایلهای ورودی
o upload_target : مقصد آپلود نتایج (URL یا روش مشخص)
o upload_interval_minutes : بازه آپلود دورهای (مثلاً 10 دقیقه)
o (اختیاری) args/env : پارامترها و متغیرهای محیطی
3. دانلود خودکار کد و دیتاست و اجرای Job
• دانلود فایل پایتون و دیتاست از URL دادهشده
• اجرای اسکریپت روی GPU داخل کانتینر
• ذخیره خروجیها و لاگها در مسیر مشخص داخل کانتینر/ولوم
4. آپلود دورهای خروجیها حین اجرا
• هر 10 دقیقه (قابل تنظیم) خروجیها/فایلهای تولیدی و یا گزارش پیشرفت آپلود شود.
• در پایان Job نیز آپلود نهایی انجام شود.
5. توقف قطعی کانتینر پس از اتمام
• پس از موفقیت یا شکست Job، کانتینر باید به شکل قابل اتکا خاتمه یابد (Exit مناسب) و از ریاستارت بیپایان جلوگیری شود.
• رفتار سیستم در خطاها مشخص باشد (ثبت لاگ، آپلود لاگ، خروج با کد خطا).
6. مستندات و راهنمای اجرا
• راهنمای ساخت ایمیج، استقرار روی Salad، تنظیمات لازم در Salad (در حدی که ممکن است)
• نمونه JSON ورودی Job
• یک سناریوی تست نمونه (مثلاً ضرب ماتریسی روی GPU یا یک محاسبه ساده) که نشان دهد:
o دانلود انجام میشود
o اجرا انجام میشود
o هر 10 دقیقه آپلود انجام میشود
o در پایان کانتینر متوقف میشود
محدوده فنی پیشنهادی (قابل تغییر با پیشنهاد فریلنسر)
• زبان واسط داخل کانتینر: Python (مثلاً FastAPI/Flask یا یک worker ساده)
• ارتباط Job: دریافت JSON از طریق HTTP endpoint داخل کانتینر یا روش استاندارد سالاد
• آپلود نتایج: ترجیحاًGoogle Drive API یا هر راه دیگر
معیار پذیرش (Acceptance Criteria)
پروژه زمانی تحویل شده محسوب میشود که:
1. با یک درخواست API/JSON، کانتینر Job را دریافت کند.
2. اسکریپت و دیتاست را دانلود و اجرا کند.
3. خروجیها را هر 10 دقیقه آپلود کند.
4. پس از اتمام، آپلود نهایی انجام شود.
5. کانتینر متوقف شود و ریاستارت نشود.
6. مستندات و یک تست نمونه قابل اجرا ارائه شود.
اطلاعاتی که هنگام شروع پروژه در اختیار فریلنسر قرار میدهم
• لینک مستندات Salad و بخش API
• Dockerfile فعلی یا ایمیج پایه از سایت سالاد یا داکر قابل دانلود است
• نمونه اسکریپت تست GPUرا می توانید خودتان با هوش مصنوعی بسازید
• روش/مقصد آپلود مورد نظر (در صورت نیاز به انتخاب، فریلنسر پیشنهاد میدهد)
• حمایت از کرایه VPS برای آپلود و دانلود سریع کانتینر. با توجه به وضعیت بد اینترنت ایران استفاده از یک vps مشکل سرعت دانلود و آپلود ایران را حل می کند.
هوش مصنوعی چت جی پی تی تقریبا سیستم سالاد را می شناسد و می تواند راهنمایی های خوبی داشته باشد. در این مورد می توانید با هوش مصنوعی چک کنید که چه کاری نیاز است انجام بشود و دید خوبی بگیرید. ولی می بایست بدانید چکار دارید می کنید و بتوانید با لینوکس و کانتینر و ای پی آی کار کنید. اشتراک پولی سالاد موجود هست و در اختیارتان قرار خواهم داد.
این آگهی از وبسایت کارلنسر پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت کارلنسر برین و از اونجا برای این شغل اقدام کنین.
هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک، با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.