نقطه نظر کلی: لیندا چیست ؟
زبان برنامه نویسی موازی بر اساس 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 این کار را انجام می دهد سطح بالای زیر برنامه بایستی real – main نامیده می شود اما همان پارامترهای argv و argc دارد همانطور که c این کار را انجام می دهد عملیات لیندا ، out,in,evel برنامه ناهمگام ( غیر همزمان ــم ) است کارگرها به کار می روند وقتیکه آن بازیابی می شود ، n توپل ها را در فاصله توپل به کار می برد در جائیکه = n تعداد کارگرها است محیط برنامه نویسی لیندا دومدل اجرایی بر روی SD2 وجود دارد: سیستم توسعه کد (CDS) RS6000 لیندا Network – PoE بر روی High speed سوئیج می شود ارتباط های اولیه بومی (MPL) IBM به کار می رود.
محیط برنامه نویسی لیندا C – Lind را با Network – poE به کار می برد: ملاحظه کنید : وقتی network lind اجرا می شود ، مقدار متغیر محیط MP-PROCS برای تعیین اینکه چند تا از پردازشگر ها به کار می روند ، استفاده خواهد شد .
این فایل host.list را که بایستی شامل آدرسهای گره کلیدی باشند را به کار خواهد برد.
( به بخش نقطه نظر محیط عمل موازی برای جزئیات بیشتر مراجعه کنید ) محیط برنامه نویسی لیندا: کامپایلر فرمان کامپایلر flc – Fortran – Linda فرمان کامپایلر Clc – c – Linda نحوهای مشابه برای استاندارد C و کامپایلرهای Fortran انتخاب های اضافی لیندا به راهنمای کاربر را برای کامل کردن جزئیات مراجعه کنید.
سیستم توسعه کد لیندا (CDS) را به کار برید سیستم CDS را به کار برید ، متغیرهای محیط ذیل را برای cds تعریف کنید: زیر برنامه اعلان نشده hello همانند یک زیر روال به کار می رود.
ملاحظه کنید که یک اخطار lind op را منطبق نکنید وجود دارد.
لیندا یک اخطار را پرینت خواهد کرد اگر عملیاتی وجود داشته باشد که بعضی چیزها را در فاصله توپل قرار دهد که هیچ ارتباطی بازیابی و بالعکس ندارد.
در بیشتر موارد این یک پیغام مفید برای آشکار کردن تصحیح نحوی حروف ( اما به صورت فضایی تصحیح می شود ) است .
در این مورد ، بهر جهت ، این برای عملیات eval پیشنهاد می شود که از کارگرها شروع می شود و می تواند نادیده گرفته شود.
سیستم توسعه کد لیندا را به کار برید اشکال زدایی بصری TupleScape TupleScalpe را به کار برید ، شما بایستی کامپایل کنید با cds را انتخاب کرده و به کار برید.
شل c را به کار برید آرایه ها در c – linda ویژگی آرایه در عملیات c – linda آرایه ها مشخصه یک طول ثابت یا متغیر را دارند.
آرایه ثابت طول شناخته شده در زمان کامپایل کردن قبلا تعیین شده و تغییر داده نشده است آرایه های ثابت با به کار بردن نام آرایه مشخص می شوند.
آرایه متغیر اطلاعات اضافی تهیه شده در زمان اجرا را برای تعیین طول اخیر به کار برید.
مشخصه متغیر برای یک آرایه توسط قرار گرفتن یک “:” بعد از نامش به کار می رود.
اطلاعات در مورد طولش به دنبال “:” می آید.
ده درایه اول a را مشخص کنید : a:10 آرایه کامل را به عنوان آرایه متغیر مشخص کنید : a: وقتی به عنوان یک صوری به کار رفته می شود ، متغیر صحیح به کار رفته شده برای طول برای تعداد درایه های بازیابی شده تعریف خواهد شد.
تعداد درایه های بازیابی شده در طول متغیر قرار خواهند گرفت ملاحظه کنید : ارایه های ثابت هرگز با آرایه های متغیر منطبق نمی گردند.
طول در حالت سوم مورد نیاز است زیرا اشاره گر ها بایستی همیشه یک طول صریح و مشخص ــم را تعیین کنند.
توپل با « ده درایه » ممکن است توسط هر یک از عملیات ذیل بازیابی شود.
این کار انجام نخواهد شد ، زیرا این یک نوع ثابت است و آرایه های ثابت هرگز آرایه های متغیر را منطبق نمی کنند.
آرایه ها در c – linda آرایه های چند بعدی آرایه های چند بعدی منطبق می شوند اگر بخش های پیشنهاد شده همان شکل را داشته باشند.
آرایه ها را مشخص کنید.
دو آرایه ذیل منطبق خواهند شد : هر دوی آنها به یک آرایه ثابت با یک طول 2 اشاره می شوند : دو آرایه ذیل منطبق نخواهند شد : آرایه ایجاد شده توسط عملیات out یک 5x2 است و در الگو یک 6x2 است .
برای دو آرایه دارای بعد ، بخش های پیشنهاد شده که منطبق می شوند بایستی همان شکل را داشته باشند .
آرایه ها تعداد مشابهی از بعدها برای تطبیق ندارند هر مجموعه از عملیات in و out در ذیل منطبق شدند.
وقتیکه دو آرایه واقعا بعد مشابهی دارند آنها می توانند همانند آرایه های تک بعدی به کار روند .
آرایه ها در C – linda تطبیق الگو و آرایه ها آرایه ها با آرایه های دیگر منطبق می شوند وقتیکه درایه ها از همان نوع ( نوع مشابهی ــ م ) هستند.
آرایه های ثابت فقط با آرایه های ثابت با همان طول منطبق می شوند.
آرایه های ثابت هرگز با آرایه های متغیر منطبق نمی شوند حتی اگر آنها دارای همان اندازه باشند ( هم اندازه باشند ــم ) آرایه های چند بعدی منطبق می شوند اگر بخش های پیشنهاد شده همان شکل ( همشکل ــم ) را داشته باشند.
آرایه های واقعی بایستی هم در تعداد درایه ها و هم مقادیر تمام درایه های مربوطه با هم موافق باشند.
زبان لیندا تهیه کننده : رزیتا معقولی استاد محترم : جناب آقای مهندس متقی مؤسسه آموزش عالی سجاد تابستان 81