برنامه نویسی موازی شبکه روی سیستم GPU چندهسته ای شتاب یافته با بهینه سازی

برنامه نویسی موازی­ شبکه روی سیستم GPU چندهسته­ای شتاب­یافته با بهینه­ سازی

چکیده
واضح است که کدگذاری شبکه به عنوان روشی امیدوارکننده برای بهبود بازده شبکه و پهنای باند موجود پدید آمده است. اما، با توجه به پیچیدگی محاسباتی بالا، قابلیت پیاده­سازی کدگذاری شبکه هنوز هم به عنوان یک چالش بر جای مانده است. همچنین، کاربردهای شتاب­یافته با GPU محدود به روش­های سنتی هستند، که در آن GPU بعنوان یک کوپروسسور[۱] برای مصرف مجموعه­داده­های انتقالی از CPU استفاده می­شود. بنابراین، یک چارچوب کدگذاری شبکه موازی مهاجم با بهینه­سازی برای GPU سفارشی شده است، که در آن یک گرنیولاریتی[۲] مناسب موازی­شدگی برای کدگذاری شبکه ارائه شده است، و GPU نه تنها می­تواند به عنوان مصرف­کننده داده، بلکه تولیدکننده داده­ نیز عمل کند. علاوه بر این، کدگذاری شبکه خطی تصادفی، در GPU فعال شده با CUDA موازی و بهینه­سازی شده است تا به اعتباربخشی روش ارائه شده بپردازد. نتایج عملی [آزمایشگاهی] نشان می­دهد که موازی کردن کدگذاری شبکه در سیستم چندهسته شتاب­یافته با GPU استفاده از روش­های پیشنهادی بسیار موثر است.

کلمات کلیدی: GPU، کدگذاری شبکه، موازی­سازی، CUDA، بهینه­سازی.

۱٫ مقدمه

کدگذاری شبکه، یکپارچه­سازی کدگذاری اطلاعات و مسیریابی شبکه، تکنیکی برای تبادل اطلاعات است، که در آن بسته­های اطلاعاتی قبل از ارسال کدبندی [کدگذاری] می­شوند.

با توجه به مزایایی از قبیل بهبود بازده شبکه، متعادل کردن بارها، کاهش تاخیر انتقال و مصرف انرژی گره، و افزایش استحکام شبکه [۱]، کدگذاری شبکه به طور گسترده­ای در ذخیره­سازی فایل­های توزیعی [۲] در شبکه­های بی­سیم استفاده شده است [۳]. با این حال، واقعیت وجود محیط شبکه غیرقطعی [۴]، پیچیدگی محاسباتی بالای کدگذاری شبکه [۵] به عملکرد سیستم­های کدگذاری شبکه [۵] آسیب می­رساند، لذا قابلیت پیاده­سازی آن هنوز هم یک چالش است. بنابراین، بهینه­سازی کدگذاری شبکه [۶] کاربردی است، و بهینه­سازی به نفع کاهش محاسبات و هزینه کدگذاری شبکه از جمله الگوریتم بهبود کدگذاری شبکه [۷] و شتاب کدگذاری شبکه مبتنی بر سخت افزار یا معماری [۵] [۸-۹] است.

کدگذاری شبکه شتاب­یافته با معماری GPU به نتایج قابل­توجهی دست یافته است و هنوز هم در حال پیشرفت است. با این حال، کار قبلی برای به حداکثر رساندن مصرف منابع محاسباتی GPU برای بازده سیستم کدگذاری شبکه موازی اختصاص داده شده است اما هنوز هم مطلوب نیست. همچنین، کار کمی بر روی بهینه­سازی سلسله مراتب حافظه برای سیستم کدگذاری شبکه وجود دارد. بنابراین، یک چارچوب کدگذاری موثر شبکه موازی از جمله بهینه­سازی حافظه برای بهبود بهره­برداری علاوه بر مصرف منابع محاسباتی GPU ارائه شده لازم است.

۲٫ معماری و مدل برنامه نویسی CUDA

شکل ۱، نمایی کلی از معماری سیستم مشترک متشکل از GPU و CPU را نشان می­دهد، که در آن داده­ها بین CPU و GPU با کانال PCIe مورد تقاضا انتقال می­یابند. معماریGPU شامل تعدادی از مولتی­پروسسورهای مقیاس­پذیر (SMها) است که هر کدام شامل هشت هسته جریان پردازنده (SP) است و هر سه SM تشکیل یک شاخه مولتی پروسسور ریسه­ای (TPC) در NVidia GTX 280، حافظه پنهان[۳] ثابت خواندنی، و حافظه پنهان بافت[۴] خواندنی است. علاوه بر این، هر SM دارای۱۶KB حافظه داخلی خواندنی و نوشتنی است که وجه مشترک همه SP های ۸ بیتی است.

خرید فایل