استراتژیهای توزیع داده برای تصاویر high-resolution
خلاصه:
تصاویر مقیاس بزرگ و high- resolution بصورت افزایشی برای برنامههای کاربردی interactive (گرافیکهای سهبعدی) شامل تصاویر دادهای مقیاس بزرگ و محیطهای مجازی پوششی و طرحهای مشترک است و مورد استفاده قرار میگیرند. این سیستمها باید شامل یک کارآیی بسیار بالا و افزاینده زیر سیستمهای rendering برای تولید تصاویر high-resolution در اندازههای فریمهای real – time باشند.
ما تحقیق وبررسی میکنیم که چگونه سیستمی را که تنها از اجزای قطعات گرانقیمت در یک pc cluster استفاده میکند بسازیم. هدف اصلی پیشرفت و توسعه الگوریتمهای کارا برای تقسیمبندی و توزیع وظایف rendering به صورت مؤثر در پهنای باند عملیات پردازشی و انبارداری و محدودیتهای یک سیستم توزیع یافتهاست. در این مقاله ما سه راه متفاوت را که از نظر نوع دادههایی که از Client به سرورهای تصویر میفرستند فرق دارند با هم مقایسه میکنیم به کنترل مقادیر اولیه و پیکسلها برای هر راه آزمایشات اولیه را به وسیله یک سیستم الگو که یک تصویر دیواری چند پروژهکتوره را با یک pc-cluster تولید میکند، شرح میدهیم. ما راههای متفاوتی را که برای ساختارهای متفاوت سیستمی مناسب باشد با بهترین انتخاب مربوطه به پهنای باند ارتباطی ظرفیت انبارداری و قدرت پردازشکردن Clientو سرورهای تصویری را پیدا کردیم:
کلیدهای اصلی مؤلف: رندرکردن موازی، گرافیکهای شبکهشده، تصاویر مقیاس بزرگ تصویر Interactive، و محاسبه Cluster
فهرست مقاله:
معرفی
2. طبقهبندی استراتژیهای توزیعداده
3. مدل اجرایی همگامسازی شد
4. مدل توزیع اولیه
5. مدل توزیع پیکسل
6. نتیجهگیری و کار آینده
7. مراجع
1. معرفی:
ما در حال عبور از دوران جدیدی از محاسبات کامپیوتری هستیم که در آن تبادل با دادهها در سراسر زمان و فضا با وسایل تصویر ubiquitous موجود است. دلایل وجود این تغییرات در این دروان ساده هستند. پیشرفتهای سریع در کارآیی cpu ظرفیت ذخیرهسازی نهایی باند شبکه و تولیدات وسایل نمایشی.
راه سنتی استفاده از کامپیوترها و شبکهها بیشترین سیکلهای cpu را برای حل مشکلات تکنیکی و مدیریت و سازماندهی تراکنشهای تجاری مصرف میکردند، این رزوها بیشتر سیکلهای cpu نهایی باند شبکه در نقل و انتقالات شامل بوجود آوردن محتویات گمشده و تحریفشده فرستادن اطلاعات و ارائهکردن اطلاعات برای مردم برای جستجوکردن و تصویرساختن صرف میشوند.
در این دهه اخیر تصاویر نسل جدید مانند (light-ernitting plastics)LEP و
(organic light- emitting devices) OLED، اجزای قطعات با ارزشی ازنظر تجاری خواهند شد. این وسایل بسیار گران قیمت هستند. آنها ممکن است به دیوارها، پنجرهها، لوازم منزل و… وصل شوند. آنها ممکن است تکهتکه سطح یک اتاق، کف یک اتاق و یا حتی یک ساختمان را به صورت یکپارچه بپوشانند. پیشرفت آنها یک مشکل جدید تکنیکی جالب را معرفی خواهد کرد:
چگونه باید سیستمهای کامپیوتری برای تولید پیکسلهای بسیار زیاد طراحی کنیم؟
خوشبختانه در بیشترحالات منطقی همه تصاویر نیازی به اینکه یکمرتبه با resolution کامل یا در اندازههای فریمهای ویدئویی update شوند،ندارند. در عوض تعداد کمی از تصاویر بازخور را به نقل و انتقال user که به زمانهای سریع refresh نیاز خواهد داشت. در زمانی که اکثرتصاویر دیگر میتوانند در کمترین فرکانس و یا در پائینترین update, resolution شوند نشان میدهند در ضمن تصاویر برای استفادهکنندهای که بتواند خالی یا سفید باقی بماند مشخص نیست.
هدف طراحی یک سیستمrenering قوی و انعطافپذیر برای تولید تعداد زیادی از پیکسلها که در یک محیط پویا روی تصاویر متعدد فشرده میشوند است.
سیستم جاری ما در شکل 1 نشان داده شده که شامل 24 پروژکتور چیدهشده در یک گرید 4×6 برای شکلبخشیدن به یک تصویر بیجدار (Seamless) روی یک صفحه پروژکتوردار است.
Resolution هر پروژکتور 768×1024 است. پس در کل resolution دیوار k 3 ×k 6 است.
( M pixels 18). هر پروژکتور بوسیله یک pc بهم وصل شده به یک شبکه کار میکند. این سیستم همچنین شامل pc هایی برای tracking ورودی استفادهکننده و ترکیبکردن صداها باری 14 – Speaker و اجراکردن برنامههاست. قیمت تمام شده این سیستم در حدود k 200 $ است. در مقایسه با سیستمهای rendering سنتی ساختارها سودهای بسیاری دارد. اول ما از اجزای قطعات سختافزاری و همچنین سیستم با کمترین هزینه و بیشترین قابلیت تغییر و تکنولوژی Track ها بهتر از سیستمهای دیگر با سختافزار رایج استفاده کردیم. دوم ما از یک شبکه برای ارتباط بین پردازندهها که قابلیت انعطافپذیری زیادی دارند استفاده میکنیمبرای نمونه پردازشگرهای مختف و متفاوت هر وسایل نمایشی که میتواند به سیستم به صورت مستقل اضافه شوند. در آخر، تصاویری که از چندین زیرتصاویر متشابه ترکیب شدهاند در fromebuffer های کامپیوتری متفاوت نمایش داده میشوند. این خصوصیات یک تصویر موازی طبیعی تجزیه شده از محاسبات rendering را که توانایی ایجاد تصاویر با high – restolution را دارند تولید میکند. هدف اولیه بناکردن استراتژیهای rendering که مؤثر با عملیات پردازشی در انبارداری و خصوصیتهای نهایی باند اجزای قطعات کار میکنند است.
در این مقاله ما نتایج تحقیق در استفادهکردن از اجزای قطعات برای بناکردن یک سیستم کارآیی بالا که وسایل نمایشی چند شبکهشده را تولید میکنند بررسی میکنیم. هدف از مطالعه ما مشخصکردن عملیات پردازشی، انبارداری و نیازمندیهای ارتباطی از چندین ساختارهای سیستمی ممکن است. در مورد پردازش توزیع یافته میشود و نتیجه اصلی تحقیق همگامسازی میشود. در مورد بعدی پردازش متمرکز شدهاست و نتیجه تحقیق روی توزیعیافتگی داده تأثیر دارد.
2- طبقهبندی استراتژیهای توزیع داده:
برای برنامههای کاربردی که در سراسر اجزای قطعات شبکهشده چندگانه اجرا
میشوند، ما باید توجه کنیم که چگونه داده را بین قطعات توزیع کنیم و چگونه اجرا را همگامسازی کنیم. یک مدل برنامهنویسی ممکن، client-server است. برای نمونه هر کاربری میتواند با یک client در حالیکه مروروها تصاویر را مدیریت میکنند مبادله اطلاعات (interact) کنند. در این مقاله سه روش و مرحله وجود دارد که در هرکدام ارتباط client-server ممکن است رخ دهد.( در شکل نشان داده شدهاست) سه شکل متفاوت از داده که روی شبکه فرستاده میشوند:
کنترل: (اجرای همگامسازی شده)
یک کپی از برنامههای کاربردی روی هر سرور نمایشی اجرا میشود. Client رویدادهای user-interface را اداره میکند و اطلاعات کنترلی را( برای مثال رویدادهای همگامسازی یا تغییرات در view به هر سرور نمایشی میفرستد. در این مدل نیازمندیهای شبکه نوی حداقل است.
مقادیر اولیه:
در این مدل user-interface و برنامه کاربردی در سمت client موجود است. برنامههای کاربردی حتماً مقادیر اولیه گرافیکهای دوبعدی و سهبعدی را بروی شبکه در سرور نمایشی که آنها را rester میکنند و نمایش میدهند میفرستد. در این طرح نیازمندیهای شبکه به پیچیدگی تصویر بستگی دارد. درهر سرور نمایشی نیازمندیهای rendering یک رویداد کامل است مگر اینکه بعضی از شکلهای مستقل از view انتخاب شده انجام شود. بطور ایدهآل یک طرح موازنه بار rendering بار در هر سرور ماشین را
توزیع میکند.
پیکسلها:
اینجا برنامه کاربردی و همه rendering pipdine در سمت client اجرا میشود client پیکسلها را( نوعاً تصاویر JPEG یا جریانهای MPEG شده) به سمت سرور حمل میکند و سپس شبکه بطور نسبی به re solution نمایشی احتیاج دارد. در تصویر سرور به سادگی پیکسلها را زیرگشایی میکند و بنابراین به مقدار کمی انبار و عملیات پردازشی قوی نیاز دارد. از طرف دیگر اگر ایستگاه کاری یک client واحد یک برنامه کاربردی را اجرا کند که تصویر کامل با resolution بالا را تولیدمیکند نیازمندیهای rendering یک client برای برنامههای کاربردی پویا بسیار عظیم است. با اینکه اگر بسیاری از برنامههای کاربردی که هر کدام یک قسمت از دیوار را میپوشاند بار client ادارهشدنی است.
3- مدل اجرای همگامسازی شده:
یک روش از اجرای یک برنامه کاربردی در یک تصویر دیواری تقسیمبندی شده استفاده از یک برنامه مدل اجرایی همگامسازی شدهاست. در این مدل یک نمونه دوتایی از برنامه کاربردی در هر سرور اجرا میشود. تنها تفاوت بین نمونههای اجراشدن از محیط اطلاعات است. مانند هر سروری که در تصویر تقسیمبندی شده نمایش داده میشود. هر یک برای این مدل به حداقلرساندن ارتباط روی شبکه است. تنها پیامهای کنترلی نیاز است که روی شبکه فرستاده شود. اینها پیامهایی مانند همگامسازی رویدادها و ورودی کاربر هستند و کمترین پهنای باند مورد نیاز را منجر میشوند.
در مدل همگامسازی شده یک مرز همگامسازی ایجاد شدهاست که برای همه نمونهها در مورد آن مرز رفتار یکسانی فرض شدهاست. ما با داشتن این مرز درهر دو سطح سیستم و سطح برنامه کاربردی آزمایش انجام دادهایم. مرز همگامسازی در سطح سیستم هر دو گرافیکهای اولیه یکسانی را تولید میکند و گرافیکهای تسریعکننده برای انجامدادن انتخاب قسمت ویژه (tile-specific ) که در آن فقط مقادیر اولیههایی که در یک ناحیه صفحه نمایش (screen)سرور میافتد render میشوند استفاده میشود. ( شکل 3 را نگاه کن) این تکنیک مخصوصاً اگر که منبع برای برنامه کاربردی موجود نباشد مفید است. اگر مرز همگامسازی به سمت سطح برنامه کاربردی حرکت کنند. بهینهسازی بیشتر ممکن است. یک لایه نرمافزاری مستقل از view میتواند خودش را برای ایجاد قسمت (tile) خصوصی از مقادیر اولیه محدود کند.( نسبت به تولید همه مقادیر اولیه در تصویر). یک مثال از دومین بخش از یک تصویرگرافی روز برنامه است که داده تصویری در یک درجهبندی از اشیاء سازماندهی میکند. یک قسمت مخصوص (tile-specific) view ی هرم ناقص مفروض است. برنامه میتواند اشیایی را که کاملاً بیرون از هرم افتاده است خارج کند. این راه میتواند کارآیی پردازش و کارآیی انتقال داده را بخوبی افزایش دهد.
ما از frameworke همگامسازی برای هر دو سطح سیستم و برنامه کاربردی استفاده میکنیم با استفاده از feamework همگامسازی ما اطلاعات مفیدی روی چندین برنامه کاربردی شامل ماشینها ( از world up Toollit شکل 4) At lontis (silicon Grophics) و (isosurface, Visualization tool) Isoview جمعآوری شدهاست. نتایج ما نشان میدهد که ارتباط همگامساز رویهم رفته کوچک است، کمتر از 500 بایت در frome برنامههای کاربردی در حالت گرافیکهای سهبعدی سرعت بین 2/1 تا 2/4 در مقایسه با یک روش server – client تغییر میکند.( مانند توزیع اولیه بخش 4 جدول 1 را نگاه کن) مقدار تغییرات سرعت با مقدار مقادیر اولیه و زمان محاسبه مقدار اولیه پیشفرض تأثیرپذیر است. بطورکلی مدل همگامسازی وقتی مقدار اولیههای زیادی وجود داشته باشد و زمان محاسبه مقدار اولیه پیشفرض کم باشد بخوبی انجام میشود. وقتی زمان محاسبه مقدار اولیه پیشفرض بالاست. اغلب هیچ یا کمی تغییرات سرعت وجود دارد برای اینکه یک روش client-server میتواند ارتباط شبکه یا محاسبه را overlap کند.
آزمایشات ما همچنین نشان دادهاست که همگامسازی سطح برنامه کاربردی بطور قابل توجهی بهتر از همگامسازی سطح سیستم انجام میشود. در برنامههای کاربردی Atlontis ما قادریم به یک کاهش ثابت عمومی پنجاهدرصدی در محاسبه حالتهای نادرست و مقادیر اولیه گرافیکی برسیم. بطورکلی ما فهمیدیم که اجرای همگامسازی شده میتواند یک مدل مؤثر و کارا برای برنامهنویسی یک تصویر تقسیمبندی شده (tiled) باشد. این روش بویژه وقتی که تواناییهای ارتباطی سرورهای render ( شامل پردازنده و حافظه) فراتر از پهنای باند موجود شبکه است، مناسب است.
4- مدل توزیع اولیه:
یک انتخاب دوم برای توزیع برنامههای کاربردی گرافیکی توزیع مقادیر اولیه گرافیکی روی شبکه است. در این حالت یک یا بیشتر client ها برنامههای کاربردی را که تمام user-interface و وظایف پردازش را انجام میدهند اجرا میشوندسپس مقادیر اولیه گرافیکهای دوبعدی و سهبعدی روی شبکه برای تصاویر فرستاده میشود. سرورها برای توانای رمزگشایی و render این جریانهای مقادیر اولیه گرافیکهای دوبعدی و سهبعدی مورد نیاز هستند.
این مدل به برنامه کاربردی اجازه میدهد در یک محل واحد به دور از محاسبات اضافی و توزیعیافتگی فقط بار کاری گرافیکهای rendering را اجرا کند.
برای آسانترکردن استفاده از برنامهنویسی ما میتوانیم تکنیکهایی را اجرا کنیم که به برنامهها اجازه میدهد برای یک desktop واحد به صورت تغییر داده نشده اجرا شوند.
دو روش برای تستکردن این مدل اجرا شدهاست:
یک تولیدکننده تصویر مجازی (VDD) برای مقدار اولیههای گرافیکی دوبعدی و یک لایه GL توزیعیافته باز(DGL) برای مقدار اولیههای VDD-3D بعنوان یک وسیله تولیدکننده (driver) برای window2000اجرا شدهاست این مدل به سیستم عامل وجود یک تصویر بزرگ (مجازی) را گزارش میدهد. برنامههای کاربردی ویندوزهای استاندارد ممکن است سپس در این وسیله اجرا و نمایش داده شوند. وقتی ویندوزها driver تصویر را برای render مقادیر اولیه گرافیک دوبعدی درخواست میکنند VDD این درخواستها را ضبط میکند و آنها را در سرور پخش میکند لایه DGL هم در یک روش مشابهی کار میکند ولی بعنوان یک Library پیوندی پویا که جایگزین Library اصلی GL باز شدهاست اجرا میشود. در هر مورد سرورها برنامهای که دریافت میکنند را اجرا میکنند و رشته ورودی از دستورات گرافیک دوبعدی ( در مورد VDD ) یا گرافیک سهبعدی ( در مورد DGL ) را رمزگشایی میکنند و به آنها به سختافزارهای گرافیکی محلی فرستاده میشوند.
برای کاهش پهنای باند هر دو ما میتوانیم با گلچینکردن مقادیر اولیه بوسیله اندازه فضای نمایششان آنها را انتخاب کنیم برای جداسازی لایهها ما میتوانیم چک کنیم که کدام یک از ناحیههای تصویر تقسیمشده (tikd) یک مقدار اولیه ویژه overlop دارد و سپس پیامهای شبکه را فقط برای آن سرورها بجای پخشکردن دستورات گرافیکی بفرستیم.