بخشی از مقاله

چکیده

شبکه بولتزمن 2 از تعداد بسیار زیادی گره در یک سطح دوبعدی تشکیل شده است. محاسبات شامل تکرار دو مرحله برخورد و پخش است. در مرحله برخورد محاسبات روی اطلاعات هر گره انجامشده و نتایج در مرحله پخش به گرههای مجاور انتقال داده میشود. با توجه به اینکه محاسبات برخورد روی گرههای متفاوت، وابستگی دادهای به گرههای مجاور ندارد، در این مقاله روشی برای تسریع مرحله پخش ارائه میشود. روش شبکه بولتزمن - LBM - ، روشی است که در دینامیک سیالات کاربرد دارد و برای شبیهسازی سیستمهای سیال پیچیده است.

-1 مقدمه

این شبکه از تعداد زیادی گره در یک سطح دوبعدی تشکیلشده است. این گرهها به گرههای اطراف خود تأثیر میگذارند. اگر هر گره را همانند شکل 1 در نظر بگیریم، هر گره دارای 9 بردار هست . این 9 بردار پس از محاسبات - 1 - به 9 بردار جدید تبدیلشده و به گرههای اطراف منتقل می-شوند و بهطور همزمان 9 بردار دیگر دریافت میکند - شکل . - 2 لازم به ذکر است که همهی گرهها بهطور همزمان فرایند فوق را پشت سر میگذارند و بردارها نیز دارای مؤلفههای x و y هستند.

شکل - : - 1 یک گره در شبکه بولتزمن

شکل - : - 2 نحوه انتقال بردارها به اطراف و دریافت بردار[2]

-2بررسی تحقیقات پیشین

یک پیادهسازی روش بولتزمن در [1] با FPGA3 انجامشده است. در این تحقیق FPGA با یک رابط PCIe4 به کامپیوتر متصل است و گرهها از این طریق به FPGA منتقل میشوند. در FPGA محاسبات برخورد روی گرهها انجامشده و به کامپیوتر منتقل میشوند تا در نرمافزار کامپیوتری، پخش انجام شود. تسریع بهدستآمده در عمل برابر 1.15 نسبت به یک پردازنده 2.2 گیگاهرتزی است و طبق تخمین برای سرعت بیشتر PCIe تسریع به 7.68 خواهد رسید. یکی از دلایل تسریع کم بهدستآمده در این تحقیق، دخالت زیاد کامپیوتر در عملیات پردازش و انتقال مداوم اطلاعات بین کامپیوتر و FPGA است.

در این تحقیق[1] برای پیادهسازی قسمت سختافزاری از یک نرمافزار که شبه کد دریافت کرده و سختافزار متناظر با آن را تولید میکند، استفادهشده است. این نرمافزار ASC نام دارد و شبه کدی که برای سیستم در نظر شده، در شکل 3 نشان دادهشده است.

شکل - : - 3 شبهات استفادهشده در ASC

شبه کد ارائهشده برای هر گره در نظر گرفته خواهد شد. در معماری موردنظر در [1] اطلاعات مربوط برای پردازش هر گره در اختیار سختافزار قرار میگیرد تا پس از پردازش به رایانه منتقلشده تا مرحله تبادل اطلاعات انجامشده و دوباره مرحله بعدی از پردازش انجام پذیرد. معماری در نظر گرفتهشده و محیط موردنظر بهعنوان ورودی سیستم برای انجام آزمایش در شکل 4 نشان دادهشده است.

در این پیاده سازی 180*360 گره در هر مرحله پردازششده و سپس تبادل اطلاعات انجام میپذیرد. توجه کنید که مرحله تبادل در نرمافزار صورت میگیرد. با توجه به ادعای این مقاله [1]تسریع بهدستآمده در عمل برابر 1.15 نسبت به یک پردازنده 2.2 گیگاهرتزی است و طبق تخمین برای سرعت بیشتر PCIe تسریع به 7.68 خواهد رسید. مقایسه تسریع بهدستآمده را در شکل 5 مشاهده میفرمایید.

شکل - : - 4 معماری ارائهشده و محک موردنظر برای پیادهسازی

شکل - : - 5 نتایج بهدستآمده و مقایسه سرعت

همچنین تحقیقات بسیاری در مورد پیادهسازی روش بولتزمن با پردازندههای گرافیکی انجامشده است که برای نمونه میتوان به [2] اشاره کرد. یکی از مؤثرترین روشها برای به دست آوردن تسریع استفاده از GPU است زیرا این پردازندههای گرافیکی از یک حافظه پرسرعت و تعداد زیادی پردازنده تشکیلشده اند که میتوانند بهصورت موازی عمل کنند. در [2] از پردازنده گرافیکی nVidia استفادهشده است که معماری آن در شکل 6 قابلمشاهده است. همانطور که ملاحظه میکنید این پردازنده گرافیکی از تعداد زیادی پردازنده تشکیلشده است که قابلیت این را دارد که شبکه بولتزمن در آن پیادهسازی شود.

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

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید