با استفاده از numpy.random.choice یک ماتریس بزرگ از اعداد صحیح تصادفی بسازید و میانگین هر سطر را با استفاده از multiprocessing بهصورت موازی محاسبه کنید.
5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:31 0.0
برای حل مسئله از numpy برای تولید دادهها (np.random.choice) و از ماژول multiprocessing برای اجرای همزمان محاسبات استفاده کنید: ابتدا یک بردار از اعداد ممکن تعریف کرده و با np.random.choice آرایهای با اندازه دلخواه بسازید و آن را به شکل ماتریس درآورید، سپس ماتریس را به بخشهای (chunk) کوچکتر تقسیم کنید و با Pool.map یا Pool.imap تابعی را اجرا کنید که میانگین هر سطر را محاسبه کند. نکات: برای عملکرد بهتر در بسیاری از موارد استفاده از بردارمحوری numpy (np.mean(axis=1)) سریعتر و سادهتر از فرآیندهای چندپردازشی است؛ اگر حافظه و کپی شدن دادهها مسئلهساز است، از راهکارهای حافظه مشترک (multiprocessing.shared_memory) یا تقسیمبندی هوشمند استفاده کنید و برای نتایج تکرارشونده مقدار seed مناسب تنظیم نمایید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای تولید ماتریس بزرگ از اعداد صحیح با np.random.choice و محاسبه میانگین هر سطر با multiprocessing، معمولاً استفاده از np.mean(axis=1) بهصورت برداری سریعتر است و ضرورتی برای multiprocessing در اغلب موارد وجود ندارد. اگر حافظه یا کپی دادهها مسئله است، از multiprocessing.shared_memory یا تقسیمبندی هوشمند دادهها به chunkها استفاده کنید تا دادهها دوباره کپی نشوند. برای تکرارپذیری نتایج seed را مشخص کنید و مطمئن شوید تابعی که به Pool.map داده میشود قابل pickle شدن است. در نهایت برای کاهش سربار، اندازه chunk را آزمایش کرده و میتوانید از imap بهجای map استفاده کنید تا نتایج بهطور تدریجی بازگردند.
گزارش