نقطه نظر کلی:
لیندا چیست ؟
زبان برنامه نویسی موازی بر اساس C (C _ Linda) و (Fortran _ Linda ) Fortran است
زبان مختصاتی Linda را با زبانهای برنامه نویسی C و Fortran ترکیب می کند.
کاربران را قادر به ایجاد برنامه موازیی می سازد که بر روی دامنه وسیعی از محاسبه پلات فرم ها کار می کنند.
به صورت منطقی بر اساس سراسری بودن ( همه جاگیر بودن سام ) حافظه مووضع محتوایی به نام فاصله توپل نامیده می شود.
فاصله توپل ارتباط درون پردازشی را ایجاد می کند و به طور منطقی همگام سازی مستقل از اصول کامپیوتر و شبکه است .
پیاده سازی موازی با یک تعداد کوچک از عملیات نمونه ، بر روی فاصله توپل ایجاد می شود و پردازش های موازی را هماهنگ می کند.
به صورت تجاری از شرکت Scientific Computing در دسترس است .
نقطه نظر کلی :
مدل لیندا
حافظه اشتراکی مجازی
قسمت های مختلف داده ها م یتوانند بر روی پردازشگر های مختلف مقیم شوند
شباهت یک حافظه سراسری تکی برای اجزای پردازشگر ، فاصله بندی می شود
حافظه اشتراکی لیندا به فاصله توپل معروف است
برای پیاده سازی بسیاری از انواع متفاوت الگوریتم ها می توانند استفاده شوند.
خودش را به خوبی برای ساختار داده ای گسترده مادر ( اصلی مهم ) / کارگر الگوریتم ها معطوف می کند.
نقطه نظر کلی :
مدل مادر / کارگر با به کار بردن حافظه اشتراکی مجاز
مدل کار و کارگر از یکدیگر مستقل هستند.
مدل مادر ، کار را به کارهای گسسته تقسیم می کند و آنرا درون فاصله سراسری قرار می دهد.
کارگرها به طور مکرر کارها را بازیابی می کنند و نتایج را درون فاصله سراسری قرار می دهند.
کارگران اتمام کار را توسط معرفی برخی شرایط اعلان می کنند ، یک «پیل پرآسون » را دریافت می کنند یا توسط برخی مفاهیم دیگر خاتمه می یابند.
مادر نتایج را از فاصله سراسری جمع آوری می کند.
روشهای ممکنی که کارها را می توانند توزیع کنند:
مجموعه ای از کارها ( نامرتب )
کارها توسط به کار بردن یک شمارشگر اشتراکی در فاصله توپل در طول شناسه های کار مرتب می شوند.
شناسه های کار ها برای پیدا کردن داده های مرتبط استفاده می شوند.
فاصله توپل
نام لیندا برای فاصله داده ای اشتراکی اش است فاصله توپل شامل توپل ها است
توپل ها
ساختار داده های بنیادی فاصله توپل
توپل ها توسط یک لیست در حدود 16 فیلد بیان می شوند ، و توسط ویرگول جدا می شوند و در پرانتز ها قرار می گیرند.
مدل حافظه محتوایی
یک توپل توسط مشخص کردن محتوایش بدست می آید
از دیدگاه برنامه ساز ، هیچ آدرسی که مربوط به توپل باشد وجود ندارد.
اساس لیندا
عملیات
چهار عملیات اساسی وجود دارد
تولید توپل
Out
یک داده ( غیر فعال ) توپل را تولید می کند
هر فیلد ( حوزه م ) ارزیابی می شود و داخل فاصله توپل قرار می گیرد.
سپس کنترل برای برنامه مقیم انجام می شود..
مثال :
5
evel
پردازش ( فعال ) توپل را ایجاد می کند
بلافاصله کنترل برای برنامه مقیم انجام می شود.
به صورت منطقی ، هر فیلد به طور همگاه توسط یک پردازش جداگانه ارزیابی می شوند و سپس درون فاصله توپل قرار می گیرند.
در پیاده اسزی متداول ، فقط فیلدهای شامل تابع ( یازیر برنامه ) مرجع که از پردازشهای جدید نتیجه می شوند ایجاد می شوند
مثال
استخراج توپل
In
یک الگو را برای بازیابی توپل از فاصله توپل به کار می برد.
وقتی بازیابی شد ، آن از فاصله توپل حذف می شود و برای سایر بازیابی ها طولانی تر نمی شود.
اگر تطبیق توپلی صورت گیرد ، پردازش مسدود خواهد شد و برای همگام سازی بین پردازش ها ایجاد می شود .
مثال :
7rd
یک الگو را برای کپی داده ها به کار می برد بدون اینکه آن از فاصله توپل حذف گردد
وقتی خوانده می شود ، آن برای سایرین هنوز در دسترس است .
اگر تطبیق توپلی صورت نگیرد ، پردازش مسدود خواهد شد .
مثال :
اساس لیندا
الگوها
توپل را برای بازیاب مشخص می کند
شامل توالی فیلدهای تایپ شده است
دو نوع از فیلدها
واقعی ها
متغیرها ، اثبات ها یا توضیحاتی که برای حل هستند.
صوری ها
گیرنده ها برای بازیابی داده ها
توسط یک علامت سئوال مقدم شدند
مقادیر وابسته به فیلد ها را در توپلهای منطبق شده ذکر کردند.
مثال :
هر دو مثال توپل را درون فاصله توپل با عملیات Out ذیل منطبق می کند:
اساس لیندا
قوانین تطبیق الگوها
به منظور اینکه این الگو با یک توپل منطبق شوند :
بایستی همان تعداد از فیلدها را داشته باشد.
واقعی ها بایستی همان نوع ، طول و مقدار را داشته باشند همانطور که آنها در فیلدهای توپل دادند.
صوری ها در الگو بایستی نوع و طول فیلدهای مربوطه در توپل را منطبق کنند.
اگر چندین توپل با الگو منطبق شوند ، پیش گویی در مورد انتخاب آنها غیر ممکن خواهد شد .
دستور ارزیابی فیلدها در یک توپل یا الگو تعریف نمی شود. بنابراین ، ساختارهای ذیل بایستی الغاء شوند.
نمیتوان پیشگویی کرد که آیا I افزوده خواهد شد قبل با بعد از اینکه آن برای فیلد سوم ارزیابی می شود.
نمی توان پیشگویی کرد که آیا j ( در فیلد سوم ) مقدار ست را توسط ?j ( فیلد دوم ) یا مقدار را قبل از اینکه گزاره اجرا شود را دارا خواهد بود.
15 در این مثال Fortran اگر تابع F() مقدار x را تغییر دهد ، ما نمی توانیم پیشگویی کنیم که آیا فیلد دوم اصلی را دارا خواهد بود یا مقدار X را تغییر خواهد داد
مثال
مثال کد :
ویژگی ها در کد Fortran شروع داده شد.
این مثال یکتعداد از ویژگی های Fortran_ Linda را شرح می دهد.
نام برنامه یک.FL اضافی دارد
سطح بالای زیر برنامه بایستی دارای یک پارامتر باشد زیر برنامه پایین تر real – main نامیده می شود.
حجم برنامه ، Fortran خالص است .
عملیات لیندا ، Out.in, evel
برنامه ناهمگام ( غیر همزمان م ) است – تضمینی وجود ندارد که پردازش ویژه ای قبل از دیدگی اجرا شود
مادر به کار می رود وقتیکه تعداد توپل تعداد کارگرها
مثال کد :
ویژگی ها در کد C شرح داده شد
این مثال ویژگی C-Linda I را شرح می دهد.
نام برنامه .ci اضافی دارد
سطح بالای زیر برنامه بایستی real – main نامیده می شود اما همان پارامترهای argv و argc دارد همانطور که c این کار را انجام می دهد