دانلود مقاله ترجمه شده بررسی مکانیزم ISEE بر اساس خط تولید – academy publisher

 

دانلود مقاله ترجمه شده بررسی مکانیزم ISEE بر اساس خط تولید – academy publisher

default8 - دانلود مقاله ترجمه شده بررسی مکانیزم ISEE بر اساس خط تولید – academy publisher

دسته بندیکامپیوتر و IT
فرمت فایلpdf
حجم فایل۱۰٫۱۶ مگا بایت
تعداد صفحات۲۵
برای دانلود فایل بر روی دکمه زیر کلیک کنید

دریافت فایل

بخشی از ترجمه فارسی:

با بکار بردن فرآیند تولید اتوماتیک خط تولید و سیستم مدیریت صنعت به ساخت مدرن برای مرجع، یک مدل جدید از محیط مهندسی نرم‌افزار مجتمع براساس خط تولید پیش برده شده است و چارچوب و تحقق مکانیزم مدل جدید در این مقاله کاملاً تحلیل شده است. مدل جدید دارایی (منابع) هسته خط تولید را به عنوان عامل عمومی قرار می‌دهد. بخش بالای آن محیط توسعه خط تولید را با تحقق تولید انبوه محصولات نرم‌افزاری، حمایت می‌کند، در حالی که بخش پایینی محیط توسعه نرم‌افزار رایج سنتی است که توسعه کدهای منبع و اسناد اجزای منبع هسته خط تولید را انجام می‌دهد. در مقایسه با مدل‌های محیط توسعه خط تولید موجود، قابلیت توسعه و تحقق یک مدل جدید کاملاً مشابه با مد تولید خط تولید اتوماتیک و سیستم مدیریت صنعت تولید فعفی بوده و احتمالاً محیط تولید نرم‌افزار دلخواهی که صنعت مهندسی نرم‌افزار در آینده توسعه خواهد داد می‌باشد.

۱ـ مقدمه
در سال‌های اخیر، با رشد تدریجی و به کار بردن تکنیک‌های جدید از جمله معماری نرم‌افزار، اجزای نرم‌افزار، استفاده مجدد وسیع نرم‌افزار، و غیبره متد مهندسی نرم‌افزار براساس خط تولید توجه وسیع مهندسی نرم‌افزار را به خود برانگیخته است و هم‌اکنون مرکز داغ و اولویت مطالعات فعلی در زمینه مهندسی نرم‌افزار شده است. تولید انبوه محصولات نرم‌افزاری سفارشی در یک زمینه خاص، که مشابه با مدهای تولید اتوماتیک خط تولید محصولات صنعتی کارخانه‌ای مدرن می‌باشد (مثل ماشین، تلویزیون و غیره) این در تولید نرم‌افزار دلخواه که ۴۰ سال در تولید مهندسی نرم‌افزار دنبال شده است و تأثیر زیادی در قالب‌بندی و توسعه املاک نرم‌افزای مدرن دارد و جامعه عظیم و تأثیر اقتصادی زیادی ایجاد می‌کند. [۳-۱]

۲ـ موقعیت فعلی بررسی‌های خط تولید نرم‌افزار
ما مرهون بودن به روش مهندسی نرم‌افزار مبتنی بر خط تولید، تغییراتی اساسی در توسعه نرم‌افزار از روش سنتی یک‌باره روش برنامه‌نویسی دستی، «الگوریتم + منابع داده + کد نیروی انسانی «به تولید صنعتی شده» معماری نرم‌افزار + اجزای نرم‌افزار + خط مونتاژ (استفاده مجدد سیستمی)» وجود داشته است که با سیستم تولید صنعت کارخانه داری مدرن شناخته شده است (از جمله ماشین‌ها و دستگاه‌های تلویزیون و غیره).
روش خط تولید نرم‌افزار باید به موفقیت محیط توسعه مجتمع براساس خط تولید با ویژگی‌های مهندسی خط تولید و ظرفیت تولید اعتماد کند. چنین محیطی محیط مهندسی نرم‌افزار مجتمع مبتنی بر خط تولید نامیده می‌شود. بنابراین، تحقیقات، مفاهیم و کاربردهای محیط مهندسی نرم‌افزار مجتمع مبتنی بر خط تولید، نقش بسیار مهمی در تولدی نرم‌افزار اتوماتیک و صنعتی‌سازی صنعت نرم‌افزار داشته و ابتکارات استراتژیکی برای جهان شده است تا زمینه صنعت اطلاعات را مشغول کرده و اقتصاد پایدار و سریع و توسعه اجتماع را ارتقاء بخشد.
اما، می‌توانیم به طور واضح ببینیم که قالب‌بندی و توسعه روش مهندسی خط تولید نرم‌افزار ار مد تولید اتوماتیک خط تولید صنعت کارخانه‌داری مدرن برای منابع مبتنی بر دامنه مهندسی، معماری نرم‌افزار، اجزای نرم‌افزار و فناوری استفاده مجدد از نرم‌افزار استفاده می‌کند. هدف آن بنا نهادن خط تولید نرم‌افزار و تحقق تولید صنعتی شده محصولات نرم‌افزاری با استفاده از فناوری‌های معماری نرم‌افزار در زمینه خاص استفاده مجدد سطح سیستم می‌باشد.
به طور واضح، محیط مهندسی نرم‌افزار مجتمع مبتنی بر خط تولید ضرورتاً با محیط توسعه نرم‌افزار رایج کنونی که مبتنی بر ساختار و یا شیء‌گرایی است (منحصراً محیط توسعه سنتی نامیده می‌شود) تفاوت زیادی دارد.
روش قبلی به منظور تحقق صنعتی‌سازی و تولید اتوماتیک محصولات نرم‌افزاری سفارش انبوه در زمینه خاص مطابق با «معماری نرم‌افزار + اجزا + مونتاژ» در یک زمینه خاص بود در حالی که روش اخیر مطابق با «ساختار داده + فرآیندها + کدگذاری دستی» می‌باشد که به معنای توسعه یک باره از برنامه‌های نرم‌افزاری رسمی، و محیط‌های عمومی حد مناسب محیط را نیز معین کرده و مدهای تولیدی، حاصل‌خیزی و انتقال بروزرسانی موضوع بسیاری از محدودیت‌ها خواهد بود. علاوه بر این، کاملاً با مد تولید و جهت توسعه صنایع کارخانه‌داری مدرن متفاوت است زیرا به عنوان یک خط تولید رایج در کارخانجات ماشین، هواپیما، تلویزیون و دیگر محصولات در زمینه‌های دیگر قابل استفاده نمی‌باشد.
این تأسف‌بار است که در فرآیند فعلی تحقیق و توسعه محیط توسعه نرم‌افزار مجتمع مبتنی بر خط تولید مردم تفاوت اساسی بین محیط توسعه نرم‌افزار سنتی و روش مجتمع مدرن را نفهمیده‌اند. بررسی‌ها و توسعه روش‌های مهندسی نرم‌افزار خط تولید و محیط‌های توسعه مجتمع هنوز بر مبنای روش‌ها و ایده‌های مهندسی نرم‌افزار سنتی انجام می‌شود، که درست نیست.
همانطور که CMU/SEI و تعدادی از نوشته‌ها [۵-۴] نشان دادند. تاکنون، هیچ محیط مهندسی نرم‌افزاذر مجتمعی براساس خط تولید با منطق درست وجود نداشته است. به عبارت دیگر، وضعیت واقعی تحقیق و توسعه این است که تعدادی از شرکت‌های نرم‌افزار برخی از مفاهیم اجزا را بر پایه محیط توسعه نرم‌افزار موجودشان معرفی می‌کنند و تعداد مناسبی از کنترل‌ها را اضافه می‌کنند، سپس فکر می‌کنند که به سمت به اصطلاح محیط مهندسی نرم‌افزار مجتمع مبتنی بر خط تولید تغییر شکل داده‌اند.
برای مثال IBM، محیط توسعه SUN’S JZEE و غره از این نوع هستند، اینها بسیار پایین‌تر از منطق صحیح خط مونتاژ اتوماتیک با ظرفیت تولید و ویژگی‌های خط تولید نرم‌افزار محیط توسعه مجتمع در صنعت کارخانه‌داری مدرن هستند. البته برای علایق متخصصان و چندین قرن مدل‌های توسعه مهندسی نرم‌افزار، خصوصاً نرم‌افزار سیستم و ابزارهای فرایند توسعه نرم‌افزار، این طبیعی و قابل درک است، زیرا متخصصان باید محصولات و علایق فعلی‌شان را نیز حساب کنند. این امکان‌پذیر است که کاملاً محصولات نرم‌افزاری محبوب و وسیع را بدون توجه به ریسک دنبال کردن یک محصول جدید علی‌رغم سود اقتصادی و وجهه خوبشان دور بیندازیم.
این مقاله روی منطق واقعی مدل محیط توسعه خط تولید نرم‌افزار با مد تولید خط تولید و ظرفیت صنعت کارخانه‌داری مدرن تمرکز دارد و بیشتر ساختار و تحقق مکانیزم را بررسی می‌کند.
۳ـ فرآیند مهندسی نرم‌افزار و مدل چرخه حیات براساس خط تولید
الزاماً، محیط مهندسی نرم‌افزار مبتنی بر خط تولید نوعی از خط تولید است که شبیه به خط تولید اتوماتیک در صنعت کارخانه‌داری مدرن است. این همچنین یک روش مهندسی نرم‌افزار جدید و فرآیندی برای اجرای تولید سفارشی انبوه محصولات نرم‌افزاری در یک دامنه خاص براساس اجزای استاندارد منابع هسته از جمله معماری نرم‌افزار، اجرا، تکه‌های متصل، نقشه تولید، سفارشی‌سازی، اسناد و غیره می‌باشد.
بنابراین، چیزی که در تحقیق راجع به محیط توسعه نرم‌افزاری خط تولید بیشترین اهمیت را دارد ایجاد مدل پردازش توسعه نرم‌افزار و مدل چرخه حیات است که برای شناسایی و روش‌های تولیدی خط تولید مناسب است. این برای توصیف کل فرآیند توسعه تولیدات براساس خط تولید به صورت سیستمی استفاده می‌شود و سپس به عنوان راهنمایی برای تعیین کاربردهای مبتنی بر پیام، پیکره‌بندی ابزارها و فرایند تولید در نظر گرفته می‌شود.
هدف آن توصیف ترتیب فعالیت‌ها و جریان‌کاری و چارچوب وظایف، ارسال محصولات و استانداردهای فرایند مهندسی نرم‌افزار براساس خط تولید، به طور کامل واضح و مشخص می‌باشد و خط راهنما به نرمال‌های عملی و رفتاری برای اجرای مهندسی خط محصولات نرم‌افزاری و محصولات نرم‌افزاری پیش‌نیاز خواهد بود و زیرساخت مهمی برای تحقیق روی محیط توسعه نرم‌افزار مجتمع خواهد بود.
در سال‌های اخیر نتایج تحقیقات مقدماتی روی تحقیق مدل پردازش مهندسی خط تولید انجام شده است. برای مثال: مدل خط تولید نرم‌افزار بل طول عمر دو برابر و مدل SEI. [8-7] اما مدل‌های ساده به سختی می‌توانند نیازهای کل فرآیند را با وصف توانمندی‌های سیستم مدیریت نرم‌افزار مدرن، مد تولید، انقلاب آموزش الکترونیکی، کنترل کیفیت و غیره، از جمله سازمان‌دهی چند لایه‌ای در لایه‌های بالایی و پایینی و سیستم مدیریت بین‌المللی، ملیت‌ها، صنعت، دامنه‌ها و کاربردها و غیره که ملاکشان پروژه خط تولید است، ویژگی‌های فرایند مهندسی و مد، متدهای تولید تکراری چند سطحی و انقلاب محصولات چندبعدی می‌باشد. [۱۳]

بخشی از مقاله انگلیسی:

Using product line automatic production procedure and the management system of modern manufacturing industry for reference a new model of integrated software engineering environment based on product line is put forward and framework and realizing mechanism of the new model is mainly analyzed in this paper. The new model takes product line core asset (resource) components as the agent bus. The upper of it supports the product line development environment realizing the assembling production of software products while the lower is traditional common software development environment implementing the development of source codes and documents of product line core resource components. Compared with the present available product line development environment models the developing and realizing ability of the new one is completely similar to production mode of automatic product line and management system of current manufacturing industry will be likely to become an ideal software production environment that the future software engineering industry develops.

Keywords

software product line; core assets; ISEE-integrated software engineering environment; software architecture; software component

برای دانلود فایل بر روی دکمه زیر کلیک کنید

دریافت فایل

دانلود مقاله ترجمه شده میان افزار جاوا سمفونی

 

دانلود مقاله ترجمه شده میان افزار جاوا سمفونی

default8 - دانلود مقاله ترجمه شده میان افزار جاوا سمفونی

دسته بندیکامپیوتر و IT
فرمت فایلpdf
حجم فایل۵۴۱ کیلو بایت
تعداد صفحات۳۲
برای دانلود فایل بر روی دکمه زیر کلیک کنید

دریافت فایل

بخشی از ترجمه فارسی:

مقدمه
ازمیان افزار JavaSymphony جهت ایجاد سیستم توزیع شده استفاده میشود . این ابزار یکی از کاراترین میان افزار های طراحی شده جهت ساخت سیستم های توزیع شده است که برنامه نویس را از پرداختن به بسیاری از جزئیات برنامه نویسی بی نیاز می کند.
در بخش۲ به معرفی JavaSymphony پرداخته امکانات و توانایی هایی که این ابزار جهت ساخت سیستم های توزیع شده و موازی در اختیار برنامه نویس قرار می دهد را معرفی کرده نحوه استفاده از JavaSymphony برای برنامه نویسی و ساخت سیستم های توزیع شده به زبان جاوا خصوصیات کلاس ها و توابع مختلف این ابزار و ویژگی های آنها بیان می شود. در بخش۳ امکانات پیشرفته تر JavaSymphony که در نسخه های بعدی آن به منظور افزایش کارایی برنامه های ساخته شده توسط این ابزار به آن اضافه شده (مانند تکنیک های همگام سازی پروسه ها ایجاد اشیا چند نخی بسط معماری مجازی تبدیل پویا اشیا و… ) را بررسی خواهیم کرد. در بخش ۴ نحوه نصب راه اندازی و استفاده از JavaSymphony درکامپیوتر های مختلف شبکه برای ایجاد یک زیر ساخت ارتباطی و تعریف معماری فیزیکی سیستم توزیع شده را بررسی خواهیم کرد.۲٫ مفاهیم اصلی JavaSymphony
اغلب سیستمهای توزیع شده یا موازی که به وسیله جاوا پیاده سازی می شوند نیازمند پرداختن برنامه نویس به کارهای جزئی بسیار و خسته کننده هستندکه احتمالا منجر به اشتباه برنامه نویس نیز می شوند. JavaSymphony یک ابزار برنامه نویسی جهت پیاده سازی سیستم های توزیع شده و موازی است که دامنه وسیعی از سیستم های همگن از سیستم هایی با خوشه های کوچک تا سیستم های محاسباتی وسیع را پشتیبانی می کند. این ابزار تماما به زبان جاوا نوشته شده وبا تمام ماشینهای مجازی جاوا (JVM) سازگاری دارد. می توان گفت در مقایسه با دیگر ابزارهای موجود، JavaSymphony امکانات بهتر و قابل انعطاف تری را برای مکان یابی اشیاء و بارگذاری متعادل در اختیار برنامه نویس قرار می دهد.
JavaSymphony در واقع یک کتابخانه از کلاس های جاوا است که به برنامه نویس امکان کنترل Locality موازی سازی و بارگذاری متعادل را در سطح بالایی می دهد و برنامه نویس را از پرداختن به مسائل جزئی مانند ایجاد و استفاده از Remot-Proxy ها برنامه نویسی نخ ها برنامه نویسی سوکت ها و پردازش خطا ها بی نیاز می کند. به کمک این ابزار یک معماری مجازی، ازگره های محاسباتی (کامپیوتر های شبکه ) تعریف می شود. برنامه نویس می تواند با تعریف معماری مجازی دلخواه خود، سلسله مراتبی ازگره های محاسباتی فیزیکی برای سیستم توزیع شده خود بسازد. اشیاء برنامه می توانند به صورت پویا در هر کدام از مؤلفه های این معماری مجازی مستقرشده یا بین آنها حرکت کنند. مجمو عه ای ازگره های سطح بالا جهت کنترل پارامترهای مختلف نرم افزاری و سخت افزاری سیستم در دسترس است . اشیاء می توانند توسط فراخوانی متدهای یکدیگر به سه روش سنکرون، آسنکرون و یک طرفه با یکدیگر ارتباط برقرار کنند. بارگذاری کلاسهای برنامه به صورت دلخواه در گره های مختلف محاسباتی نیز می تواند موجب کاهش حافظه مورد نیاز در کل سیستم توزیع شده شود. بعلاوه می توان اشیاء را به طور دائم در حافظه های جانبی ذخیره نگهداری و بازیابی کرد.
اغلب پروژهای تحقیقاتی که یک زیر ساخت نرم افزاری برای برنامه های توزیع شده وموازی ارائه می کنند معمولا مانع از کنترل مکان استقرار اشیاء توسط برنامه نویس می شوند. با توجه به اینکه معمولا برنامه نویس اطلاعات بیشتروکامل تری در مورد ساختار سیستم توزیع شده و نحوه توزیع شده گی مطلوب اشیاء بر روی شبکه را دارد از این رو اکثر سیستم های توزیع شده که توزیع اشیاء درگره های محاسباتی و حرکت بین آنها را به صورت اتوماتیک انجام می دهند موجب کاهش کارایی سیستم توزیع شده خواهند شد. زیرا که از اطلاعات مهمی که برنامه نویس در مورد سیستم توزیع شده دارد استفاده نمی کنند و در نتیجه ممکن است ارتباط بین اشیاء توزیع شده در شبکه با یکدیگر زیاد شده و کارایی کل سیستم بسیار پایین بیاید.

۲٫ ۱٫ ویژگی های Java Symphony
JavaSymphony یکی از ابزارهای ساخت سیستمهای توزیع شده و موازی است که یک زیر ساخت مناسب جهت ساخت برنامه های توزیع شده و موازی ارائه می کند. همانطورکه گفته شد این ابزار توسط زبان جاوا پیاده سازی شده وبه صورت کتابخانه ای از کلاسهای جاوا (.class) موجوداست که می توان از این کلاس ها در هر برنامه نوشته شده به زبان جاوا استفاده کرد. برخی از خصوصیات مهم این ابزار عبارتند از:
• امکان تعریف یک معماری مجازی توزیع شده: برنامه نویس می تواند یک معماری مجازی برای سیستم توزیع شده خود تعریف کرده و به این ترتیب سلسله مراتبی از گره های محاسباتی فیزیکی را برای برنامه خود تشکیل دهد. معماری مجازی از مولفه های زیر تشکیل می شود: گره های محاسباتی، خوشه ها که مجموعه ای ازگره های محاسباتی هستند، سایت هاکه مجموعه ای از خوشه ها هستند و دامنه ها که مجموعه ای از سایتها هستند. در هنگام تعریف یک معماری مجازی می توان با استفاده از امکانات تعریف شرایط برای گره های محاسباتی، فقط از منابع محاسباتی مناسب یا دلخواه در شبکه، جهت ساخت سیستم توزیع شده استفاده کرد. (بعنوان مثال استفاده از کامپیوترهای بیکار در شبکه) معماری های مجازی چندگانه نیز قابل تعریف هستند که می توانند مولفه های خود را به اشتراک بگذارند.
• دسترسی به پارامترهای سیستم : JavaSymphony مجموعه ای از API های سطح بالا برای کنترل بسیاری از پارامترهای سیستم ارائه می کند از جمله می توان به پارامترهای CPU Load (میزان کار بارگزاری شده به CPU )، idle Times (درصد بیکاری)، میزان حافظه در دسترس، تعداد پروسه ها و نخهای موجود در سیستم تاخیر شبکه و پهنای شبکه اشاره کرد. این پارامترها می توانند از سیستم زمان اجرای JavaSymphony یا JRS درخواست شده و برای کنترل استقرار اشیاء در مولفه های مختلف معماری توزیع شده حرکت اشیاء بین مولفه ها و بارگذاری متعادل استفاده شوند.
• استقرار اشیاء در مولفه های محاسباتی بصورت اتوماتیک وکنترل شونده از طرف کاربر: برنامه نویس می تواند ایجاد و استقرار یک شی در یکی از مولفه های معماری مجازی را کنترل کند. استقرار یک شی در یک مولفه می تواند با توجه به مکان اشیا دیگر که با این شی در ارتباط خواهندبود صورت گیرد. بعنوان مثال ممکن است مجموعه ای از اشیاء که با یکدیگر ارتباط زیادی دارند برروی مولفه هایی از معماری مجازی که نزدیک یکدیگر هستند مستقر شوند. اگر برنامه نویس دقیقا” محل یک شی را جهت اجراء در آن مکان مشخص نکند JRS بصورت اتوماتیک در مورد محل قرارگیری شی در بین گره های محاسباتی فیزیکی تصمیم گیری خواهد کرد.
• حرکت اشیاء بین مولفه های محاسباتی بصورت اتوماتیک و قابل کنترل از طرف کاربر:JavaSymphony از حرکت اشیاء بین گره های محاسباتی بصورت اتوماتیک و یا تحت کنترل کاربر پشتیبانی می کند.
• فراخوانی سنکرون آسنکرون و یک طرفه متدها: همانطورکه می دانیم تمامی فراخوانی روالهای دور در جاوا بصورت سنکرون انجام می گیرد. علاوه بر این مکانیزم، JavaSymphony دو روش دیگر برای فراخوانی متدهای دور را در اختیار برنامه نویس قرار می دهد: ۱- فراخوانی آسنکرون که در این روش یک Handle که برای بررسی آماده بودن نتیجه در آینده استفاده خواهد شد بعنوان نتیجه فراخوانی روال برگشت داده می شود. ۲- فراخوانی یک طرفه : که دراین روش طرف فراخوانی کننده متد، منتظر دریافت هیچ نتیجه ای از فراخوانی متد نمانده، بلکه متد دو را فراخوانی کرده و بدون اینکه بداند اجرای آن کی به اتمام خواهد رسید کارهای خود را دنبال می کند.
• بارگذاری کلاسهای دور بصورت دلخواه : به کمکJavaSymphony بجای آنکه لازم باشد تمام فایلهای حاوی کلاس های برنامه توزیع شده در تمامی گره های محاسباتی ذخیره شوند، این فایل ها می توانند در زمان نیاز در یک گره به آن گره بارگزاری شده و استفاده شوند. این خصوصیت می تواند باعث کاهش کل حافظه مورد نیاز برنامه توزیع شده شود.
بعلاوه JavaSymphony از اشیاء مانا نیز پشتیبانی می کند. یعنی به برنامه نویس اجازه میدهد اشیاء برنامه را در حافظه های جانبی ذخیره کرده و بازیابی کند. این ابزار نیازی به هیچ گونه تغییردر زبان جاوا یا JVM یا کامپایلر جاوا نداشته و بصورت کتابخانه ای از Class ها پیاده سازی شده و قابل استفاده است. JavaSymphony براساس سیستم های مبتنی برAgent ساخته شده و فعلا در حال ارزیابی است.

۲٫ ۲٫ معماری مجازی توزیع شده گی پویا (Dynamic Virtual Distributed Architectures)
JavaSymphony از مکان یابی بارگذاری متعادل و حرکت اشیاء بین گره های محاسباتی به صورت اتوماتیک پشتیبانی می کند (بدون اینکه برنامه نویس دخالتی داشته باشد) اما تجربه نشان داده که سیستمهای تمام اتوماتیک فعلی معمولا نمی توانند اطلاعات کافی (به اندازه برنامه نویس) در مورد ساختار سیستم توزیع شده بدست آورندو در نتیجه کارایی ضعیفی را به دنبال دارند.
از این رو درJavaSymphony یک حالت نیمه اتوماتیک برای پیاده سازی و پیکربندی سیستم توزیع شده ارائه شده است. به این صورت که بسیاری از کارهای جزیی و خسته کننده و مسائل سطح پایین برای پیاده سازی سیستمهای توزیع شده (مانند ایجاد و استفاده از پروکسی ها ، برنامه نویسی سوکتها و…) توسط JavaSymphony انجام می شود اما تصمیم گیری های مهم و استراتژیک در مورد ساختار سیستم توزیع توسط برنامه نویس صورت می گیرد. برنامه نویس جهت تعریف ساختار سیستم توزیع شده کارهای زیر را انجام می دهد:
• تعریف یک معماری مجازی توزیع شده با مشخص کردن گره های محاسباتی، خوشه ها، سایتها ودامنه ها: این معماری برای اجرای برنامه کاربردی بصورت توزیع شده برروی شبکه استفاده خواهد شد. برنامه نویس میتواند برخی شرایط سیستمی برای گره های محاسباتی تعریف کند تا تنها کامپیوترهایی در شبکه که حائز آن شرایط هستند (چه نرم افزای و چه سخت افزاری) بعنوان منابع محاسباتی فیزیکی برای معماری تعریف شده استفاده شوند.
• استقرار داده ها و اشیاء با توجه به ارتباط آنها با داده های دیگربر روی گره ها : بعنوان مثال اشیایی که ارتباط زیادی با هم دارند ممکن است برروی گره های محاسباتی نزدیک به هم و یا حتی برروی یک گره بارگذاری شوند.
• استقرار اشیاء یا داده ها برروی گره های محاسباتی با توجه به شرایط سیستمی آنها : بعنوان مثال استقرار اشیا در گره هایی با کمترین میزان کاری یا بالاترین حافظه در دسترس.
• بارگذاری کدهای مورد نیاز (کد کلاسها) در گره های محاسباتی هنگام نیاز به آنها: با استفاده از این ویژگی نیازی به ذخیره سازی کد تمام کلاسهای برنامه توزیع شده در تمام گره های محاسباتی نبوده و میتوان کد هر کلاس را هنگام نیاز به آن در یک گره خاص به آن بارگذاری کرد.
JavaSymphony مفهومی بنام Dynamic Virtual distributed architectures (که از این به بعد معماری مجازی می نامیم) ارائه می کند که به برنامه نویس امکان تعریف ساختار شبکه ای از منابع محاسباتی را می دهد. پس از تعریف این ساختار می توان اشیاء مختلف موجود در برنامه را در مولفه های تشکیل دهنده این معماری مستقر کند یا اشیاء موجود درگره های محاسباتی را به گره های دیگر حرکت دهد. همچنین می تواند بین تعداد اشیاء بارگذاری شده در گره های مختلف موازنه ایجاد کند ونیز کدهای لازم را هنگام نیاز به آنها درهر یک ازگره ها بارگذاری کند. هر معماری مجازی در حقیقت دامنه ای است که به سایتها، خوشه ها وگره هایی تقسیم شده است. (شکل ۱) در پایین ترین سطح گره هایا گره های محاسباتی قرار دارند که در حقیقت معادل یک منبع محاسباتی فیزیکی مانند PC یا WorkStation میباشند. گره های مختلف می توانند با یکدیگر ترکیب شده و تشکیل یک خوشه را دهند که در حقیقت معادل یک شبکه محلی از چند PC یا WorkStation است سطح بعدی را سایت ها تشکیل می دهند که مجموعه ای از خوشه های متصل به هم مثلا به وسیله یک WAN یا LAN میباشند. در بالاترین سطح سایتها می تواننند با یکدیگر ترکیب شده و تشکیل یک دامنه (domain) را دهند که در حقیقت یک شبکه محاسباتی بزرگ و توزیع شده است. توجه داشته با شید که هرگره متعلق به یک سه تایی یکتای (خوشه- سایت – دامنه) می باشد بطور مشابه هر خوشه یه یک دو تایی یکتای (سایت -دامنه) وهرسایت به یک دامنه خاص تعلق دارد.

شکل ۱ . معماری مجازی
معماری مجازی می تواند به صورت پویا ایجاد شده یا تغییر داده شود هرمؤلفه ازیک معماری مجازی( گره ، سایت ، خوشه ، دامنه) توسط مدیری که قابل رویت برای برنامه نویس نبوده و به عنوان بخشی ازJRS پیاده سازی شده، کنترل می شود.

۲٫ ۳٫ مدل برنامه نویسی Java Symphony
در حالت کلی هربرنامه کاربردی که از JavaSymphony استفاده می کند باید ابتدا خود رادر سیستم زمان اجرای JavaSymphony یا(JRS) ثبت یا Register کند. پس از آن می تواند معماری مجازی خود را تعریف کند. اشیاء می توانند هم در گره های محاسباتی محلی و هم درگره های دیگر به صورت دور ایجاد شده وبین گره های شبکه حرکت کنند. برای ارتباط بین اشیاء موجود در سیستم توزیع شده نیز JavaSymphony از سه مدل فراخوانی متدهای دورپشتیبانی می کند ( سنکرون، آسنکرون و یک طرفه). در نهایت برنامه کاربردی قبل از اتمام خود را از وضعیت ثبت شده در JRS خارج می کند((unregister این کار باعث آزاد شدن منابع JRS و حافظه تخصیص یافته به برنامه خواهد شد.

بخشی از مقاله انگلیسی:

I. Documentation for the API programmer 1.) The Network Agent How to find a virtual architecture in a physical architecture? Look at the following physical architecture like created in the Shell: To create an easier to understand tree you have to remember that a node with level 3 can have children with level 2 and with level 3. So a node with level 3 is also a node with level 2 and a node with level 1. The following picture will show the example above: This representation of the tree is better to understand which virtual architectures can be found in the physically. A virtual architecture is a tree structure with working nodes only at the leafs. Look at the following example of a virtual architecture: This virtual architecture can be found in the physical architecture above but there are more different solutions and without knowing the constraints of the nodes in the physical architecture the following solutions are possible:  V1 = N1; V2 = N2; V3 = N3  V1 = N4; V2 = N5; V3 = N2  V1 = N5; V2 = N1; V3 = N4  … there are many solutions but the following solutions are not possible:  V1 = N2; V2 = N3; V3 = N5  … The order of the nodes of the physical architecture is not important to find a virtual architecture. Only the structure to be found is important to exist in the physical architecture. The level of the root elements of the two architectures have not to be the same. The level of the physical architecture has to be higher or equal to the level of the virtual architecture. Remember the following virtual architecture can be found in the physical architecture above to: Solutions are:  V1 = N2; V2 = N3; V3 = N5  V1 = N3; V2 = N5; V3 = N2  … 2.) The JavaSymphony Shell JavaSymphony Shell is part of the JavaSymphony system. JS Shell is a graphical user interface designed to support the creation of a physical architecture consisting of connected JS Network Agents. This physical architecture is used by JS Applications to create virtual architectures and run distributed programs on them. If a JS application demands a virtual architecture it will be mapped to a physical architecture that fulfils the needs of the application (see documentation for network agents for information how this is done). A physical architecture consists of nodes (Network Agents NA’s). Nodes can be grouped under a cluster; clusters can be grouped under a site and so on (where clusters and sites are normal nodes that additionally have a cluster manager or a site manager. For being expansible we decided to use level numbers instead of names for the hierarchy so a node has level one a cluster level two a site level three and so on. The maximum level is nine. The following diagram shows a node of level three (a site) with three nodes of level two (clusters) that also have some nodes of level one under them. Remember that there are still eight network agents in this system (every higher level node has still the functionality of a normal node). Starting the JS Shell You can start the JS Shell by executing the batch file run_shell.bat in the programs main directory. This will start up the GUI and enable you to create a physical architecture. If you have already created a physical architecture and stored it in a file (see “Save Configuration”) you can use the JS Shell program to generate this stored architecture without starting the GUI by appending filename as a program argument: run_shell [filename] This will generate the architecture stored in the file showing all information and errors as console output. The program will stop after generation. The Main Window The main window is divided into two parts. On the right side there is a list of available NA’s that can be added to a physical architecture on the left side. A NA is defined by the computer name (or IP) on witch the NA is running and the port on which the NA is listening ([computer_name]:[port]). At start-up the default list stored in a file (serverlist.ini) will be loaded and displayed in the list window as well as the configuration stored in the file config.txt will be displayed as a tree in the left part. Of course you can load and store other lists and configuration files (see “Load Configuration” “Load NA-List”). The List The list displays all NA’s that are currently available (marked with a green tick) as well as some other computers where no NA is currently running on the specified port (marked with a red cross). NA’s that are not marked could not be reached yet they will be marked in a few seconds. You can add NA’s to the list remove NA’s from the list and load and store lists of NA’s (see “Load NA-List). You can add an NA to the physical architecture on the left side by dragging and dropping it on the desired position in the architecture tree. The Tree The Tree window allows you to design a physical architecture consisting of NA’s. You can drag and drop NA’s in the tree around as well as remove them from the tree by dragging them to the list window. You can also load and store configurations to a file. If the design of your physical architecture is finished you can create the physical architecture my selecting “Make Configuration” from the menu. Each NA in the tree will be contacted and the physical architecture will be created. The tree in the picture above displays two independent virtual architectures one with root NA “agnes.par.univie.ac.at” and one with “daphne.par.univie.ac.at”. The node named “Systemroots” is just a dummy tree node and not a real NA. The first one is a NA of level three (agnes) consisting of two NA’s of level two (amanda claire). The first one (amanda) consists of two NA’s of level one (becky brooke) the second consists of three NA’s (darlene dolly edwin). The root of the second system is a NA of level five (daphne) consisting of one NA of level four (cybill) and another one of level 2 (lisa) and so on.

برای دانلود فایل بر روی دکمه زیر کلیک کنید

دریافت فایل

دانلود مقاله ترجمه شده سورت بهینه با الگوریتمهای ژنتیک

 

دانلود مقاله ترجمه شده سورت بهینه با الگوریتمهای ژنتیک

default8 - دانلود مقاله ترجمه شده سورت بهینه با الگوریتمهای ژنتیک

دسته بندیکامپیوتر و IT
فرمت فایلpdf
حجم فایل۲٫۲۴ مگا بایت
تعداد صفحات۳۱
برای دانلود فایل بر روی دکمه زیر کلیک کنید

دریافت فایل

بخشی از ترجمه فارسی:

چکیده
رشد پیچیدگی پردازش های مدرن تولید کد موثر مناسب را بصورت افزایشی سخت ساخته است. تولید کد به صورت دستی بسیار زمان صرف کننده می باشد اما آن بارها انتخاب میشوند به طوریکه کد تولید شده بوسیله تکنولو‍‍‍‍ژی کامپایلرهای امروزی بارها اجرای پایین تری نسبت به بهترین کدهای آماده شده دستی دارند. یک نولید از استراتژی تولید کد انجام گرفته شده بوسیله سیستم های شبیه ATLAS FFTW و SPIRAL که جستجوی تجربی را برای پیدا کردن مقادیر پارامتر از کارایی را استفاده کرده است به طوریکه اندازه تیله و زمانبندی آموزش که تحویل انجام بهینه برای یک ماشین مخصوص می باشد. به هر حال این دیدگاه دارد به تنهایی به طور کامل ثابت میکند در کدهای علمی اجرا به داده ورودی وابسته نیست. در این مقاله ما مطالعه میکنیم تکنیکهای یادگیری ماشین را برای توسعه جستجوی ترتیبی برای تولیدی از روتینهای سورت کردن که اجرا در مشخصات ورودی و معماری از ماشین هدف وابسته است. ما ساختیم در مطالعه قبلی که یک الگوریتم سورت خالص در اغازی از محاسبات مثل تابعی از انحراف معیار انتخاب کنیم. دیدگاهی که بحث میکنیم در این مقاله الگوریتمهای ژنتیک و یک سیستم طبقه بندی با ساختار بصورت سلسله مراتبی ساخته شده الگوریتمهای سورت تلفیقی توانا از تبدیل کردن داده ورودی استفاده میکند. نتایج ما نشان میدهد که الگوریتمهای تولید شده با استفاده از دیدگاه ارائه شده در این مقاله هستند سرع و موثر در گرفتن داخل اکانت اثرات متقابل پیچیده ما بین معماری و مشخصات داده ورودی و کد نتیجه بسیار مهم بهتر از اجراعات سورت مرسوم و کد تولید شده با مطالعه اسان ما اجرا میکند. به ویژه روتینهای تولید شده با دیدگاه ما اجرا میکند بهتر از تمام کتابخانه های تجاری که ما ازمایش کردیم مثل IBM ESSL INTEL MKL و C++ STL. بهترین الگوریتم ما دارد توانایی تولید ای در معدل ۲۶% و ۶۲% سریعتر از IBM ESSL در یک IBM PAWER 3 و IBM PAWER 4 بترتیب را دارد.
۱ مقدمه
اگر چه تکنولوژی کامپایلر فوق العاده در پردازش خودکاراز بهینه سازی برنامه کامل شده است و بیشتر مداخلات انسانی هنوز هست برای تامین کد بسیار سریع لازم شده است. یک دلیل اینکه ناجوری از اجراعات کامپایلر وجود دارد. اینها کامپایلرهای بیهنه عالی برای بعضی پلاتفرمها هستند اما کامپایلرهای موجود برای بعضی پلاتفرمهای دیگر بسیاری خواسته ها را ترک میکنند. دومین دلیل و شاید بسیار مهم این هست که کامپایلرهای مرسوم که فاقد اطلاعات معنایی هستند و بنابراین محدود شده اند به قدرت دگرگونییا تغییر. یک دیدگاه ایجاد شده که دارد ثابت شده بکلی موثر در چیره شدن به هر دوی این محدودیتها استفاده نمودن تولید کننده های کتابخانه میباشد. این سیستمها استفاده معنایی در اطلاعات برای بکار بردن دگرگون سازی در تمام سطوح از تجرید مهیا میسازند. بیشتر تولیدات کتابخانه قدرتمند نیستند فقط بهینه ساز برنامه همان سیستمهای طراحی الگوریتم هستند.
ATLAS[21] PHiPAC[2] FFTW[7] SPIRAL[23] در طول بهترین تولید کننده های کتابخانه دانسته شده میباشند. ATLAS PHiPAC تولید میکنند روتینهای جبری خطی را و پردازش بهینه را در پیاده سازی از ضرب ماتریس در ماتریس فوکس میکنند. در مدت نصب مقادیر پارامتر از یک پیاده سازی ضرب یک ماتریس بطوریکه اندازه تیله و مقداری از حلقه باز شده که تحویل میدهد بهترین انجام معین کننده هویت استفاده جستجوی تجربی. این جستجو پردازش میشود با تولید کردن ورژنهای گوناگون از ضرب ماتریسی که تنها اختلاف دارند در مقدار پارامتر که هست شروع به جستجو. در تقریب جستجوی گسترده هست استفاده شده برای پیدا کردن بهترین مقادیر پارامتر. دو سیستم دیگر اشاره دارند روی SPIRAL FFTW تولید میکنند کتابخانه های پردازش کننده تنها را. فضای جستجو در SPIRAL FFTW هست همچنین بزرگتر برای جستجوی گسترده برای ممکن شدن. بنابراین این سیستمها جستجو میکنند با استفاده هیوریستیک مثل برنامه نویسی داینامیک [۷ ۱۲] یا الگوریتمهای ژنتیک [۱۹].
در این مقاله ما مرور میکنیم مسئله از تولید کردن روتینهای سورت سرعت بالا را. یک تفاوت ما بین سورت کردن و پیاده سازی الگوریتم پیاده سازی شده بوسیله بوسیله تولیدات کتابخانه ای فقط اشاره کرده هست این اجرا از الگوریتمها انها انجام ابزار هست به طور کامل تعیین شده بوسیله مشخصاتی از ماشین هدف و اندازه ای از داده ورودی اما نیست بوسیله دیگر مشخصات از داده ورودی. به هر حال در حالتی از سورت اجرا همچنین وابسته است در دیگر فاکتورهای مثل توزیع داده برای سورت شدن. در حقیقت بحث پایین سورت مرج چند راهی را اجرا میکند بسیار خوب در بعضی کلاسهایی ازمجموعه های داده ورودی که radix سورت اجرا میکند بطور غیر کافی در این مجموعه. برای دیگر کلاسهای مجموعه داده ما رعایت میکنیم موقعیت معکوس را. بنابراین دیدگاه تولید کننده های امروزی هست مفید برای بهینه سازی مقادیر پارامتر از الگوریتمهای سورت اما نیست برای انتخاب بهترین الگوریتم برای گرفتن ورودی. برای تبدیل به مشخصات از مجموعه ورودی در [۱۴] ما استفاده کردیم توزیع ای از داده ورودی برای انتخاب الگوریتم سورت. اگر چه این دیدگاه هست ثابت شده که بکلی موثر است اجرای اخر هست محدود شده با اجرایی از الگوریتمهای سورت مثل سورت مرج چند راهی وسورت سریع و سورت radix هستند انتخاب شده در [۱۴] که میتواند انتخاب شده باشد در زمان اجرا.
در این مقاله ما ادامه میدهیم و عمومیت میدهیم به دیدگاه سادهترمان[۱۴] . تولید کتابخانه جدید ما تولید میکند اجرایی از الگوریتمهای سورت مرکب رادر فرمی از یک سلسله مراتبی از سورتهای اولیه که مخصوص شکل نهایی توسعه شده در چهره سلسله مرتبی از ماشین هدف و مشخصات داده ورودی. درک مستقیم باقی کار این است که الگوریتمهای سورت مختلف اجرا میکنند به صورت متفاوت توسعه دادن را در مشخصات ای از هر بخش و مثل یک نتیجه و الگوریتم سورت بهینه می بایستی باشد ترکیبی از این الگوریتمهای سورت مختلف. گذشته از این سورتهای اولیه تولید کردند کد شامل انتخاب اولیه که به صورت داینامیک انتخاب میکند مخلوط الگوریتم مثل یک تابع از مشخصات ای از داده در هر بخش را. در مدت زمان نصب دیدگاه کتابخانه جدید ما جستجو میکند برای تابعی که نگاشت میکند مشخصات ای از ورودی را برای بهترین الگوریتمهای سورت با استفاده از الگوریتمهای ژنتیک [۳ ۸ ۱۶ ۲۲]. الگوریتمهای ژنتیک استفاده شده اند برای جستجو برای اختصاص دادن فرمول در SPIRAL[19] و برای بهینه سازی کامپایلر رسمی [۴ ۶ ۲۰].
نتایج ما نشان میدهد که دیدگاهمان هست بسیار موثر. بهترین الگوریتم ما داریم تولید شده هست در معدل ۳۶% سریعتر از بهترین روتین سورت خالص و شروع با ۴۵% سریعتر. روتین سورت ما اجرا میکند یهتر از تمام کتابخانه های تجاری که ما سعی میکنیم شامل IBM ESSL INTEL MKL و STL از C++. در معدل روتینهای تولید شده ۲۶% و۶۲% سریعتر از IBM ESSL در یک IBM PAWR3 و IBM POWER 4 به ترتیب.
نتیجه از این مقاله سازمان دهی شده مثل زیر. بخش ۲ بحث میکند اولیه ای که ما استفاده کردیم برای ساختن الگوریتمهای سورت. بخش ۳ مرور میکند چرا ما اتنخاب کردیم الگوریتمهای ژنتیک را برای جستجو و مرور بعضی جزییات از الگوریتم ای که ما انجام دادیم. بخش ۴ نشان میدهد نتایج اجرا شده را. بخش ۵ خلاصه مطالب چگونگی استفاده الگوریتمهای ژنتیک را برای تولید یک سیستم طبقه بندی برای روتینهای سورت میباشد و سرانجام بخش ۶ ارائه میکند نتایجمان را.
۲ سورت اولیه
در این بخش ما توضیح میدهیم بلوکهای ساخته شده از الگوریتمهای سورت ترکیبییمان را. این اولییه ها انتخاب شده اند بر مبنای ازمایش با الگوریتمهای سورت مختلف و مطالعه ای از فاکتورهای که اثر میکنند به اجرایشان. یک خلاصه از نتایج این ازمایشات در شکل ۱ ارائه شده است که کشیده شده زمان اجرا از سه الگوریتم سورت در برابر انحراف معیار از کلیدهای سورت شده.

نتایج نشان داده شده برای SUN ULTRASPARC III و برای دو اندازه از مجموعه داده ۲ میلیون و ۱۶ میلیون. سه الگوریتم هستند: QUICKSORT [10 17] و CACHE-CONSCIOUS RADIX SORT (CC-RADIX)[11] و MULTIWAY MERG SORT[13]. شکل ۱ نشان میدهد که برای ۲M رکورد بهترین الگوریتم سورت هست QUICKSORT یا CC-RADIX زمانی که برای ۱۶M رکورد MULTIWAY MERGE SORT یا CC-RADIX هستند بهترین االگوریتم. مشخصات ورودی که تعیین شده زمانی که CC-RADIX هست بهترین الگوریتم هست انحراف معیار از رکوردها برای سورت شدن. CC-RADIX هست بهتر زمانی که انحراف معیار از رکوردها هست بالا برای اینکه اگر مقادیر از عناصر در داده ورودی هست متمرکز شده اند گرداگرد بعضی مقادیر ان هست بسیار شبیه به اینکه بیشتر عناصر در بعضی از BUCKET ها باشند . بنابراین بیشتر پارتیشنها سبقت میگیرند برای بکار بردن قبل از BUCKET های مناسب داخل کش و بنابراین بیشتر کش های فاقد هستند موجب شده در مدت پارتیشن بندی. نتایج اجرا در دیگر پلتفرمها نشان میدهد که تمایل عمومی از الگوریتمها هست همیشه یکسان اما نقطه متقاطع اجرا اتفاق می افتد در نقاط مختلف در پلت فرمهای مختلف.
ان میفهماند برای بسیاری سالها که اجرا QUICKSORT میتواند بهبود شود زمانی که ترکیب شده با دیگر الگوریتمها [۱۷]. ما تایید میکنیم به صورت ازمایشی که وقتی پارتیشن هست کوچکتر از یک استانه خوب (که مقدار وابسته است در پلتفرم هدف) ان هست بهترین برای استفاده INSERTION SORT یا ذخیره داده در رجیسترها و سورت بوسیله تعویض مقادیر ما بین ریجسترها [۱۴] به جای ادامه دادن به صورت بازگشتی بکار بردن quicksort. Register sort هست یک الگوریتم کد مستقیم که اجرا میکند مقایسه-و-تعویض از مقادیر سورت شده در رجیسترهای پروسسور [۱۳].
Darlington [5] معرفی کرده ایده ای از سورتهای اولیه و تشخیص merge sort و quicksort مثل دو الگوریتم اولیه. در این مقاله ما جستجو کیکنیم برای یک الگوریتم بهینه بوسیله ساختن الگوریتمهای سورت ترکیبی. ما استفاده کردیم دو نوع از اولیه برای ساختن الگوریتمهای سورت تازه: سورت کردن و انتخاب اولیه. سورتهای اولیه ارائه میکنند یک الگوریتم سورت خالص را که شامال پارتیشن بندی داده است به طوریکه مثل radix sort و merge sort و quicksort. انتخاب اولیه ارائه میکند یک پروسه برای اجرا شدنه در زمان اجرای که به صورت داینامیک تصمیم میگیرد که الگوریتم سورت را برای بکار بردن.
الگوریتمهای سورت ترکیبی مطرح میکنند در این مقاله فرض شده است که داده هست سورت شده در پی در پی حافظه محلی. داده هست به صورت بازگشتی پارتیشن شده بوسیله یکی از ۴ متدهای پارتیشن بندی. پارتیشن بندی بازگشتی خاتمه میدهد زمانی که یک الگوریتم سورت شکل گرفت هست بکار میرود در پارتیشن. ما الان توضیح میدهیم ۴ پارتیشن بندی اولیه را در زیر بوسیله یک توضیح از دو سورت اولیه شکل گرفته. برای هر اولیه ما همچنین تشخیص میدهیم مقادیر پارامتری که باید باشد جستجو شده با تولیدات کتابخانه.

بخشی از مقاله انگلیسی:

Abstract The growing complexity of modern processors has made the generation of highly efficient code increasingly difficult. Manual code generation is very time consuming but it is often the only choice since the code generated by today’s compiler technology often has much lower performance than the best hand-tuned codes. A promising code generation strategy implemented by systems like ATLAS FFTW and SPIRAL uses empirical search to find the parameter values of the implementation such as the tile size and instruction schedules that deliver near-optimal performance for a particular machine. However this approach has only proven successful on scientific codes whose performance does not depend on the input data. In this paper we study machine learning techniques to extend empirical search to the generation of sorting routines whose performance depends on the input characteristics and the architecture of the target machine. We build on a previous study that selects a ”pure” sorting algorithm at the outset of the computation as a function of the standard deviation. The approach discussed in this paper uses genetic algorithms and aclassifier system to build hierarchically-organized hybrid sorting algorithms capable of adapting to the input data. Our results show that such algorithms generated using the approach presented in this paper are quite effective at taking into account the complex interactions between architectural and input data characteristics and that the resulting code performs significantly better than conventional sorting implementations and the code generated by our earlier study. In particular the routines generated using our approach perform better than all the commercial libraries that we tried including IBM ESSL INTEL MKL and the C++ STL. The best algorithm we have been able to generate is on the average 26% and 62% faster than the IBM ESSL in an IBM Power 3 and IBM Power 4 respectively. ∗This work was supported in part by the National Science Foundation under grant CCR 01-21401 ITR; by DARPA under contract NBCH30390004; and by gifts from INTEL and IBM. This work is not necessarily representative of the positions or policies of the Army or Government. 1 Introduction Although compiler technology has been extraordinarily successful at automating the process of program optimization much human intervention is still needed to obtain highquality code. One reason is the unevenness of compiler implementations. There are excellent optimizing compilers for some platforms but the compilers available for some other platforms leave much to be desired. A second and perhaps more important reason is that conventional compilers lack semantic information and therefore have limited transformation power. An emerging approach that has proven quite effective in overcoming both of these limitations is to use library generators. These systems make use of semantic information to apply transformations at all levels of abstractions. The most powerful library generators are not just program optimizers but true algorithm design systems. ATLAS [21] PHiPAC [2] FFTW [7] and SPIRAL [23] are among the best known library generators. ATLAS and PHiPAC generate linear algebra routines and focus the optimization process on the implementation of matrix-matrix multiplication. During the installation the parameter values of a matrix multiplication implementation such as tile size and amount of loop unrolling that deliver the best performance are identified using empirical search. This search proceeds by generating different versions of matrix multiplication that only differ in the parameter value that is being sought. An almost exhaustive search is used to find the best parameter values. The other two systems mentioned above SPIRAL and FFTW generate signal processing libraries. The search space in SPIRAL or FFTW is too large for exhaustive search to be possible. Thus these systems search using heuristics such as dynamic programming [7 12] or genetic algorithms [19]. In this paper we explore the problem of generating highquality sorting routines. A difference between sorting and the algorithms implemented by the library generators just mentioned is that the performance of the algorithms they implement is completely determined by the characteristics of the target machine and the size of the input data but not by other characteristics of the input data. However in the case of sorting performance also depends on other factors such as the distribution of the data to be sorted. In fact as discussed below multiway merge sort performs very well on someclasses of input data sets while radix sort performs 1 Proceedings of the International Symposium on Code Generation and Optimization (CGO’05) 0-7695-2298-X/05 $ 20.00 IEEE poorly on these sets. For other data setclasses we observe the reverse situation. Thus the approach of today’s generators is useful to optimize the parameter values of a sorting algorithm but not to select the best sorting algorithm for a given input. To adapt to the characteristics of the input set in [14] we used the distribution of the input data to select a sorting algorithm. Although this approach has proven quite effective the final performance is limited by the performance of the sorting algorithms – multiway merge sort quicksort and radix sort are the choices in [14] – that can be selected at run time. In this paper we extend and generalize our earlier approach [14]. Our new library generator produces implementations of composite sorting algorithms in the form of a hierarchy of sorting primitives whose particular shape ultimately depends on the architectural features of the target machine and the characteristics of the input data. The intuition behind this is that different sorting algorithms perform differently depending on the characteristic of each partition and as a result the optimal sorting algorithm should be the composition of these different sorting algorithms. Besides the sorting primitives the generated code contains selection primitives that dynamically select the composite algorithm as a function of the characteristics of the data in each partition. During the installation time our new library approach searches for the function that maps the characteristics of the input to the best sorting algorithms using genetic algorithms [3 8 16 22]. Genetic algorithms have also been used to search for the appropriate formula in SPIRAL [19] and for traditional compiler optimizations [4 6 20].

برای دانلود فایل بر روی دکمه زیر کلیک کنید

دریافت فایل

دانلود مقاله ترجمه شده بررسی SoC های قابل برنامه ریزی Zynq–۷۰۰۰

 

دانلود مقاله ترجمه شده بررسی SoC های قابل برنامه ریزی Zynq–۷۰۰۰

default8 - دانلود مقاله ترجمه شده بررسی SoC های قابل برنامه ریزی Zynq–7000

دسته بندیکامپیوتر و IT
فرمت فایلpdf
حجم فایل۹۳۳ کیلو بایت
تعداد صفحات۴۷
برای دانلود فایل بر روی دکمه زیر کلیک کنید

دریافت فایل

بخشی از ترجمه فارسی مقاله:

بوت PS و پیکربندی دستگاه
دستگاه های Zynq-7000 و Zynq-7000S از یک فرایند پردازش بوت چند مرحله ای استفاده می کنند که از بوت ایمن و غیر ایمن پشتیبانی می کند. PS سرور فرایند پیکربندی و بوت است. برای یک بوت ایمن ، PL باید روشن شود تا استفاده از بلوک ایمن واقع درونPL، که رمز گشایی / اهراز هویت ۲۵۶ بیت AES و SHA را فراهم می کند. پس از ریست، پین حالت دستگاه به عنوان خوانده شده برای تعیین دستگاه بوت اولیه مورد استفاده قرار گیرد:: NOR، NAND، SPIچهارگانه ، SD، و یا JTAG. JTAG تنها می تواند به عنوان یک منبع بوت غیر امن استفاده می شود و برای اهداف اشکالزدایی در نظر گرفته شده است. یکی از CPUهای ARM Cortex-A9 کد را بر روی تراشه ی ROM و کپی های مرحله ی اول بارگذاری(FSBL) از دستگاه بوت در OCM اجرا می کند و پردازشگر FSBL را اجرا می کند. Xilinx نمونه هایی از FSBLرا تامین می کند یا کاربران خود آن را ایجاد می کنند. FSBL بوت PS را آغاز می کند و PL را پیکربندی می کند. FSBL بوت PS را آغاز می کند و می تواند بار و پیکربندی PL، و یا پیکربندی PL را به مرحله بعد به تعویق بیندازد
FSBL معمولا یک نرم افزار کاربر و یا اختیاری دوم بارگیری مرحله بوت (SSBL) مانند U-بوت را بارگیری می کند.
کاربران از SSBL ،Xilinx یا شخص ثالث را بدست می آورند، یا آنها می توانند SSBL خود را ایجاد کنند. SSBL فرایند بوت توسط کد بارگذاری از هر یک از دستگاه های بوت اولیه و یا از منابع دیگر مانند USB، اترنت، و غیره را ادامه می دهد.اگر FSBL نتواند PL راپیکربندی کند SSBL می تواند این کاررا انجام دهد ، و یا دوباره پیکربندی می تواند به مرحله بعد به تعویق بیفتد. کنترل رابط حافظه ثابت NAND) ، NOR،یا SPIچهارتایی) با استفاده از تنظیمات پیش فرض پیکربندی شده است.
به منظور بهبود سرعت پیکربندی دستگاه، این تنظیمات را می توان با اطلاعات ارائه شده در هدر تصویر بوت تغییر اصلاح کرد.
تصویر ROM بوت، پس از بوت کاربر قابل خواندن و یا بازخوانی نیست.
پشتیبانی اشکال زدایی سخت افزار و نرم افزار
سیستم اشکال زدایی مورد استفاده در خانواده Zynq-7000 بر اساس معماری ARM CoreSight بنا نهاده شده است. این سیستم از اجزای ARM CoreSight از جمله یک بافر تعبیه شده ردیابی (ETB)، یک ماکروسل برنامه ردیابی (PTM)، و یک ماکروسل اثری ابزار (ITM). استفاده می کند. این راهنمای ویژگی های مسیریابی همچنین نقاط شکست و محرک سخت افزار را فعال می سازد. منطق برنامه ریزی می تواند با تحلیلگر منطق تجمیعی اشکال زدایی شود.
پورت های اشکال زدایی
دو پورت JTAG موجود هستند و می توانند با یکدیگر زنجیره شوند یا بطور جداگانه استفاده شوند. وقتی با یکدیگر زنجیره می شوند، یک پورت مجزا برای دانلودهای کد پردازشگر ARM و عملیات کنترل زمان اجرا، پیکربندی PL، و اشکال زدایی PL با نرم افزار تجزیه و تحلیل منطقی تعبیه شده ChipScope ™ اشکال زدایی می شود.این ابزارهایی همچون کیت توسعه ی نرم افزار Xilinx(SDK) و تحلیلگر ChipScope Pro را برای سهیم کردن یک کابل دانلود مجزا از Xilinx فعال می سازد. وقتی یک زنجیره ی JTAG تقسیم می شود، یک پورت برای پشتیبانی PS استفاده می شود، از جمله دسترسی مستقیم به رابط ARM DAP. این رابط CoreSight امکان استفاده از اشکال زدایی و توسعه نرم افزار ابزار ARM سازگار مانند توسعه استودیو ۵ (DS-5 ™) را فعال می سازد.
پورت JTAG دیگر پس از آن می تواند توسط ابزار Xilinx را FPGA برای دسترسی به PL از جمله دانلود پیکربندی و اشکال زدایی بیت استریم PL با تجزیه و تحلیل منطقی یکپارچه مورد استفاده قرار گیرد. در این حالت، کاربران می توانند به شیوه ای مشابه FPGA مستقل برای دانلود، و اشکال زدایی PL اقدام کنند.
مدیریت قدرت
PS و PL از صفحه‌های قدرت مختلف قرار دارند. این PS و PL را قادر می‌سازد به ریل‌های قدرت مستقل، هریک با پین‌های منبع تغذیه خودش، متصل شود. اگر حالت خاموش PL مورد نیاز باشد، کاربر می‌تواند ریل‌های قدرت PS و PL را با یکدیگر متصل کند. وقتی که PS در حالت خاموش است، PL را در شرایط ریست دائمی نگه می‌دارد. کنترل قدرت برای PL از طریق پین‌های خارجی در PL انجام می‌شود. مدار مدیریت قدرت خارجی می‌تواند برای کنترل قدرت استفاده شود، مدار مدیریت قدرت خارجی می‌تواند توسط نرم‌افزار و PS GPIO کنترل شود.

بخشی از مقاله انگلیسی:

PS Boot and Device Configuration

Zynq-7000 and Zynq-7000S devices use a multi-stage boot process that supports both a non-secure and a secure boot. The PS is the master of the boot and configuration process. For a secure boot the PL must be powered on to enable the use of the security block located within the PL which provides 256-bit AES and SHA decryption/authentication. Upon reset the device mode pins are read to determine the primary boot device to be used: NOR NAND Quad-SPI SD or JTAG. JTAG can only be used as a non-secure boot source and is intended for debugging purposes. One of the ARM Cortex-A9 CPUs executes code out of on-chip ROM and copies the first stage boot loader (FSBL) from the boot device to the OCM. After copying the FSBL to OCM the processor executes the FSBL. Xilinx supplies example FSBLs or users can create their own. The FSBL initiates the boot of the PS and can load and configure the PL or configuration of the PL can be deferred to a later stage. The FSBL typically loads either a user application or an optional second stage boot loader (SSBL) such as U-Boot. Users obtain the SSBL from Xilinx or a third party or they can create their own SSBL. The SSBL continues the boot process by loading code from any of the primary boot devices or from other sources such as USB Ethernet etc. If the FSBL did not configure the PL the SSBL can do so or again the configuration can be deferred to a later stage. The static memory interface controller (NAND NOR or Quad-SPI) is configured using default settings. To improve device configuration speed these settings can be modified by information provided in the boot image header. The ROM boot image is not user readable or callable after boot.

Hardware and Software Debug Support

The debug system used in the Zynq-7000 family is based on ARM’s CoreSight architecture. It uses ARM CoreSight components including an embedded trace buffer (ETB) a program trace macrocell (PTM) and an instrument trace macrocell (ITM). This enables instruction trace features as well as hardware breakpoints and triggers. The programmable logic can be debugged with the integrated logic analyzer.

Debug Ports

Two JTAG ports are available and can be chained together or used separately. When chained together a single port is used for ARM processor code downloads and run-time control operations PL configuration and PL debug with the ChipScope™ Pro embedded logic analyzer. This enables tools such as the Xilinx Software Development Kit (SDK) and ChipScope Pro analyzer to share a single download cable from Xilinx. When the JTAG chain is split one port is used for PS support including direct access to the ARM DAP interface. This CoreSight interface enables the use of ARM-compliant debug and software development tools such as Development Studio 5 (DS-5™). The other JTAG port can then be used by the Xilinx FPGA tools for access to the PL including configuration bitstream downloads and PL debug with the integrated logic analyzer. In this mode users can download to and debug the PL in the same manner as a stand-alone FPGA.

Power Management

The PS and PL reside on different power planes. This enables the PS and PL to be connected to independent power rails each with its own dedicated power supply pins. If PL power-off mode is not needed the user can tie the PS and PL power rails together. When the PS is in power-off mode it holds the PL in a permanent reset condition. The power control for the PL is accomplished through external pins to the PL. External power management circuitry can be used to control power. The external power management circuitry could be controlled by software and the PS GPIO.

برای دانلود فایل بر روی دکمه زیر کلیک کنید

دریافت فایل

دانلود مقاله ترجمه شده کاربردهای محاسبات ابری برای شبکه هوشمند همراه با فایل اصلی

 

دانلود مقاله ترجمه شده کاربردهای محاسبات ابری برای شبکه هوشمند همراه با فایل اصلی

default8 - دانلود مقاله ترجمه شده کاربردهای محاسبات ابری برای شبکه هوشمند همراه با فایل اصلی

دسته بندیکامپیوتر و IT
فرمت فایلpdf
حجم فایل۶٫۰۲۵ مگا بایت
تعداد صفحات۳۰
برای دانلود فایل بر روی دکمه زیر کلیک کنید

دریافت فایل

بخشی از ترجمه فارسی مقاله:

مقدمه
شبکه هوشمند به عنوان ترکیبی از شبکه های الکتریکی و زیربناهای ارتباطی درذهن شکل می گیرد . شبکه هوشمند با استفاده از ارتباط دوسویه و جریان های برق می تواند به صورت بهینه تر و قابل اعتمادتر از شبکه های نیروی قدیمی جریان الکتریسیته را توزیع کند. شبکه هوشمند از یک شبکه برق تشکیل شده ،این شبکه برق شامل گره های هوشمندی می شود که می توانند آزادانه عمل کنند، ارتباط برقرار کنند تا به طور بهینه جریان الکتریسیته را توزیع کنند و به مصرف کنندگان برسانند. این ناهمگنی که در ساختار شبکه هوشمند وجود دارد موجب می شوند تا از تکنولوژی پیشرفته استفاده کنیم تا بر چالشهای فنی مختلف در سطوح متفاوت غلبه نماییم . هر شبکه هوشمند باید ارتباط دوسویه بی وقفه را بین خدمات رفاهی و مصرف کنندگان پوشش دهد و باید موقعیتی فراهم کند که سیستم های نرم افزاری در دوپایانه تولید کننده و مصرف کننده بتوانند مصرف انرژی را کنترل و مدیریت کنند. شرکت های رفاهی ( شرکت های تولید آب ، برق ، گاز ) برای اینکه بتوانند میلیون ها کنتور هوشمند را به روش های قابل اندازه گیری ، قابل اعتماد و ایمن مدیریت کنند، باید سیستم مدیریت شبکه ارتباطی را به یک مرکز داده وسیع توسعه دهند. تصور می شود در این مورد برنامه کامپیوتری ابری نقش کلیدی در انگیزه برای ایجاد طرح های شبکه هوشمند آینده دارند. برنامه کامپیوتری ابری یک تکنولوژی تکامل یافته است که دسترسی آسان و راحت به شبکه های موجود را فراهم می کند تا به منابع های کامپیوتری به اشتراک گذاشته شده راحت تر دسترسی یابیم ، این منبع ها به سرعت با کمترین تلاش مدیریتی یا ارتباط تامین کننده سرویس تولید و توزیع می شود . با استفاده از ساختار ابری یک مصرف کننده می تواند به برنامه هایش درهر زمان و درهرکجا دسترسی یابد فقط کافی است که به شبکه وصل شود.
۱٫۱ انگیزه
زمانی که سیستم ها شبکه هوشمند STATE-OF-THE-ART را توسعه می دهیم ، باید شبکه را با امکانات دوسویه و فرآیند بی وقفه اطلاعات پوشش دهیم . به علاوه مصرف کنندگان دروقفه های زمانی متفاوت ، نیازشان به انرژی به صورت پویا تغییر می کند ( وقفه های زمانی متفاوت مانند نقطه اوج، نقطه پایانی ، نقطه میانی ) . که در مقابل امکانات ارتباطی باید به صورت پویا موجود باشند( امکانات ارتباطی مانند پهنای شبکه ، واحدهای فرآیند شده ،ابزارهای ذخیره سازی ) .. بنابراین باید یک پایگاه معمولی با شبکه هوشمند ادغام شود که این پایگاه می تواند نیازهای شبکه هوشمند را به شرح زیر پوشش دهد.
۱) مدیریت انرژی : شبکه های نیروی موجود به تعادل بهینه عرضه و تقاضای انرژی بین مصرف کننده ها و تولید کنندگان خدمات رفاهی نیاز دارند . شبکه های هوشمند می توانند این نیاز را برآورده کنند . با ادغام سیستم های مدیریت انرژی متفاوت ،این گونه خصوصیات در شبکه هوشمند تحقق می یابند ، این سیستم های مدیریت انرژی شامل مدیریت انرژی خانگی ، مدیریت جانب تقاضا و مدیریت انرژی ساختمان می شوند. شبکه های هوشمند برای منابع انرژی تجدید پذیر مانند انرژی خورشیدی و انرژی باد امکانی فراهم می کند تا به صورت بهینه عرضه و تقاضا را مدیریت کنند.
۲) نیاز به پوشش چندین دستگاه در پایگاه عمومی : در یک محیط شبکه هوشمند،چندین دستگاه کار گذاشته می شوند . این دستگا ها شامل وسایل برقی خانه ، کنتورهای هوشمند ، شبکه های میکرو ،ایستگاه های فرعی ،گره های حسی و دستگاه ها ی ارتباطی که با شبکه کار می کنند می شود. باید یک ساختار پروتوکولی ( داده سامان) به کار گذاشته شود تا این دستگاه ها را پوشش دهد به منظور اینکه توزیع الکتریکی بهینه و قابل اعتمادی داشته باشیم .
۳) مدیریت اطلاعات : مدیریت اطلاعات یک بخش مهم در ساختار شبکه هوشمند است ، در محیط های شهری معمولی ، میلیون ها کنتور هوشمند در پایگاه های توزیع کار گذاشته شده اند. این کنتورهای هوشمند داده های انبوهی برای ارتباط بی وقفه با شرکت های رفاهی تولید می کنند. یک مکانیزم مدیریت داده مناسب باید به کار گرفته شود تا این داده های انبوه را مدیریت کند.
۴) ساختار لایه ای : شبکه هوشمند از چندین لایه تشکیل شده: لایه شبکه ، لایه ارتباط، لایه توزیع برق، لایه انتقال برق و لایه تولید برق. انتظار می رود که شبکه هوشمند شبکه ارتباط رویی در شبکه الکتریکی زیرین را پوشش دهد.
۵) ساختار ناهمگن : ساختار ناهمگن یک ویژگی خاص شبکه هوشمند است . پاسخ به تقاضا ، تولید گسترده ، برنامه ریزی منبع و مدل قیمت گذاری بی وقفه به ناهمگنی شبکه هوشمند کمک می کند.
۶) امنیت: تکنیک های اعتبار و اختیار قانونی موثر باید به کار بسته شود تا امنیت کاربران حفظ گردد. برخی جنبه های امنیتی در شبکه هوشمند شامل قطع داده ، جستجوی خطر حملات فیزیکی سایبری است . برای اینکه کاربران را تشویق کنیم از شبکه استفاده کنند باید سیاست های امنیتی مناسبی به کار بسته شود. از طرف دگیر ، برنامه کامپیوتری ابری یک تکنیک مفید است که می تواند بی وقفه و به طور مناسب نیازهای شبکه هوشمند را تامین کند ،این برنامه خصوصیات زیر را دارد:
• برنامه نرم افزاری ضروری فراهم می کند تا پرداخت هزینه بر اساس مصرف انرژی را پوشش دهد .
• از طریق دسترسی هوشمند نیروگا ه های بادی ، آبی و خورشیدی ، انتشار کربن را کاهش می دهد.
• مدیریت فعال منحنی های عرضه و تقاضا
• فضای ذخیره سازی نامحدود فراهم می کند تا کاربران بتوانند داده هایشان را ذخیره کنند.
• امکانی فراهم می کند تا کاربران به داده های برنامه کامپیوتری ابری دست یابند.

بخشی از مقاله انگلیسی:

۱ INTRODUCTION

A smart grid is conceptualized as a combination of electrical network and communication infrastructure. With the implementation of bidirectional communication and power flows a smart grid is capable of delivering electricity more efficiently and reliably than the traditional power grid. A smart grid consists of a power network composed of intelligent nodes that can operate communicate and interact autonomously in order to efficiently deliver electricity to the customers. This heterogeneity in architecture of a smart grid motivates the use of advanced technology for overcoming various technical challenges at different levels. Any smart grid infrastructure should support real-time two-way communication between utilities and consumers and should allow software systems at both the producer and consumer ends to control and manage the power usage [1]. To manage millions of smart meters in secure reliable and scalable ways utilities must extend this communication network management system to a distributed data center. In this respect cloud computing is envisaged to play key roles of motivation in the design of the future smart grid. Cloud computing is an emerging technology advocated for enabling convenient on-demand network access to shared computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction [2] [3]. Using cloud infras- tructure a customer can gain access to their applications anytime from anywhere through a connected device to the network.

۱٫۱ Motivation

With the development of the state-of-the-art smart grid systems it needs the support of bi-directional communication facility and processing of the information in real-time as well. Additionally energy demand from the users changes dynamically in different time-periods (such as on-peak off-peak and mid-peak) which in turn requires dynamic availability of the communication facility (such as bandwidth processing units and storage devices). Therefore there is a need to integrate a common platform with the smart grid which is able to support the smart grid requirements as follows: a) Energy Management: The existing power grids need optimal balancing of electricity demand and supply between the customers and the utility providers [4]. Smart grids are capable of addressing this requirement. Such features in a smart grid is realized by the integration of various energy management systems such as home energy management (HEM) demand side management (DSM) and building energy management (BEMS) [5] [6]. A smart grid allows various renewable energy sources such as solar and wind to have efficient management of supply and demand. b) Need to support multiple devices in a common platform: In a smart grid environment multiple devices are implemented. These multiple devices are home appliances smart meters micro-grids substations sensor nodes and communication-network devices [7]. A suitable protocol architecture needs to be implemented to support these multiple devices in order to have reliable and efficient electric supply. c) Information management: Information management is an important aspect in the smart grid architecture [8] [9]. In typical city environments millions of smart meters are deployed in the distribution sites. These smart meters generate massive data for real-time communication with the utilities. A proper data management mechanism is necessary to be deployed for handling such massive data. d) Layered architecture: A smart grid is a combination of different layers — network communication electricity distribution transmission and generation [10]. The smart grid is expected to support the overlay communication network on the underlay electricity network. e) Heterogeneous architecture: The heterogeneous architecture is a special characteristic of a smart grid. Demand response distributed generation resource scheduling and real-time pricing model contribute to the heterogeneity of a smart grid [11]. f) Security: Effective authentication and authorization techniques are required for the preservation of users’ privacy. Some security aspects in a smart grid are data outage threat detection and cyber-physical attacks [12] [13]. A proper privacy policy needs to be implemented to motivate customers’ participation [12] [14] [15]. On the other hand cloud computing is a useful technique which can fulfill the requirements of the smart grid in real-time adequately while having the following characteristics [16] [17]: • Optimized costs through online monitoring and control of all grid assets. • Providing necessary software applications to the users for supporting payment according to energy consumption. • Reduction in carbon emissions through grid access of large wind hydro and solar power plants [18]. • Active management of demand and supply curves. • Providing unlimited data storage for storing customer data. • Supporting customers with data access from the cloud.

برای دانلود فایل بر روی دکمه زیر کلیک کنید

دریافت فایل