مدلهای رایانشی موازی و توزیعی واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستمهای غشایی
مدلهای رایانشی موازی و توزیعی واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستمهای غشایی – ایران ترجمه – Irantarjomeh
مقالات ترجمه شده آماده گروه کامپیوتر
مقالات ترجمه شده آماده کل گروه های دانشگاهی
مقالات رایگان
قیمت
قیمت این مقاله: 38000 تومان (ایران ترجمه - irantarjomeh)
توضیح
بخش زیادی از این مقاله بصورت رایگان ذیلا قابل مطالعه می باشد.
مدلهای رایانشی موازی و توزیعی واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستمهای غشایی
شماره |
173 |
کد مقاله |
COM173 |
مترجم |
گروه مترجمین ایران ترجمه – irantarjomeh |
نام فارسی |
مدل های رایانشی موازی و توزیعی در یک واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستم های غشایی |
نام انگلیسی |
Parallel and distributed computing models on a graphics processing unit to accelerate simulation of membrane systems |
تعداد صفحه به فارسی |
76 |
تعداد صفحه به انگلیسی |
19 |
کلمات کلیدی به فارسی |
رایانش غشایی, واحد پردازش گر گرافیکی, سیستم های غشایی, رایانش توزیعی, پردازش موازی, شبکه وزن دار |
کلمات کلیدی به انگلیسی |
Membrane Computing, Graphics processing unit, Membrane systems, Distributed computing, Parallel processing, Weighted network |
مرجع به فارسی |
مدل سازی شبیه سازی – راهکارها و تئوریمرکز تحقیقاتی فناوری و مدیریت نرم افزار، کالج فناوری و علوم اطلاعات، دانشگاه ملی مالزی، سلنگور، مالزی، الزویر |
مرجع به انگلیسی |
Simulation Modelling Practice and Theory ; Research Center for Software Technology and Management, Faculty of Technology and Information Science, National University of Malaysia, Bangi, Selangor, Malaysia; Elsevier |
سال |
2014 |
کشور |
مالزی |
مدلهای رایانشی موازی و توزیعی واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستمهای غشایی
مدل های رایانشی موازی و توزیعی در یک واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستم های غشایی
چکیده
سیستم های غشایی به عنوان مدل های رایانشی موازی توزیعی به شمار می آیند که در نواحی گسترده ای به کار گرفته می شوند. استفاده از ماشین ترتیبی جهت شبیه سازی سیستم های غشایی قابلیت بهره گیری از مزیت موازی گری در رایانش غشایی را فراهم نمی آورد. در این مقاله، یک الگوریتم رده بندی نوآورانه بر مبنای شبکه وزن دار ارائه می گردد. دو الگوریتم جدید به منظور شبیه سازی مدل های سیستم های غشایی در یک واحد پردازش گر گرافیکی (GPU) پیشنهاد شده است. برقراری ارتباط و هم زمان سازی / همگام سازی بین ریسه ها و بلوک های ریسه ای در یک GPU به عنوان فرایندی زمان بر تلقی می گردد. در مطالعات قبلی، فرآیند تخصیص آبجکت های وابسته به ریسه های مختلف مد نظر بوده است. چنین موردی سبب افزایش نیاز ارتباطاتی بین ریسه ها و در نتیجه کاهش عملکرد می گردد. در مطالعات قبلی، غشاهای وابسته به بلوک های ریسه ای مختلفی تخصیص یافته که نیازمند ارتباطات بین بلوکی بوده اند، موردی که سبب کاهش عملکرد می شود. سرعت الگوریتم پیشنهادی در یک GPU که در آن اقدام به دسته بندی آبجکت ها یا موضوعات وابسته با استفاده از یک رویکرد ترتیبی می شود، به طور مثال با 512 آبجکت در هر غشا، به میزان 82 برابر حاصل می شود، در حالی که برای رویکرد قبلی (الگوریتم 1)، سرعت 2/8 برابر گزارش شده است. برای یک سیستم غشایی با وابستگی بالا در بین غشاها، این شتاب گیری یا سرعت الگوریتم پیشنهادی ثانویه (الگوریتم 3) به میزان 12 برابر گزارش شده است، در حالی که برای رویکرد قبلی (الگوریتم 1) و اولین الگوریتم پیشنهادی (الگوریتم 2) که اقدام به تخصیص هر غشا در یک بلوک ریسه می شود، این میزان 8/1 برابر گزارش شده است.
کلمات کلیدی: رایانش غشایی، واحد پردازش گر گرافیکی، سیستم های غشایی، رایانش توزیعی، پردازش موازی، شبکه وزن دار
مدلهای رایانشی موازی و توزیعی واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستمهای غشایی
1- مقدمه
در خلال دهه های اخیر، رایانش طبیعی به عنوان یک ناحیه تحقیقاتی مهم در عرصه علوم کامپیوتر مطرح شده است. رایانش غشایی [1] یک شاخه نوظهور مرتبط با رایانش طبیعی به شمار می آید که از نقطه نظر مدل محاسباتی توزیعی موازی از ساختارها و عملکردهای بیولوژی سلولی الهام گرفته است. رایانش غشایی در سال 1998 به وسیله Paun ارائه شد [2]. وی نسبت به تعریف خدمات محاسباتی متشکل از تعدادی از غشاها، آبجکت ها و قواعد اقدام نمود. غشاها در یک غشای اصلی که تحت عنوان پوسته خوانده می شود جاسازی می گردند. مجموعه های متعددی از آبجکت ها در غشاها وجود داشته که بر مبنای قواعد مرتبط تکامل می یابند [3].
سیستم های غشایی قابلیت حل مشکلات در یک روش توزیعی را دارند [4،5]. بعلاوه، آن ها جهت ارتقای الگوریتم های هوشمند مورد استفاده قرار می گیرند [6،7] تا قابلیت حل مشکلات سخت نظیر مسئله سه – رنگ [8]، مسئله تخصیص کوآدراتیک / درجه دوم [9] و مدل سازی فرایندهای اقتصادی [10] وجود داشته باشد. سیستم های غشایی را می توان به صورت موفقی در مواردی مورد استفاده قرار داد که در آن ها رویکردهای شبیه سازی کلاسیک نظیر معادلات دیفرانسیل معمولی را نمی توان به خوبی به کار گرفت [11، 12]. آن ها جهت مدل سازی چندین مسئله بیولوژیکی شامل نوسانات کلسیم القا شده – هورمونی [13]، شبکه گیرنده لیگاند [11]، حسگری کوروم [14]، نوسانات بیوشیمیایی [15]، مسیرهای سیگنالینگ آپوپتوز القا شده [16]، کنترل بیان ژن [17]، و ترارسانی / انتقال سیگنال [18] به کار گرفته شده اند.
از زمانی که رایانش غشایی ارائه شده است، تلاش های زیادی جهت شبیه سازی مدل های رایانش غشایی انجام گرفته است. برخی از این شبیه سازی ها بر روی کامپیوترهای تک پردازنده اعمال شده است [19-20]. با این وجود، شبیه سازی های ترتیبی مزیت ساختار موازی در فرایند رایانش غشایی را نادیده انگاشته اند. به منظور حاصل آوردن مزیت موازی گری، تلاش های دیگری جهت شبیه سازی سیستم های غشایی با استفاده از ابزارهای موازی اعمال شد. به طور مثال، سیستم های غشایی بر روی کامپیوترهای دارای پردازنده های متعدد [21-23]، بر روی خوشه های کامپیوتری [24]، و بر روی سخت افزار با قابلیت پیکربندی مجدد نظیر آرایه های گیت قابل برنامه ریزی میدانی (FPGAs) [25] و بسیاری از معماری های چند هسته ای نظیر GPUs [26-28] شبیه سازی شده است.
با این وجود، رویکردهای قبلی دارای برخی از محدودیت های خاص بوده و به بررسی های بیشتری نیاز دارند. استفاده از خوشه های کامپیوتری از نقطه نظر هزینه به صرفه نمی باشد و بسیاری از شرکت ها قابلیت فراهم آوردن آن ها را ندارند. برنامه نویسی و تغییر کد برنامه ها در یک FPGA نیز به عنوان یک راهکار بسیار زمان بر به شمار می آید. GPU فراهم آورنده یک رویکرد بسیار آسان و اقتصادی برای پردازش موازی در مقایسه با خوشه های کامپیوتری و FPGAs می باشد. به همین دلیل، GPU ها جهت حل مشکلات متعدد در علوم و مهندسی به کار گرفته شده اند [29-33]. برخی از مطالعات قبلی [26-28] از یک GPU جهت شبیه سازی سیستم های غشایی استفاده نموده اند. با این وجود، این مطالعات وابستگی های بین آبجکت ها یا بین غشاها را مورد ملاحظه قرار نداده اند (دو غشا به هنگام رد و بدل کردن اطلاعات وابسته هستند) و این عدم توجه به هنگام تخصیص آن ها به ریسه ها یا بلوک های ریسه ای همچنان به عنوان یک مشکل مد نظر خواهد بود. ریسه ها شامل آبجکت های وابسته ای هستند که برای برقراری ارتباطات مورد نیاز می باشند. در رویکردهای قبلی، وابستگی بین غشاها مد نظر قرار گرفته نشده است. بنابراین، جهت برقراری ارتباط بین غشاها، بلوک های ریسه ای نیز می بایست قابلیت ارتباط را داشته باشند. فراخوانی حافظه به منظور هم زمان سازی و ارتباطات بین بلوک های ریسه ای الزامی می باشد [34]. فراخوانی کرنل و ارتباطات بین ریسه ها به عنوان فرایندی زمان بر تلقی شده و سبب کاهش عملکرد GPU می شود.
مقاله جاری ارائه دهنده یک الگوریتم رده بندی نوآورانه بر مبنای شبکه وزن دار می باشد. در این الگوریتم، آبجکت ها به گروه هایی بر مبنای میزان وابستگی آن ها تقسیم می شوند. متعاقباً هر گروه که شامل دو یا چند آبجکت وابسته می باشد به یک ریسه تخصیص می یابد، که به معنای آن خواهد بود که آبجکت های وابسته به وسیله ریسه مشابهی اجرا می شوند و بنابراین ارتباطات بین ریسه ها کاهش خواهد یافت. تعداد گروه ها در غشا به گونه ای انتخاب می گردد تا قابلیت حفظ قابلیت های سکنا پذیری بالای چند پردازنده وجود داشته باشد. این مطالعه همچنین دو الگوریتم جدید برای اجرای سیستم های غشایی بر روی یک GPU را پیشنهاد می نماید. این الگوریتم ها از دسته بندی پیشنهادی در مرحله اولیه خود استفاده نموده و دارای عملکرد بهتری در مقایسه با رویکرد قبلی می باشند [27].
سیستم های بافت P با تقسیم سلولی جهت حل مسئله صدق پذیری (SAT) بر روی GPU به کار گرفته می شود [35]، اما همانگونه که در [35] نشان داده شده است، سیستم P با غشاهای فعال [28] دارای عملکرد بهتری در مقایسه با سیستم های بافت P با توجه به تقسیم سلولی بر روی GPU جهت حل مسایل SAT می باشند. توجه داشته باشید که وابستگی های بین آبجکت ها و غشاها در مرجع [28] مورد بررسی قرار نگرفته اند (این مرجع ارائه دهنده یک الکوریتم خاص جهت حل یک مسئله مشخص، یعنی مسئله SAT از طریق سیستم های P با غشاهای فعال می باشد، در حالی که الگوریتم سیستم های P با غشاهای فعال در [27] به صورت کلی مطرح گردیده اند)، و هیچگونه الگوریتم خاصی جهت دسته بندی آبجکت ها و غشاها به صورت مناسب در یک سیستم وابسته وجود ندارد. بنابراین، الگوریتم رده بندی پیشنهادی را همچنین می توان جهت ارتقای الگوریتم موجود در مرجع [28] برای مسئله SAT به کار گرفت. با این حال، این مقاله الگوریتم کلی برای سیستم های P با غشاهای فعال در یک GPU را مورد بررسی قرار می دهد [27]. بعلاوه، ویژگی نهفته یا پنهان حافظه به اشتراک گذاشته شده کمتر از ویژگی حافظه کلی در یک GPU می باشد. جهت ارتقای متعاقب شبیه سازی، این تحقیق از حافظه به اشتراک گذاشته شده جهت ذخیره سازی داده ها برای پردازش در GPU استفاده نموده و تاثیرات تعداد آبجکت ها و تعداد غشاها در سیستم غشایی بر روی عملکرد GPU نیز مورد شبیه سازی قرار گرفته است.
این مقاله به شرح ذیل سازماندهی شده است. بخش 2 تشریح کننده مفهوم یک سیستم غشایی فعال و ساختار یک GPU می باشد. الگوریتم های پیشنهادی با جزئیات مربوطه در بخش 3 ذکر می شوند. شبیه سازی ها بر روی GPU و CPU در بخش 4 گزارش شده و در نهایت بخش 5 اقدام به خلاصه سازی و نتیجه گیری مولفه های مرتبط با این تحقیق می نماید.
مدلهای رایانشی موازی و توزیعی واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستمهای غشایی
2- زمینه
در این بخش، برخی از زمینه های مرتبط با سیستم های P با غشای فعال و GPU ارائه می شوند.
2ـ1. سیستم های P با غشاهای فعال
سیستم های غشایی فعال غالباً دارای اجزای مختلفی می باشند، همانند مورد نشان داده شده در شکل 1، که شامل غشای پوستی و نواحی تعیین حدود شده که در آنها مجموعه های متعددی از آبجکت ها و قواعد تکاملی قرار می گیرند.
یک غشای فعال به طور رسمی به وسیله یک چندتایی تعریف می شود، که در آن:
2ـ2. واحد پردازشگر گرافیکی
معماری های یک دستور چند داده (SIMD) سبب می شود تا GPU ها قابلیت پردازش و اجرای چندین ریسه به صورت همزمان را داشته باشند [34]. کوچکترین بخش یک GPU هسته ها به شمار می آیند. یک گروه متشکل از هسته ها تحت عنوان یک چند پردازنده جریانی (SM) خوانده می شود. هسته های داخل هر SM به گونه ای همزمان می گردند تا قابلیت اجرای دستورالعمل های یکسان را داشته باشند. هر هسته قابلیت دسترسی به مقدار بسیار کوچکی از حافظه، تحت عنوان حافظه محلی، را خواهد داشت. هر هسته همچنین دارای دسترسی به تعدادی از رجیسترهای 32 بیتی می باشد. مقدار بسیار اندکی از حافظه به اشتراک گذاشته شده مختص هر SM می باشد، و کلیه SM ها قابلیت دسترسی به مقادیر بزرگی از حافظه تحت عنوان حافظه کلی را خواهند داشت (شکل 2). دسترسی به حافظه رجیستر سریعتر از حافظه به اشتراک گذاشته شده می باشد و دسترسی به حافظه به اشتراک گذاشته سریعتر از دسترسی به حافظه کلی است [34، 37].
مدلهای رایانشی موازی و توزیعی واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستمهای غشایی
3- رویکردهای پیشنهادی برای رده بندی و شبیه سازی سیستم های غشایی در یک GPU
الگوریتم مرتبط با رویکرد قبلی [27] جهت شبیه سازی سیستم های غشایی فعال در یک GPU در الگوریتم 1 ارائه شده است.
3ـ1. الگوریتم های دسته بندی
الگوریتم های دسته بندی پیشنهادی سبب کاهش ارتباطات بین آبجکت ها (ریسه ها) و غشاها (بلوک های ریسه ای) شده است و در عین حال قابلیت حفظ ویژگی سکنی پذیری چند پردازنده ای (Mul_Occup) را نیز حاصل آورده اند. این ویژگی در حقیقت به عنوان نسبت تارهای مقیم در چند پردازنده جریانی (SM) به حداکثر تعداد محتمل تارهای مقیم در چند پردازنده (SM) تلقی گردیده و یکی از معیارها برای عملکرد GPU به شمار می آید. در ابتدا، این مطالعه مشخص کننده این موضوع می باشد که تا چه میزان گروه می بایست قابلیت ایجاد رده بندی آبجکت در هر غشا را داشته باشند تا قابلیت حاصل آوردن سکونت یا اشغال کامل به وجود آید. متعاقباً دو الگوریتم رده بندی بر مبنای توپولوژی شبکه وزن دار جهت دسته بندی آبجکت ها به گروه ها و غشاها در داخل خوشه های غشاها ارائه می شوند.
3ـ1ـ1. تعداد گروه ها و تعداد آبجکت ها در گروه در هر غشا برای اشغال بالا
تعداد ریسه ها در هر تار (MaxThrwarp) به میزان 32 مورد می باشد. عوامل محدود کننده برای هر SM در GPU شامل Warpsm، تعداد حداکثری بلوک ها در SM (MaxBlksm)، تعداد حداکثری ریسه ها در بلوک (MaxThrblk)، تعداد حداکثری حافظه به اشتراک گذاشته شده در SM (MaxShsm)، تعداد حداکثری رجیسترهای 32 بیتی در SM (MaxRegsm)، تعداد حداکثری ریسه ها در SM (MaxThrsm)، و تعداد حداکثری حافظه محلی در ریسه (MaxLocthr) می باشند. این عوامل منوط به ظرفیت محاسباتی GPU می باشند. مقادیر برای یک ظرفیت محاسباتی 3 در جدول 1 نشان داده شده است (ضمیمه F.1 در [34]).
3ـ1ـ2. راهکار دسته بندی برای آبجکت ها در داخل هر غشا
به هنگامی که آبجکت b وابسته به آبجکت a می باشد، این بدان معنا خواهد بود که آبجکت a (که به وسیله یک قاعده یا مجموعه ای از قوانین اجرا می گردد) دارای واکنش و تأثیرگذاری بر روی مقداری از آبجکت های b می باشد. به طور مثال، برای یک قاعده ارزیابی [a ® bc]، می توان بیان داشت که b و c منوط به a می باشند. برای قواعد مشارکتی (یک غشای فعال استاندارد دارای هیچگونه قاعده مشارکتی یا همکاری نمی باشد) که در آن بیش از یک آبجکت می تواند در طرف چپ وجود داشته باشد، به طور مثال [ad ® bc]، b و c منوط به هر دو مورد a و d بوده و بنابراین در شبکه وزن دار، کلیه چهار آبجکت a، b، c و d به یک گروه واحد گروه بندی می شوند. برای قوانین ارتباطاتی و تجزیه ، آبجکت b منوط به آبجکت a می باشد. برای قواعد تقسیم ، آبجکت های b و c منوط به a خواهند بود. برای این قواعد، آبجکت های b و c ممکن است دارای غشاهای متفاوتی در مقایسه با a باشند. با این وجود، از آنجایی که این آبجکت ها در غشاهای مختلف وجود دارند، قواعد مربوطه با استفاده از غشاهای مختلف تغییر می یابند. بنابراین، وابستگی بین این آبجکت ها مساوی با وابستگی بین غشاها تلقی شده و نرخ وابستگی بین آبجکت مساوی با نرخ وابستگی بین غشاها می باشد.
الگوریتم دسته بندی آبجکت:
مرحله صفر: ایجاد یک شبکه با لینک های وزن دار بین آبجکت های وابسته (به شکل های 3 و 4 رجوع شود).
3ـ1ـ3. راهکار دسته بندی برای غشاها در یک مدل سیستم غشایی
همانگونه که در زیر بخش قبلی تشریح شد، آبجکت ها در یک غشا به گونه ای دسته بندی می شوند تا قابلیت کاهش ارتباطات بین ریسه ها در داخل یک بلوک ریسه ای وجود داشته باشد و در عین حال قابلیت حفظ اشغال چند پردازنده ای بالا نیز میسر باشد. در این زیر بخش، یک الگوریتم برای رده بندی غشاها در یک مدل سیستم غشایی جهت کاهش ارتباطات بین بلوک های ریسه ای ارائه می شود. توجه داشته باشید که در رویکردهای قبلی، همانند [26 ـ 28]، هیچگونه الگوریتمی جهت مدیریت اعضای وابسته به صورت مناسب وجود نداشته است. در نتیجه، ارتباطات بین غشاها سبب ارائه ارتباطات بین بلوک های ریسه ای می شود. برای هر رویه ارتباطاتی بین بلوک های ریسه ای، یک فراخوانی کرنل زمانبر مجزا ضروری خواهد بود.
الگوریتم دسته بندی غشا
مرحله 0: ایجاد شبکه با لینک های وزن دار بین غشاهای وابسته (به شکل های 3 و 4 رجوع شود). ایجاد یک شبکه غشایی با یک مثال در مرحله 0 الگوریتم دسته بندی آبجکت تشریح شده است.
3ـ2. اولین الگوریتم پیشنهادی برای سیستم های غشایی در یک GPU
الگوریتم پیشنهادی برای شبیه سازی سیستم های P با غشاهای فعال بر روی یک GPU به صورت الگوریتم 2 ارائه شده است. این الگوریتم از الگوریتم دسته بندی آبجکت جهت کاهش ارتباطات بین ریسه ها در بلوک ریسه ای و ارتقای عملکرد استفاده می نماید.
3ـ3. الگوریتم پیشنهادی دوم برای سیستم های غشایی در یک GPU
همزمان سازی یا همگام سازی بین ریسه ها در داخل یک بلوک ریسه ای بدون فراخوانی کرنل در داخل کرنل مشابه امکان پذیر می باشد. با این وجود، برای همگام سازی بین ریسه ها در بلوک های مختلف ریسه ای، این کرنل می بایست مجدداً فراخوانی و اجرا شود، یا برای ارتباطات بین بلوک های ریسه ای، یک فراخوانی مجزای کرنل مورد نیاز خواهد بود. فراخوانی کرنل به عنوان یک فرآیند بسیار زمانبر به شمار آمده و سبب کاهش عملکرد شبیه سازی بر روی GPU می گردد چرا که فرآیند پردازش می بایست در انتظار کلیه بلوک های ریسه ای جهت تکمیل شدن باشد و همچنین می بایست اقدام به نوشتن نتایج موقتی از رجیسترهای محلی، حافظه به اشتراک گذاشته شده و دیگر منابع در داخل حافظه کلی نماید. چنین موردی سبب کاهش عملکرد حافظه به اشتراک گذاشته شده و رجیسترها خواهد شد.
مدلهای رایانشی موازی و توزیعی واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستمهای غشایی
4- شبیه سازی ها و نتایج
4ـ1. شبیه سازی تأثیرات تعداد آبجکت ها و تعداد غشاها در یک سیستم غشایی بر روی عملکرد آن در یک GPU
در این بخش، اثرات تعداد آبجکت ها در هر غشا و تعداد غشاها در سیستم بر روی عملکرد GPU با رویکردهای مختلف (الگوریتم 1) مورد بحث قرار می گیرد. این موضوع نیز نشان داده می شود که به هنگامی که تعداد آبجکت ها در غشا و تعداد غشاها در یک سیستم غشایی فعال بزرگ باشند، سرعت حاصله به وسیله GPU با توجه به یک CPU زیاد است. این مورد بدین علت رخ می دهد که به هنگامی که تعداد آبجکت ها و غشاها افزایش یابند، مصرف منابع محاسباتی GPU نیز افزایش می یابند. به علاوه، از طریق استفاده از حافظه به اشتراک گذاشته شده، سرعت شبیه سازی افزایش می یابد و علت آن را می توان این مسئله ذکر نمود که دسترسی به حافظه به اشتراک گذاشته شده بسیار سریعتر از دسترسی به حافظه کلی می باشد.
4ـ2. شبیه سازی رویکردهای پیشنهادی
همگام سازی بین ریسه ها به عنوان یک فرآیند زمانبر تلقی شده و سبب کاهش عملکرد GPU می گردد. یک شبیه سازی رویکرد پیشنهادی جهت کاهش ارتباطات بین ریسه ها و مقایسه با رویکردهای قبلی در این بخش ارائه می شود.
مدلهای رایانشی موازی و توزیعی واحد پردازشگر گرافیکی جهت شتاب دهی شبیه سازی سیستمهای غشایی