در مقاله “PCoIP چیست” با پروتکل نمایشی PCoIP و قابلیت ها و ویژگی های آن آشنا شدید؛ بر اساس اطلاعات سایت Teradici این پروتکل در حال حاضر توسط 13 میلیون کاربر در حال استفاده می باشد، و همانطور که می دانید تصاویر مورد نظر را به صورت Encrypt شده، با الگوریتم هایLossless و به صورت کاملا امن در اختیار کاربران قرار می دهد. با این حال شرکت Teradici در فروردین ماه سال 1398 اعلام کرد که نسخه جدید این پروتکل با نام تجاری PCoIP Ultra به زودی ارائه خواهد شد.
این پروتکل جدید شامل مجموعه ای از بهبودهایی است که روی PCoIP اعمال شده است. بر اساس گفته های David Smith مدیر عامل شرکت Teradici، PCoIP Ultra با هدف ارائه خدمات به کاربردهای Graphics Intensive طراحی شده است و همان قابلیت های Lossless Image Quality مورد انتظار کاربران را نیز فراهم خواهد نمود.
نسخه اولیه این پروتکل که به صورت انحصاری در اختیار کاربران Cloud Access Software قرار گرفته است، شامل ویژگی های زیر می باشد:
- پشتیبانی از محتوی با Frame Rate بالا (4K/UHD)
- پشتیبانی از AVX2 Instruction Sets جهت توزیع بار روی CPUهای Multicore
- توسعه معماری Multi Codec برای سایر الگوریتم های Codec نظیر 264/HEVC
به طور کلی می توان گفت که این الگوریتم در صنایع و کاربردهایی نظیر Visual Effects، Broadcast Video، Animation، Computer Aided Design (CAD)، Financial Trading، Medical Imaging مورد استفاده قرار خواهد گرفت.
در ادامه به بررسی جزئیاتی از پروتکل PCoIP Ultra خواهیم پرداخت.
معماری PCoIP Ultra
همانطور که در شکل فوق ملاحظه می کنید، PCoIP Agent (نسخه 19.08 به بعد) شامل دو بهینه سازی اصلی می باشد. توجه داشته باشید که این Agent کاملا متفاوت با PCoIP Encoder به کار رفته در VMware Horizon می باشد که به صورت Sigle Threaded پیاده سازی شده است!
نخستین بهینه سازی، PCoIP-AVX2 codec می باشد که در شکل فوق با رنگ آبی نمایش داده شده است. این بهینه سازی مربوط به Codec انحصاری شرکت Teradici است. اما بهینه سازی دوم مربوط به Third Party Codec Framework می باشد که در شکل فوق با رنگ زرد نمایش داده شده است. این بهینه سازی این امکان را فراهم کرده است که شما بتوانید از الگوریتم های Codec سایر شرکت ها نظیر NVIDIA نیز استفاده کنید. الگوریتم NVIDIA NVENC H.264 نمونه ای از این Third Party Codec ها می باشد. توجه داشته باشید که انتخاب بین Codec از طریق Group Policy امکان پذیر خواهد بود.
سازگاری PCoIP Ultra
پیش از هر چیز توجه داشته باشید که اگر از Zero Client برای اتصال به Cloud Access Software استفاده می کنید، به صورت اتوماتیک از الگوریتم قدیمی PCoIP SSE4.2, SSE2 استفاده خواهد کرد، چراکه تراشه TERA2 تعبیه شده داخل Zero Clientهای موجود، با الگوریتم های AVX2 و یا H.264 سازگاری ندارد.
چنانچه از یک PC با حداقل پردازنده نسل 4 Intel Core i3 استفاده می کنید، این امکان وجود خواهد داشت که از طریق GPO، استفاده از PCoIP AVX2 را فعال کنید. در تعداد اندکی از Thin Clientها نیز این امکان فراهم می باشد (مشخصات پردازنده را کنترل کنید). توجه داشته باشید که برای دستیابی به کیفیت تصویر بالا نظیر 4K/UHD at 30 fps، باید از پردازندهای نسل جدید با پشتیبانی از AVX2 (Advanced Vector Extensions 2) استفاده کنید. برای استفاده از الگوریتم های نرم افزاری H.264 444 Decoding، دستیابی به Frame Rate بالا تنها به واسطه استفاده از Resolution پایین تر از 2560×1600 و پردازنده های قدرتمند نظیر 8th Gen Core i5 و بالاتر امکان پذیر خواهد بود.
Pixel Rate
همانطور که در تصویر فوق مشاهده می کنید، استاندارد PCoIP Ultra توانسته به عدد 500 Mega Pixel per Second (MPPS) دست پیدا کند که 4 برابر بیشتر از الگوریتم PCoIP اصلی است.
در پروتکل PCoIP اصلی تنها نیاز است Pixel هایی که در مقایسه با Encoder Cycle قبلی (نزدیک به 16.6 ms قبل) تغییر کرده است را پردازش کنیم. در یک Desktop معمولی این عدد یعنی تعداد Pixelهای تغییر کرده نسبت به 16.6 میلی ثانیه قبلی، نزدیک به صفر است، در نتیجه CPU خیلی درگیر نخواهد بود. حال یک ویدئو 1080p را در نظر بگیرید که دارای 2 میلیون پیکسل (2 Megapixel) می باشد، اگر این فیلم به صورت 24 fps پخش شود، نیاز به 48 MPPS (2 Megapixel * 24 fps) می باشد. یک ویدئو 4K/UHD دارای 8.3 Megapixel می باشد که در صورت پخش با 30 fps حدود 250 MPPS خواهد داشت. دستیابی به این MPPS تنها به واسطه استفاده از PCoIP Ultra امکان پذیر خواهد بود. توجه داشته باشید که ماشین Remote و Endpoint برای پشتیبانی از این MPPS بالا نیاز به پردازنده های خاصی دارند که در بخش قبل در رابطه با آن صحبت کردیم.
CPU Scaling
همانطور که گفته شد، پروتکل استاندارد PCoIP (SSE2) که از طریق Horizon Client در دسترسی می باشد، به صورت Single Thread پیاده سازی شده است که برای Workloadهای معمولی VDI نیز مناسب است، برای کاربردهای High Pixel اصلا مناسب نیست. در استاندارد SSE4.2 (Cloud Access Software) با بهینه سازی های صورت گرفته، الگوریتم به صورت Multi Thread پیاده سازی شده و تا حداکثر 8 Thread را پشتیبانی میکند. این در حالی است که در PCoIP Ultra AVX2، محدودیتی در این زمینه وجود ندارد؛ هر چه تعداد Coreها بیشتر باشد، تاثیر بهتری روی CPU Workload خواهد داشت.
نمودار فوق مربوط به Benchmarks پخش انیمیشن Big Buck Bunny با کیفیت 24 fps در دو کیفیت 1080p و 4K/UHD می باشد. همانطور که مشاهده میکنید افزایش تعداد Core تاثیر بسیار مثبتی در کاهش بار تحمیلی پردازنده خواهد داشت.
از طرفی در محیط NVIDIA vDWS که از NVENC GPU offload استفاده می شود، بین 20-25 درصد نسبت به PCoIP Ultra AVX2، CPU Utilization کاهش خواهد یافت.
پهنای باند مصرفی PCoIP Ultra
مصرف پهنای باید درBenchmarks قبلی در نمودار زیر قابل مشاهده است.
از طرفی بررسی ها نشان می دهند که مصرف پهنای باید PCoIP Ultra نسبت به PCoIP، 25% کمتر می باشد.
نتیجه گیری
مجازی سازی دسکتاپ و VDI در سال های اخیر به شدت مورد توجه مدیران IT قرار گرفته است و مزایای فراوانی نیز برای سازمان ها به همراه داشته است. در مبحث VDI، پروتکل PCoIP توانست به صورت به عنوان یک پروتکل امن و با کیفیت بالا مطرح شود.
هرچند این پروتکل در سال های اخیر توانسته پاسخگوی طیف وسیعی از کاربردها باشد، با این حال برخی سازمان ها با کاربردهای خاص و حساس نظیر Visual Effects، Broadcast Video، Animation، Computer Aided Design (CAD)، Financial Trading، Medical Imaging، در استفاده از پروتکل PCoIP و در نتیجه VDI با شک و تردیدهایی مواجه بودند؛ این عامل باعث شده بود که این دسته از کاربران از مزایای فراوان VDI محروم بمانند. اما شرکت Teradici با معرفی پروتکل PCoIP Ultra توانست گام مهمی در VDI بردارد.
PCoIP Ultra باعث شده است که در حال حاضر VDI بتواند در هر صنعت و حوزه ای مورد استفاده قرار گیرد.