• سخنرانی در مورد رشته "محاسبات موازی" - سخنرانی ها

    پردازش موازی

    پردازش موازی

    پردازش موازی مدلی برای اجرای یک فرآیند برنامه به طور همزمان توسط گروهی از پردازنده ها است. سه راه برای پیاده سازی موازی وجود دارد:
    -1 - روش SIMD کار با یک جریان دستورالعمل و چندین جریان داده، که در آن تمام پردازنده هایی که طبق یک برنامه کار می کنند، آرایه های داده خود را تحت کنترل پردازنده میزبان پردازش می کنند.
    -2- روش MIMD کار با چندین جریان دستورالعمل و جریان داده های متعدد که در آن پردازنده ها مستقل از یکدیگر بر روی برنامه های خود کار می کنند و فقط گهگاه با یکدیگر ارتباط برقرار می کنند.
    -3- روش MISD کار با چندین جریان دستورالعمل و یک جریان داده.

    به انگلیسی:پردازش موازی

    فرهنگ لغت مالی فینام.


    ببینید «پردازش موازی» در فرهنگ‌های دیگر چیست:

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

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

      پردازش موازی- - مباحث مخابرات، مفاهیم اساسی EN پردازش موازی ...

      پردازش موازی- lygiagretusis apdorojimas statusas T sritis automatika atitikmenys: engl. vok پردازش موازی Parallelverarbeitung rus. پردازش موازی، fpranc. traitement en parallèle, m … Automatikos Terminų žodynas

      پردازش اطلاعات موازی- مدلی از پردازش اطلاعات در مغز که بر اساس آن اطلاعات یک سری دگرگونی ها را در "بلوک های عملکردی" خاصی از مغز انجام می دهد به طوری که در هر لحظه از زمان پردازش آن به طور همزمان (موازی) در چندین ... ... دایره المعارف بزرگ روانشناسی

      پردازش موازی اطلاعات- مشاهده موازی پردازش اطلاعات...

      مسیر پردازش موازیداده ها تعداد زیادیپردازنده هایی که روشی را برای سازماندهی موازی سازی MIMD پیاده سازی می کنند. به انگلیسی: Massively Parallel Processing مترادف های انگلیسی: MPP همچنین ببینید: پردازش موازی فرهنگ لغت مالی Finam ... واژگان مالی

      پردازش، موازی- پردازش اطلاعات که در آن بیش از یک توالی عملیات پردازشی به طور همزمان یا موازی انجام می شود. پردازش ممکن است به شدت شامل شود سطح پایین، اجزای غیر نمادین، مانند مواردی که در ... ... فرهنگ لغتدر روانشناسی

      پردازش خط لوله موازی- lygiagretusis konvejerinis apdorojimas statusas T sritis radioelektronika atitikmenys: angl. خط لوله موازی vok. Pipelineverarbeitung موازی، f rus. پردازش خط لوله موازی، f pranc. Traitement de Pipeline Parallèle، m… پایانه های رادیوالکترونیک

      پردازش همزمان- پردازش موازی - [L.G. Sumenko. فرهنگ لغت انگلیسی روسی فناوری اطلاعات. M.: GP TsNIIS، 2003.] موضوعات فناوری اطلاعاتبه طور کلی مترادف پردازش موازی EN پردازش همزمان ... کتابچه راهنمای مترجم فنی

    کتاب ها

    • پردازش موازی داده ها
    • پردازش داده های موازی، A. O. Latsis. که در راهنمای مطالعهیک بررسی سیستماتیک عمیق از فناوری‌ها برای پردازش موازی داده ارائه شده است. تمرکز بر سنتی است فناوری های نرم افزاریبرنامه نویسی موازی ...

    وزارت آموزش و پرورش و علوم فدراسیون روسیه

    آژانس فدرال آموزش

    دانشگاه فنی دولتی روسیه جنوبی

    (موسسه پلی تکنیک نووچرکاسک)

    موسسه شاختی (شعبه) SRSTU (NPI)

    سخنرانی در مورد نظم و انضباط

    "محاسبات موازی"

    معادن - 2010

    معرفی

    مفاهیم اساسی

    1. مسائل کلیحل "مشکلات بزرگ"

    1.1 مشکلات مدرن علم و فناوری که برای حل آنها به ابر رایانه نیاز است

    1.2.2 مدل های انتزاعی محاسبات موازی

    1.2.3 روش های پردازش موازی داده ها، خطای محاسباتی

    1.3 مفهوم فرآیند موازی و گرانول های موازی سازی

    1.4 تعامل فرآیندهای موازی، همگام سازی فرآیندها

    1.5 شتاب احتمالی در محاسبات موازی (قانون آمدال)

    2. اصول ساخت سیستم های محاسباتی چند پردازنده ای

    2.1 معماری سیستم های محاسباتی چند پردازنده ای

    2.2 توزیع محاسبات و داده ها در چند پردازنده سیستم های محاسباتیحافظه توزیع شده

    2.3 طبقه بندی سیستم های محاسباتی موازی

    2.4 سیستم های محاسباتی چند پردازنده با حافظه توزیع شده

    2.4.1 ابرکامپیوترهای موازی عظیم از سری Cry T3

    2.4.2 سیستم های خوشه ای از کلاس BEOWULF

    نتیجه

    کتابشناسی - فهرست کتب

    معرفی

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

    یکی از روندهای قابل توجه در توسعه بشر، تمایل به مدل سازی فرآیندهای واقعیت اطراف تا حد امکان دقیق به منظور بهبود شرایط زندگی در زمان حال و پیش بینی قابل اطمینان ترین آینده است. روش های ریاضیو تکنیک‌های مدل‌سازی دیجیتال در بسیاری از موارد امکان حل چنین مسائلی را فراهم می‌کنند، اما با گذشت زمان، فناوری حل مشکلات از نظر کمی و کیفی با پیچیدگی جدی مواجه می‌شود. در بسیاری از موارد، محدودیت، کمبود قدرت محاسباتی رایانه‌های الکترونیکی مدرن است، اما اهمیت وظایف در حال حل، منابع مالی عظیمی را در زمینه ایجاد رایانه‌های الکترونیکی فوق پیچیده جذب کرده است.

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

    ایده ترکیب کامپیوترهای الکترونیکی به منظور افزایش بهره وری و قابلیت اطمینان از اواخر دهه پنجاه شناخته شده است.

    الزامات به دست آوردن حداکثر عملکرد با حداقل هزینه منجر به توسعه سیستم های محاسباتی چند پردازنده ای شد. سیستم های شناخته شده ای از این نوع، ترکیبی از قدرت محاسباتی هزاران پردازنده جداگانه. مرحله بعدی تلاش برای ترکیب میلیون ها کامپیوتر ناهمگن سیاره در یک مجتمع محاسباتی واحد با عملکرد عالی از طریق شبکه های اینترنتی. امروزه استفاده از سیستم های محاسباتی موازی یک جهت استراتژیک توسعه است علوم کامپیوتر. توسعه "سخت افزار" لزوماً با بهبود مؤلفه های الگوریتمی و نرم افزاری - فناوری های برنامه نویسی موازی پشتیبانی می شود.

    روش محاسبه موازی سازی برای مدت طولانی وجود داشته است، سازماندهی عملیات مشترک بسیاری از پردازنده های مستقل نیاز به تحقیقات نظری و عملی جدی دارد، بدون آن یک نصب چند پردازنده پیچیده و نسبتاً گران اغلب نه تنها تجاوز نمی کند، بلکه از نظر عملکرد پایین تر است. به یک کامپیوتر سنتی

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

    بیایید به دو سوال اصلی نگاه کنیم:

    1. سیستم های محاسباتی چند پردازنده - (ابر رایانه های موازی انبوه) Cray T3D(E) ​​با تعداد پردازنده از 40 تا 2176. اینها ابررایانه های حافظه توزیع شده بر اساس پردازنده های RISC از نوع Alpha21164A با توپولوژی هستند. شبکه ارتباطی– چنبره سه بعدی، عامل سیستم یونیکسبا میکروکرنل و مترجم برای FORTRAN، HPF، C/C++. مدل های برنامه نویسی پشتیبانی شده: MPI، PVM، HPF.

    2. خوشه های Beowulf از ایستگاه های کاری. خوشه های ایستگاه های کاری مجموعه ای از ایستگاه های کاری هستند که به یک شبکه محلی متصل هستند. Cluster یک سیستم محاسباتی با حافظه توزیع شده و کنترل توزیع شده است. یک سیستم خوشه ای می تواند عملکردی قابل مقایسه با ابررایانه ها داشته باشد. خوشه های ایستگاه های کاری معمولاً خوشه های Beowulf (خوشه Beowulf - طبق پروژه ای به همین نام) نامیده می شوند که توسط یک محلی به هم متصل می شوند. شبکه اترنتو از سیستم عامل لینوکس استفاده کنید.

    مفاهیم اساسی

    رایج ترین فناوری برنامه نویسی برای سیستم های خوشه ای و کامپیوترهای موازیبا حافظه توزیع شده در حال حاضر فناوری MPI است. راه اصلی تعامل فرآیندهای موازی در این گونه سیستم ها، انتقال پیام به یکدیگر است. این در نام این فناوری - Message Passing Interface (واسط عبور پیام) منعکس شده است. استاندارد MPI رابطی را اصلاح می کند که باید هم توسط سیستم برنامه نویسی در هر پلت فرم محاسباتی و هم توسط کاربر هنگام ایجاد برنامه های خود رعایت شود. MPI از کار با زبان های Fortran و C پشتیبانی می کند. نسخه کامل رابط شامل توضیحات بیش از 125 رویه و عملکرد است.

    رابط MPI از ایجاد برنامه های موازی به سبک MIMD (Multiple Instruction Multiple Data) پشتیبانی می کند، که دلالت بر ارتباط فرآیندها با متون منبع مختلف دارد. با این حال، نوشتن و اشکال زدایی چنین برنامه هایی بسیار دشوار است، بنابراین، در عمل، برنامه نویسان اغلب از مدل برنامه نویسی موازی SPMD (Single Program Multiple Data) استفاده می کنند، که در آن کد یکسان برای همه فرآیندهای موازی استفاده می شود. در حال حاضر تعداد بیشتری از پیاده سازی های MPI از اصطلاحاً "رشته ها" پشتیبانی می کنند.

    از آنجایی که MPI یک کتابخانه است، هنگام کامپایل یک برنامه لازم است که ماژول های کتابخانه مناسب را پیوند دهید.

    پس از به دست آوردن فایل اجرایی، باید آن را روی تعداد مورد نیاز پردازنده اجرا کنید. پس از راه اندازی، همان برنامه توسط تمام فرآیندهای در حال اجرا اجرا می شود، نتیجه اجرا، بسته به سیستم، در ترمینال نمایش داده می شود یا در یک فایل نوشته می شود.

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

    برای بومی سازی تعامل فرآیندهای موازی برنامه، می توانید گروه هایی از فرآیندها را ایجاد کنید و برای آنها یک محیط جداگانه برای ارتباط - یک ارتباط برقرار کنید. ترکیب گروه های تشکیل شده خودسرانه است. گروه ها می توانند کاملاً منطبق شوند، وارد یکدیگر شوند، نه اینکه قطع یا قطع شوند. فرآیندها فقط در یک ارتباط دهنده خاص می توانند تعامل داشته باشند؛ پیام های ارسال شده در ارتباط دهنده های مختلف با یکدیگر همپوشانی ندارند و تداخلی با یکدیگر ندارند. ارتباط دهنده ها دارای نوع عدد صحیح در Fortran هستند (در C، نوع از پیش تعریف شده MPI Comm).

    هنگام شروع یک برنامه، همیشه فرض می شود که تمام فرآیندهای فرزند در چارچوب یک ارتباط دهنده جامع اجرا می شوند. این ارتباط دهنده همیشه وجود دارد و برای تعامل همه خدمت می کند فرآیندهای در حال اجرابرنامه های MPI تمام فعل و انفعالات فرآیندی در یک ارتباط دهنده خاص صورت می گیرد؛ پیام های ارسال شده در ارتباط دهنده های مختلف به هیچ وجه با یکدیگر تداخل ندارند.

    پردازنده های مجموعه دستورات کاهش یافته (RISC). در قلب معماری RISC (RISC - Reduced Instruction Set Computer) این پردازنده ایده افزایش سرعت آن با ساده کردن مجموعه دستورالعمل است.

    مطالعات نشان داده است که 33 درصد از دستورالعمل ها در یک برنامه معمولی انتقال داده، 20 درصد شاخه های شرطی و 16 درصد دیگر به صورت حسابی و حسابی هستند. عملیات منطقی. در اکثریت قریب به اتفاق دستورالعمل ها، محاسبه آدرس را می توان به سرعت، در یک چرخه انجام داد. حالت های آدرس دهی پیچیده تر در حدود 18 درصد موارد استفاده می شود. حدود 75 درصد از عملوندها اسکالر هستند، یعنی متغیرهای عدد صحیح، واقعی، نوع کاراکتر و غیره و بقیه آرایه ها و ساختارها هستند. 80 درصد متغیرهای اسکالر محلی و 90 درصد متغیرهای ساختاری جهانی هستند. بنابراین، اکثر عملوندها عملوندهای محلی از انواع اسکالر هستند. آنها را می توان در رجیسترها ذخیره کرد.

    طبق آمار، بیشتر زمان صرف پردازش عبارت های «تلفن زیر روال» و «بازگشت زیر روال» می شود. هنگامی که کامپایل می شوند، این عبارات توالی طولانی از دستورالعمل های ماشین را با تعداد زیادی دسترسی به حافظه تولید می کنند، بنابراین حتی اگر سهم این عبارات فقط 15٪ باشد، بخش عمده ای از زمان پردازنده را مصرف می کنند. فقط حدود 1% از روتین ها بیش از شش پارامتر دارند و حدود 7% روتین ها بیش از شش متغیر محلی دارند.

    در نتیجه مطالعه این آمار به این نتیجه رسید که در برنامه معمولیعملیات ساده غالب است: محاسبات، منطقی و انتقال داده. تحت سلطه و حالت های سادهخطاب به. اکثر عملوندها متغیرهای محلی اسکالر هستند. یکی از مهمترین منابع برای بهبود عملکرد، بهینه سازی این اپراتورها است.

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

    اجرای دستورات پیچیده توسط پردازنده RISC بیشتر طول می کشد، اما تعداد آنها نسبتاً کم است. در پردازنده های RISC تعداد کمی دستورالعمل به حافظه خطاب می شود. واکشی داده از RAM به بیش از یک چرخه ساعت نیاز دارد. بیشتر دستورالعمل ها با عملوندهای موجود در ثبات ها کار می کنند. همه دستورات دارای فرمت یکپارچه و طول ثابت هستند. این کار بارگیری و رمزگشایی دستورالعمل ها را ساده و سرعت می بخشد زیرا برای مثال، کد opcode و فیلد آدرس همیشه در یک موقعیت قرار دارند. متغیرها و نتایج میانی محاسبات را می توان در رجیسترها ذخیره کرد. با توجه به آمار استفاده از متغیرها، اکثر متغیرهای محلی و پارامترهای رویه را می توان در ثبات ها قرار داد. هنگامی که یک رویه جدید فراخوانی می شود، محتویات رجیسترها معمولاً به حافظه اصلی منتقل می شوند، اما اگر تعداد ثبات ها به اندازه کافی زیاد باشد، می توان با جایگزین کردن آنها با آنها از بخش قابل توجهی از عملیات تبادل حافظه زمان بر جلوگیری کرد. ثبت عملیات به لطف معماری ساده شده پردازنده RISC، روی تراشه فضایی برای جا دادن وجود دارد مجموعه اضافیثبت می کند.

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

    1. مسائل کلی حل «مشکلات بزرگ»

    اصطلاح "وظایف بزرگ" معمولاً به عنوان مشکلاتی درک می شود که حل آنها نه تنها نیاز به ساخت و ساز پیچیده دارد مدل های ریاضی، بلکه انجام تعداد زیادی محاسبات، مرتبه های بزرگی بیشتر از مشخصه های رایانه های الکترونیکی قابل برنامه ریزی. در اینجا، کامپیوترهای الکترونیکی با منابع مناسب - اندازه عملیاتی و حافظه خارجی، سرعت خطوط انتقال اطلاعات و غیره

    حد بالایی تعداد محاسبات برای "وظایف بزرگ" فقط با عملکرد موجود تعیین می شود. این لحظهسیستم های محاسباتی هنگام "اجرا" مشکلات محاسباتی در شرایط واقعیسؤال «اصلاً مشکل را حل کنید» نیست، بلکه «آن را در زمان قابل قبولی حل کنید» (ساعت/ده‌ها ساعت).

    1.1. مشکلات مدرن علم و فناوری که نیاز دارد

    برای حل ابر رایانه ها

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

    مدل‌سازی فرآیندهای واقعیت پیرامون هم با هدف بهبود شرایط زندگی در زمان حال و هم پیش‌بینی مطمئن آینده یکی از روندهای توسعه بشر است. روش‌ها و تکنیک‌های ریاضی مدل‌سازی دیجیتال در بسیاری از موارد امکان حل چنین مسائلی را می‌دهد، اما با گذشت زمان، فناوری حل چنین مسائلی پیچیده‌تر می‌شود. در بسیاری از موارد، محدودیت، کمبود قدرت محاسباتی کامپیوترهای الکترونیکی مدرن است.

    الزامات به دست آوردن حداکثر عملکرد با حداقل هزینه منجر به توسعه سیستم های محاسباتی چند پردازنده ای شد. سیستم های شناخته شده ای از این نوع، ترکیبی از قدرت محاسباتی هزاران پردازنده جداگانه.

    در زیر برخی از حوزه‌های فعالیت انسانی که برای حل آنها به نیروی ابررایانه با استفاده از محاسبات موازی نیاز دارند آورده شده است:

    پیش بینی آب و هوا، آب و هوا و تغییرات جهانی در جو

    علوم مواد

    ساخت دستگاه های نیمه هادی

    ابررسانایی

    توسعه داروسازی

    ژنتیک انسانی

    ستاره شناسی

    مشکلات حمل و نقل در ابعاد بزرگ

    دینامیک هیدرو و گاز

    همجوشی حرارتی کنترل شده

    اکتشاف نفت و گاز

    مسائل محاسباتی علوم اقیانوسی

    تشخیص و ترکیب گفتار، تشخیص تصویر

    یکی از جدی ترین وظایف، مدل سازی سیستم آب و هوا و پیش بینی آب و هوا است. در این حالت معادلات دینامیک یک محیط پیوسته و معادلات ترمودینامیک تعادل به طور مشترک عددی حل می شوند. برای شبیه سازی توسعه فرآیندهای جوی در طول 100 سال و تعداد عناصر گسسته 2.6 × 106 (شبکه ای با پله 10 در عرض و طول جغرافیایی در کل سطح سیاره با 20 لایه در ارتفاع، وضعیت هر عنصر است. با 10 جزء توصیف می شود) در هر زمان، وضعیت جو زمین با اعداد 2.6×107 توصیف می شود. با یک مرحله نمونه برداری زمانی 10 دقیقه، لازم است 5 × 104 مجموعه برای بازه زمانی شبیه سازی شده تعیین شود (یعنی 1014 مقدار عددی مورد نیاز محاسبات میانی). هنگام تخمین تعداد عملیات محاسباتی مورد نیاز برای به دست آوردن هر نتیجه میانی در 102÷103، تعداد کل محاسبات ممیز شناور مورد نیاز برای یک آزمایش عددی با مدل اتمسفر جهانی به 1016÷1017 می رسد.

    یک ابر رایانه با عملکرد 1012 عملیات در ثانیه در حالت ایده آل (بار کامل و الگوریتم سازی کارآمد) چنین آزمایشی را برای چندین ساعت انجام می دهد. برای فرآیند کاملشبیه سازی به اجرای چندگانه (ده ها/صدها بار) برنامه نیاز دارد.

    مشکل ابررایانه ها به قدری مهم است که بسیاری از کشورها بر کار در زمینه فناوری های ابررایانه نظارت دارند.

    حمایت های دولتی ارتباط مستقیمی با این واقعیت دارد که استقلال در زمینه تولید و استفاده از فناوری رایانه ای به نفع امنیت ملی است و توان علمی کشور به طور مستقیم به سطح توسعه رایانه بستگی دارد و تا حد زیادی با آن تعیین می شود. فناوری و نرم افزارهای ریاضی

    برای هدف عینی بودن در مقایسه، عملکرد رایانه های فوق الکترونیکی بر اساس اجرای یک کار آزمایشی شناخته شده قبلی ("معیار"، از معیار انگلیسی) محاسبه می شود. اوج عملکرد با حداکثر تعداد عملیاتی که می توان در یک واحد زمان انجام داد و در غیاب پیوند بین آنها تعیین می شود دستگاه های کاربردی، قابلیت های بالقوه سخت افزار را مشخص می کند و به برنامه در حال اجرا بستگی ندارد.

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

    لازم به ذکر است که استدلال هایی علیه کاربرد عملی گسترده محاسبات موازی وجود دارد:

    سیستم های محاسباتی موازی بسیار گران هستند. بر اساس قانون گروش، که توسط عمل تأیید شده است، عملکرد یک رایانه متناسب با مجذور هزینه آن افزایش می یابد. در نتیجه، به دست آوردن مورد نیاز بسیار سودآورتر است قدرت پردازشخرید یک پردازنده با کارایی بالا نسبت به استفاده از چندین پردازنده با عملکرد کندتر.

    ضد استدلال. افزایش سرعت رایانه های الکترونیکی متوالی نمی تواند به طور نامحدود ادامه یابد، رایانه ها به سرعت در معرض منسوخ شدن هستند و هزینه های مالی مکرر برای خرید مدل های جدید مورد نیاز است. تمرین ایجاد سیستم های محاسباتی موازی کلاس Beowulf کارایی این مسیر خاص را به وضوح نشان داده است.

    هنگام سازماندهی موازی، تلفات عملکرد به سرعت غیر ضروری رشد می کند. طبق فرضیه مینسکی (ماروین مینسکی)، شتاب محاسباتی که هنگام استفاده از یک سیستم موازی به دست می‌آید، متناسب با لگاریتم دودویی تعداد پردازنده‌ها است (با 1000 پردازنده، شتاب ممکن فقط 10 است).

    ضد استدلال. تخمین افزایش سرعت داده شده برای موازی سازی الگوریتم های خاص صحیح است. با این حال، تعداد زیادی کار وجود دارد، که راه حل موازی آنها به استفاده نزدیک به 100٪ از تمام پردازنده های موجود در یک سیستم محاسباتی موازی دست می یابد.

    کامپیوترهای سریال دائما در حال بهبود هستند. طبق قانون معروف مور، پیچیدگی ریزپردازنده های سریال هر 18 ماه دو برابر می شود، بنابراین می توان عملکرد لازم را در رایانه های سریال "عادی" به دست آورد.

    ضد استدلال. توسعه مشابه مشخصه سیستم های موازی است.

    با این حال، استفاده از موازی سازی به شما امکان می دهد بدون انتظار برای توسعه پردازنده های جدید سریع تر، شتاب لازم را در محاسبات به دست آورید. کارایی موازی سازی به شدت به ویژگی های مشخصه سیستم های موازی وابسته است. تمام کامپیوترهای الکترونیکی متوالی مدرن مطابق با طرح کلاسیک فون نویمان عمل می کنند. سیستم های موازی با تنوع قابل توجهی از معماری متمایز می شوند و حداکثر تأثیر استفاده از موازی سازی را می توان با استفاده کامل از تمام ویژگی های سخت افزار به دست آورد (پیامد آن انتقال الگوریتم ها و برنامه های موازی بین انواع متفاوتسیستم ها سخت و گاهی غیر ممکن است).

    ضد استدلال. با تنوع واقعی معماری های سیستم های موازی، راه های "تثبیت شده" خاصی برای اطمینان از موازی بودن وجود دارد. عدم تغییر نرم افزار ایجاد شده با استفاده از استاندارد تضمین می شود ابزارهای نرم افزاریپشتیبانی از محاسبات موازی (کتابخانه های نرم افزاری PVM، MPI، DVM، و غیره). PVM و MPI در ابررایانه های Cray-T3 استفاده می شوند.

    در طول دهه‌های کارکرد رایانه‌های الکترونیکی سریال، نرم‌افزار عظیمی انباشته شده است که بر رایانه‌های الکترونیکی متوالی متمرکز شده است. پردازش آن برای کامپیوترهای موازی عملا غیر واقعی است.

    ضد استدلال. اگر این برنامه ها راه حلی برای وظایف تعیین شده ارائه می دهند، پس پردازش آنها اصلاً مورد نیاز نیست. اما اگر برنامه‌های متوالی امکان دستیابی به راه‌حل مسائل را در زمان قابل قبولی نداشته باشند یا نیاز به حل مسائل جدید باشد، توسعه نرم‌افزار جدید ضروری است و در ابتدا می‌توان آن را به صورت موازی پیاده‌سازی کرد.

    محدودیتی در شتاب محاسبه با اجرای موازی الگوریتم در مقایسه با الگوریتم متوالی وجود دارد.

    ضد استدلال. در واقع، الگوریتم هایی بدون سهم (مشخص). محاسبات متوالیوجود ندارد. با این حال، این یک ویژگی الگوریتم است و به طور کلی ربطی به امکان حل موازی مسئله ندارد. یادگیری نحوه به کارگیری الگوریتم های جدید که برای حل مسائل در سیستم های موازی مناسب تر هستند، ضروری است.

    بنابراین، برای هر ملاحظه انتقادی در برابر استفاده از موازی فن آوری های محاسباتییک ضد استدلال کم و بیش قابل توجه وجود دارد.

    1.2 پردازش موازی داده ها

    1.2.1 امکان اصلی پردازش موازی

    تقریباً تمام الگوریتم‌های توسعه‌یافته تا به امروز متوالی هستند. به عنوان مثال، هنگام ارزیابی عبارت a + b × c، ابتدا باید ضرب را انجام دهید و فقط سپس جمع را انجام دهید. اگر در رایانه های الکترونیکی گره های جمع و ضرب وجود دارد که می توانند به طور همزمان کار کنند، پس در این موردگره جمع بیکار خواهد ماند و منتظر می ماند تا گره ضرب کار خود را کامل کند. می توان این ادعا را اثبات کرد که می توان ماشینی ساخت که یک الگوریتم معین را به صورت موازی پردازش کند.

    می توان m پردازنده هایی ساخت که با اجرای همزمان، تولید کنند نتیجه مطلوببرای یک چرخه ساعت از ماشین حساب.

    چنین ماشین‌های «چند پردازنده‌ای» از نظر تئوری می‌توانند برای هر الگوریتم خاص ساخته شوند و به نظر می‌رسد ماهیت متوالی الگوریتم‌ها را «دور می‌زنند». با این حال، همه چیز به این سادگی نیست - بی نهایت الگوریتم های خاص وجود دارد، بنابراین استدلال انتزاعی توسعه یافته در بالا به طور مستقیم با اهمیت عملی مرتبط نیست. توسعه آنها با متقاعد شدن به امکان موازی سازی، اساس مفهوم موازی سازی نامحدود بود، و این امکان را فراهم کرد که از یک موقعیت کلی اجرای به اصطلاح محیط های محاسباتی - سیستم های چند پردازنده ای که به صورت پویا به یک الگوریتم خاص تنظیم می شوند، در نظر بگیریم.

    1.2.2. مدل های انتزاعی محاسبات موازی

    مدل محاسبات موازی یک رویکرد سطح بالا برای توصیف و مقایسه زمان اجرا ارائه می دهد برنامه های مختلف، در حالی که جزئیات سخت افزار و اجرا را انتزاع می کند. اولین مدل مهم محاسبات موازی، ماشین دسترسی تصادفی موازی (PRAM - Parallel Random Access Machine) بود که انتزاعی از یک ماشین حافظه مشترک را ارائه می دهد (PRAM توسعه ماشین دسترسی تصادفی متوالی مدل RAM - ماشین دسترسی تصادفی است). مدل موازی همزمان انبوه (BSP) انتزاعات حافظه مشترک و توزیع شده را ترکیب می کند. همه پردازنده ها برای اجرای همزمان دستورالعمل ها در نظر گرفته می شوند. در صورت اجرای یک دستورالعمل، PRAM یک ماشین SIMD انتزاعی است، (SIMD - جریان دستورالعمل واحد / جریان چندگانه داده - یک جریان دستورالعمل واحد همراه با یک جریان داده چندگانه)، با این حال، پردازنده ها نیز می توانند اجرا کنند. تیم های مختلف. دستورات اصلیخواندن از حافظه، نوشتن به حافظه و عملیات معمول منطقی و حسابی است.

    مدل PRAM به این معنا ایده آل شده است که هر پردازنده می تواند در هر زمان معینی به هر مکان حافظه دسترسی داشته باشد (عملیات نوشتن که توسط یک پردازنده انجام می شود برای همه پردازنده های دیگر به ترتیبی که انجام شده قابل مشاهده است، اما عملیات نوشتن توسط پردازنده های مختلف، به هر ترتیبی قابل مشاهده است). به عنوان مثال، هر پردازنده در PRAM می تواند داده ها را از یک مکان حافظه بخواند یا داده ها را در آن مکان بنویسد. البته، این اتفاق در ماشین‌های موازی واقعی نمی‌افتد، زیرا ماژول‌های حافظه در سطح فیزیکی به سلول‌های حافظه مشابه دسترسی دارند. علاوه بر این، زمان دسترسی به حافظه در ماشین های واقعی به دلیل وجود کش ها و سازماندهی سلسله مراتبی احتمالی ماژول های حافظه یکسان نیست.

    مدل پایه PRAM از خواندن و نوشتن همزمان (در این زمینه موازی) پشتیبانی می کند. مدل‌های فرعی PRAM شناخته شده‌اند که قوانینی را در نظر می‌گیرند که اجازه می‌دهد از موقعیت‌های تضاد در زمانی که چندین پردازنده به یک حافظه مشترک دسترسی دارند، اجتناب شود.

    مدل‌سازی مدارها از عناصر عملکردی با استفاده از ماشین‌های دسترسی تصادفی موازی (PRAM) قضیه برنت را اجازه می‌دهد. به عنوان عناصر عملکردی، می توان 4 عنصر اصلی (انجام عملیات منطقی NOT، AND، OR، XOR - نفی، منطقی AND، منطقی OR و OR انحصاری، به ترتیب)، NAND و NOR پیچیده تر (AND-NOT و OR-NOT) وجود داشته باشد. ، بنابراین و هر پیچیدگی.

    در ادامه، فرض بر این است که تاخیر (یعنی زمان پاسخ - زمانی که پس از تنظیم مقادیر در ورودی‌ها، مقادیر سیگنال ارائه شده در خروجی عنصر ظاهر می‌شوند) برای همه عملکردها یکسان است. عناصر.

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

    شکل 1. شبیه سازی مدار اندازه 15، عمق 5 با دو پردازنده با استفاده از ماشین دسترسی تصادفی موازی (PRAM - machine)

    شکل 1 نتیجه مدل سازی مدار با اندازه (تعداد کل پردازنده) n=15 با عمق مدار (حداکثر تعداد عناصر در هر یک از سطوح عمق) d=5 با تعدادی پردازنده p=2 (به طور همزمان عناصر شبیه‌سازی‌شده به‌وسیله مناطق مستطیلی در گروه‌هایی ترکیب می‌شوند و برای هر گروه با مرحله‌ای که در آن عناصر آن مدل‌سازی می‌شوند نشان داده می‌شود؛ مدل‌سازی به ترتیب از بالا به پایین به ترتیب افزایش عمق، در هر عمق p قطعه در یک زمان انجام می‌شود. بر اساس قضیه برنت، مدلسازی چنین مداری بیش از 9 مرحله ceil(15/2+1) طول نخواهد کشید.

    1.2.3. راه های پردازش داده های موازی، خطای محاسباتی

    حالت های زیر برای اجرای بخش های مستقل برنامه امکان پذیر است:

    اجرای موازی - چندین دستور پردازش داده به طور همزمان اجرا می شوند. این حالت از محاسبات را می توان نه تنها با حضور چندین پردازنده، بلکه با کمک پردازنده های خط لوله و بردار فراهم کرد.

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

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

    به طور رسمی، این لیست همچنین می تواند شامل یک حالت چند وظیفه ای (حالت اشتراک زمانی) باشد که در آن از یک پردازنده برای اجرای فرآیندها استفاده می شود. در این حالت، اشکال زدایی برنامه های موازی راحت است.

    دو روش برای پردازش موازی داده ها وجود دارد: موازی سازی و خط لوله.

    موازی سازی دلالت بر حضور p دستگاه های یکسان برای پردازش داده ها و الگوریتمی دارد که به هر کدام اجازه می دهد تا بخشی مستقل از محاسبه را انجام دهند، در پایان پردازش، داده های جزئی با هم جمع آوری می شوند تا نتیجه نهایی را به دست آورند. در این حالت، شتاب فرآیند را p برابر می کنیم. همه الگوریتم‌ها را نمی‌توان با موفقیت به این روش موازی‌سازی کرد (یک شرط طبیعی برای موازی‌سازی، محاسبه بخش‌های مستقل داده‌های خروجی با استفاده از رویه‌های یکسان یا مشابه است؛ علت تکرار یا بازگشتی بزرگترین مشکلاتدر طول موازی سازی).

    ایده پردازش خط لوله جدا کردن مراحل جداگانه اجرای یک عملیات مشترک است و هر مرحله پس از اتمام کار خود، نتیجه را به مرحله بعدی منتقل می کند و همزمان بخش جدیدی از داده های ورودی را می پذیرد. هر مرحله پردازش توسط بخش خاص خود از دستگاه پردازش داده انجام می شود (مرحله نقاله)، هر مرحله یک عمل خاص (عملیات میکرو) را انجام می دهد. پردازش عمومی داده ها مستلزم این است که این بخش ها به صورت متوالی عمل کنند.

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

    تسریع محاسبات با استفاده از تمام مراحل خط لوله برای پردازش داده های جریانی به دست می آید (داده ها به ورودی خط لوله جریان می یابند و در تمام مراحل به صورت متوالی پردازش می شوند). خطوط لوله می توانند دستگاه های اسکالر یا برداری باشند (تنها تفاوت این است که در مورد دوم می توان از بردارهای پردازش دستورالعمل استفاده کرد). در مورد طول خط لوله l، زمان پردازش برای n عملیات مستقل l+n-1 خواهد بود (هر مرحله در واحد زمان عمل می کند). هنگام استفاده از چنین دستگاهی، پردازش یک بخش از داده‌های ورودی به زمان l × n نیاز دارد و فقط برای مجموعه‌ای از بخش‌ها، سرعت محاسباتی نزدیک به l به دست می‌آوریم.

    شکل 2 نشان می دهد که عملکرد E دستگاه نوار نقاله به طور مجانبی با طول n مجموعه داده در ورودی آن رشد می کند و به حداکثر عملکرد نظری 1/τ تمایل دارد.

    شکل 2. عملکرد دستگاه خط لوله به عنوان تابعی از طول مجموعه داده ورودی

    1.3. مفهوم فرآیند موازی و گرانول های موازی سازی

    کلی ترین طرح برای انجام محاسبات سریال و موازی در شکل 3 نشان داده شده است (زمان S و E به ترتیب ابتدا و انتهای کار هستند).

    شکل 3. نمودارهای اجرای فرآیندها در محاسبات متوالی - الف)، با موازی سازی نزدیک به ایده آل - ب) و در حالت کلی موازی سازی - ج)

    یک فرآیند، دنباله خاصی از دستورات است که همراه با سایر فرآیندها، ادعا می کند که از پردازنده برای اجرای آنها استفاده می کند. دستورات (دستورالعمل ها) در داخل فرآیند به صورت متوالی اجرا می شوند، موازی سازی داخلی در نظر گرفته نمی شود.

    در شکل 3 خطوط نازک اقدامات ایجاد فرآیندها و تبادل داده بین آنها را نشان می دهد، خطوط ضخیم اجرای واقعی فرآیندها را نشان می دهد (محور آبسیسا زمان است). در مورد محاسبات متوالی، یک فرآیند واحد ایجاد می شود (شکل 3a) که اقدامات لازم را انجام می دهد. هنگامی که الگوریتم به صورت موازی اجرا می شود، چندین فرآیند (شاخه های موازی کار) مورد نیاز است. در حالت ایده آل، همه فرآیندها به طور همزمان ایجاد می شوند و به طور همزمان خاتمه می یابند (شکل 3b)، در حالت کلی، نمودار فرآیند بسیار پیچیده تر است و نوعی نمودار است (شکل 3c).

    طول مشخصه یک گروه از دستورالعمل‌ها که به صورت متوالی اجرا می‌شوند در هر یک از فرآیندهای موازی، اندازه گرانول (دانه) نامیده می‌شود. در هر صورت، توصیه می شود برای "درشت دانه" تلاش کنید (ایده آل - نمودار 3b). به طور معمول، اندازه یک دانه (گرانول) ده‌ها تا صدها هزار عملیات ماشین است (که مرتبه‌ای بزرگتر از اندازه معمولی یک اپراتور Fortran یا C/C++ است). بسته به اندازه گرانول ها، از موازی ریزدانه و درشت دانه صحبت می شود.

    اندازه گرانول نیز تحت تأثیر راحتی برنامه نویسی قرار می گیرد - در قالب یک گرانول، اغلب یک قطعه منطقی کامل از برنامه ترسیم می شود. توصیه می شود برای بارگذاری یکنواخت پردازنده ها تلاش کنید.

    توسعه برنامه های موازی به دلیل دشواری تشخیص موازی سازی (معمولاً پنهان) در یک برنامه (یعنی شناسایی بخش هایی از یک الگوریتم که می توانند مستقل از یکدیگر اجرا شوند) کار دشواری است.

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

    زوج ساده ترین مدلمحاسبات موازی یک شرایط مهم را نشان می دهد - زمان تبادل داده ها باید تا حد امکان کوتاه باشد زمان اجرای دنباله دستوراتی که گرانول را تشکیل می دهند.

    برای مسائل واقعی (به طور سنتی) اندازه مشخصه یک دانه موازی سازی چندین مرتبه بزرگتر از اندازه مشخصه یک عملگر در یک زبان برنامه نویسی سنتی (C/C++ یا Fortran) است.

    1.4. تعامل فرآیندهای موازی، همگام سازی فرآیندها

    اجرای دستورات برنامه یک فرآیند محاسباتی را تشکیل می دهد، در مورد اجرای چندین برنامه در حافظه مشترک یا اشتراکی و تبادل این برنامه ها با پیام ها، مرسوم است که از سیستمی از فرآیندهای متقابل جریان مشترک صحبت شود.

    تخم ریزی و از بین بردن فرآیندهای مشابه یونیکس سیستم های عاملتوسط اپراتورها (تماس های سیستمی) اجرا می شوند.

    موازی سازی اغلب در قالب دستورات کلان توصیف می شود؛ در زبان های موازی، شاخه های موازی با استفاده از دستور JOIN شروع می شوند.

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

    همگام سازی است به روشی کارآمدجلوگیری از موقعیت های "بن بست" - وضعیتی که هر یک از فرآیندهای تعاملی بخشی از منابع مورد نیاز خود را در اختیار دارند، اما نه آن و نه سایر فرآیندها منابع کافی برای تکمیل پردازش و متعاقباً آزادسازی منابع را ندارند.

    سیستم های برنامه نویسی موازی از تکنیک های همگام سازی سطح بالا استفاده می کنند. فناوری برنامه نویسی موازی MPI از طرحی برای همگام سازی تبادل اطلاعات بین فرآیندها استفاده می کند.

    همگام‌سازی را می‌توان توسط سخت‌افزار نیز پشتیبانی کرد (به عنوان مثال، همگام‌سازی مانع در ابررایانه Cray T3، که با کمک آن همه فرآیندها منتظر نقطه خاصی در برنامه هستند، پس از رسیدن به آن کار بیشتر امکان‌پذیر است.

    1.5. شتاب احتمالی در محاسبات موازی (قانون آمدال)

    با در نظر گرفتن میزان افزایش احتمالی بهره‌وری، بسیار جالب است ویژگی های کیفیاز خود برنامه ترتیبی اصلی.

    شکل 4. طرحی برای اشتقاق قانون امدال

    قانون آمدال (1967) سرعت بالقوه محاسبات را به صورت موازی به نسبت عملیات انجام شده به صورت پیشینی به ترتیب مرتبط می کند. اجازه دهید f(0

    هنگام انتقال الگوریتم به ماشین موازی، زمان محاسبه به صورت زیر توزیع می شود:

    f×ts زمان اجرای بخشی از الگوریتم است که نمی توان آن را موازی کرد.

    · (1-f)×ts/n - زمان صرف شده برای اجرای بخش موازی شده الگوریتم.

    زمان t p مورد نیاز برای محاسبه در یک ماشین موازی با n پردازنده است

    t p =f×ts+(1-f)×ts/n.

    شتاب زمان محاسبه با نسبت کمی از عملیات متوالی (f<<1) возможно достичь (не более чем в n раз) ускорения вычислений.

    در مورد f=0.5، رسیدن به S>2 برای هر تعداد پردازنده غیرممکن است! توجه داشته باشید که این محدودیت‌ها اساسی هستند (برای یک الگوریتم مشخص نمی‌توان آنها را دور زد)، اما تخمین عملی کسری f از عملیات‌های متوالی معمولاً غیرممکن است.

    بنابراین، ویژگی های کیفی خود الگوریتم محدودیت هایی را بر شتاب احتمالی در طول موازی سازی تحمیل می کند. به عنوان مثال، الگوریتم‌های محاسباتی با فرمول‌های متوالی، که برای محاسبات مهندسی معمول هستند، موازی‌سازی ضعیفی دارند (قسمت f قابل توجه است)، در حالی که الگوریتم‌هایی که به مسائل برنامه‌ریزی خطی کاهش می‌یابند به طور رضایت‌بخشی موازی می‌شوند.

    تخمین کسری از عملیات متوالی f a priori آسان نیست. با این حال، می توان سعی کرد به طور رسمی از قانون آمدال برای حل مشکل معکوس تعیین f از داده های عملکرد تجربی استفاده کرد. این امکان کمی سازی کارایی به دست آمده از موازی سازی را فراهم می کند.

    شکل 6. عملکرد یک سیستم خوشه محاسباتی بر روی روش ضرب ماتریس (آزمایش و محاسبه با فرمول Amdahl)

    شکل 6 نتایج آزمایش بر روی خوشه SCI-MAIN مرکز تحقیق و توسعه دانشگاه دولتی مسکو را در مورد مسئله ضرب ماتریس توسط طرح نواری (بعد 103 × 103 اعداد واقعی با دقت دوگانه) نشان می دهد، داده های تجربی در بهترین روش (روش حداقل مربعات استفاده شد) با فرمول Amdahl در f=0.051 مطابقت دارد.

    قانون امدال برای تحلیل کیفی مسئله موازی سازی مناسب است.

    2. اصول ساخت سیستم های محاسباتی چند پردازنده ای

    2.1. معماری سیستم های محاسباتی چند پردازنده ای

    معماری کامپیوترهای موازی تقریباً از همان ابتدای ایجاد و کاربرد آنها و در جهات مختلف در حال توسعه بوده است. کلی ترین مقررات به دو کلاس منتهی می شود - رایانه های دارای حافظه مشترک و رایانه هایی با حافظه توزیع شده. کامپیوترهای با حافظه مشترک از چندین پردازنده تشکیل شده اند که با یک فضای آدرس واحد به حافظه مشترک با اولویت دسترسی دارند (شکل 7a).

    شکل 7. کامپیوترهای موازی:

    الف) حافظه مشترک ب) حافظه توزیع شده

    یک نمونه معمولی از چنین معماری، رایانه های کلاس SMP (Symmetric Multi Processors) است که شامل چندین پردازنده، اما یک حافظه، مجموعه ای از دستگاه های ورودی / خروجی و یک سیستم عامل است. مزیت کامپیوترهای با حافظه مشترک سهولت نسبی برنامه نویسی وظایف موازی است، نقطه ضعف آن عدم مقیاس پذیری است. سیستم‌های SMP واقعی معمولاً شامل بیش از 32 پردازنده نیستند؛ فناوری NUMA برای افزایش بیشتر قدرت محاسباتی چنین سیستم‌هایی استفاده می‌شود.

    در رایانه های دارای حافظه توزیع شده (سیستم های چند رایانه ای)، هر گره محاسباتی یک رایانه تمام عیار است و شامل یک پردازنده، حافظه، دستگاه های ورودی/خروجی، یک سیستم عامل و غیره است (شکل 7b). یک نمونه معمولی از چنین معماری سیستم های کامپیوتری کلاس MPP (پردازش موازی انبوه) است که در آن گره های محاسباتی همگن با کمک یک رسانه ارتباطی خاص ترکیب می شوند. مزیت کامپیوترهای با حافظه توزیع شده مقیاس پذیری (تقریبا نامحدود) است، معایب آن نیاز به استفاده از ابزارهای نرم افزاری تخصصی (کتابخانه های پیام رسانی) برای تبادل اطلاعات بین گره های محاسباتی است. برای سیستم‌های محاسباتی چند پردازنده‌ای با حافظه مشترک و توزیع شده، به ترتیب از اصطلاحات ماشین‌های جفت شده محکم و کوپل شده آزاد استفاده می‌شود.

    همانطور که نشان داده شد، عملکرد کانال های تبادل به شدت بر امکان موازی سازی کارآمد تأثیر می گذارد و این برای هر دو معماری در نظر گرفته شده مهم است. ساده ترین سیستم ارتباطی یک گذرگاه مشترک است (شکل 8a)، که همه پردازنده ها و حافظه را به هم متصل می کند، اما حتی با وجود بیش از چند ده دستگاه در گذرگاه، عملکرد گذرگاه به طور چشمگیری به دلیل تأثیر متقابل و رقابت بین دستگاه ها برای مالکیت انحصاری گذرگاه کاهش می یابد. گذرگاه در حین تبادل داده

    شکل 8. سیستم های چند پردازنده ای

    الف) - با یک اتوبوس مشترک، ب) - با یک سوئیچ ماتریس

    ج) - دارای سوئیچ های آبشاری (شبکه امگا)

    هنگام ساخت سیستم های قدرتمندتر، از رویکردهای پیچیده تری استفاده می شود. یک طرح موثر، سوئیچینگ ماتریسی است (شکل 8b)، که در آن دستگاه ها توسط سوئیچ های دو طرفه به هم متصل می شوند که انتقال اطلاعات بین ماژول های مربوطه را مجاز یا ممنوع می کند. یک جایگزین آبشاری سوئیچ ها است. برای مثال، طبق طرح شبکه امگا (شکل 8c). علاوه بر این، هر سوئیچ می تواند هر یک از دو ورودی خود را به هر یک از دو خروجی خود متصل کند، در این حالت، n × log2n/2 سوئیچ برای اتصال n پردازنده با n بلوک حافظه مورد نیاز است. عیب مدارهای دارای کلیدهای آبشاری تأخیر در عملکرد کلیدها است.

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

    شکل 9. انواع توپولوژی های ارتباطی پردازنده در سیستم های محاسباتی چند پردازنده ای

    ساده ترین توپولوژی خطی (شکل 9a) به طور رضایت بخشی با بسیاری از الگوریتم ها مطابقت دارد که با اتصال فرآیندهای همسایه با یکدیگر مشخص می شوند (مسائل یک بعدی فیزیک ریاضی و چند بعدی، قابل تقلیل به یک بعدی). نقطه ضعف - عدم امکان انتقال پیام در زمان استراحت در هر نقطه. میانگین طول مسیر نصف شده و قابلیت اطمینان ارتباط افزایش می‌یابد (در صورت قطع ارتباط، پیام‌ها می‌توانند در جهت مخالف منتقل شوند، البته با سرعت کمتر)، اتصال اولین گره با آخرین گره به دست می‌آید - توپولوژی "حلقه" به دست می آید (شکل 9b).

    توپولوژی "ستاره" (شکل 9c) حداکثر با توزیع بار بین فرآیندها مطابقت دارد، که برای سیستم های "مشتری/سرور" معمول است (گره اصلی وظایف را "توزیع" می کند و نتایج محاسبات را "جمع آوری" می کند، در حالی که گره های برده تعامل دارند. حداقل با یکدیگر).

    توپولوژی "شبکه" (شکل 9d) در اوایل دهه نود در هنگام ساخت ابررایانه اینتل Paragon بر اساس پردازنده های i860 استفاده شد. یافتن حداقل مسیر انتقال داده بین پردازنده های A و B برای توپولوژی "شبکه سه بعدی" در شکل 10 نشان داده شده است. توپولوژی "توروس دو بعدی" (شکل 9e) "شبکه دو بعدی" را با اتصالات اضافی گسترش می دهد. طول مسیر متوسط ​​را کاهش دهید (البته "چرخه سه بعدی") و مشخصه فناوری شبکه SCI است. کاربردی (شکل 9e) که با وجود ارتباط هر پردازنده با هر توپولوژی "کلیکی" سه بعدی مشخص می شود. شکل 9h یک نمای کلی از توپولوژی اتصال کامل همه پردازنده ها با یکدیگر را نشان می دهد. چنین توپولوژی با کوتاه ترین طول مسیر متوسط ​​بین پردازنده ها مشخص می شود، با این حال، به دلیل افزایش فاجعه بار تعداد پیوندها، عملاً در سخت افزار با تعداد قابل توجهی پردازنده غیرقابل تحقق است.

    توپولوژی "hypercube" (شکل 9i) با کاهش میانگین طول مسیر و نزدیکی به ساختارهای بسیاری از الگوریتم‌های محاسبه عددی مشخص می‌شود که عملکرد بالا را تضمین می‌کند. یک هایپرمکعب N بعدی شامل پردازنده های 2N است. یک هایپرمکعب دوبعدی یک مربع، یک هایپرمکعب سه بعدی یک مکعب منظم و یک هایپرمکعب 4 بعدی یک مکعب در یک مکعب است. برای ابرکامپیوترهای خانواده nCube، یک هایپرمکعب با حداکثر ابعاد 13 شامل 8192 پردازنده است؛ در سیستم nCube 3، تعداد پردازنده ها می تواند به 65536 (هیپرمکعب 16 بعدی) برسد.

    شاخص های زیر اغلب به عنوان ویژگی های اصلی توپولوژی شبکه انتقال داده استفاده می شود:

    شکل 10. یافتن حداقل مسیر برای انتقال پیام ها بین پردازنده ها در توپولوژی "شبکه سه بعدی"

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

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

    عرض تقسیم دودویی یک نشانگر است که به عنوان حداقل تعداد کمان هایی که باید حذف شوند تا شبکه داده به دو ناحیه جدا شده با اندازه یکسان تقسیم شود، تعریف می شود.

    هزینه به عنوان مثال، به عنوان تعداد کل خطوط داده در یک سیستم کامپیوتری چند پردازنده تعریف می شود.

    ترکیب مزایای سیستم ها با حافظه مشترک (سهولت نسبی ایجاد برنامه های موازی) و حافظه توزیع شده (مقیاس پذیری بالا) طبیعی به نظر می رسد. راه حل این موضوع ایجاد رایانه هایی با معماری NUMA (دسترسی به حافظه غیر یکنواخت) بود.

    از این نظر، کامپیوترهای کلاسیک SMP دارای معماری UMA (دسترسی به حافظه یکنواخت) هستند. در این مورد، مکانیزمی استفاده می شود (معمولاً در سطح سخت افزار - که سریعتر است) که به برنامه های کاربر اجازه می دهد تا تمام حافظه (از لحاظ فیزیکی) توزیع شده بین پردازنده ها را به عنوان یک فضای آدرس واحد در نظر بگیرند. نمونه‌هایی از رایانه‌های NUMA، سیستم Cm است که در دهه 1970 ساخته شد و شامل مجموعه‌ای از خوشه‌ها است که توسط یک اتوبوس بین خوشه‌ای به هم متصل شده‌اند و مجموعه پروانه‌ای BBN (1981، BBN Advanced Computers) که 256 پردازنده را ترکیب می‌کند.

    2.2. توزیع محاسبات و داده ها در چند پردازنده
    سیستم های محاسبات حافظه توزیع شده

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

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

    توزیع منطقی داده ها بر روی RAM محلی گره محاسباتی باید با در نظر گرفتن فرکانس دسترسی هر گره محاسباتی به هر بلوک داده واقع در گره های محاسباتی مربوطه انجام شود و در عین حال تلاش برای به حداقل رساندن تعداد مبادلات، که مستلزم تعیین است. ساختار اطلاعات دقیق الگوریتم

    به نظر می‌رسد که در حالت کلی، می‌توان تابعی از پیچیدگی (مثلاً از نظر زمانی) محاسبات ساخت که هم هزینه‌های منابع را برای محاسبات واقعی و هم پیچیدگی مبادلات را در نظر می‌گیرد. توزیع داده شده بر روی گره های محاسباتی و به حداقل رساندن بیشتر این تابع توسط پارامتر (پارامترهای) توزیع داده ها. و خود توزیع ممکن است متغیر باشد. در واقعیت، ساخت چنین تابعی به دلیل نیاز به کمی سازی پارامترهای زمانی برای انجام عملیات و شناسایی پارامترهای بهینه سازی قابل توجه دشوار است. یک نامزد برای نقش چنین عملکردی می تواند، برای مثال، قانون شبکه Amdahl باشد که در بالا توضیح داده شد.

    بسته های استاندارد برای حل مسائل جبر خطی از روش های مبتنی بر تجزیه و تحلیل نظری و تمرین طولانی مدت برای توزیع داده ها بین گره های محاسباتی استفاده می کنند.

    2.3. طبقه بندی سیستم های محاسباتی موازی

    هدف طبقه‌بندی معماری‌های سیستم محاسباتی شناسایی عوامل اصلی مشخص کننده هر معماری و ارتباط ساختارهای محاسباتی موازی است.

    SISD (جریان دستورالعمل واحد / جریان تک داده) - جریان دستورالعمل واحد و جریان داده واحد؛ کلاس SISD شامل ماشین های متوالی کلاسیک (نوع فون نیومن) است. در چنین ماشین هایی، تنها یک جریان از دستورالعمل ها (به صورت متوالی پردازش شده) وجود دارد که هر کدام یک عملیات اسکالر را آغاز می کنند. ماشین آلات با تکنولوژی نوار نقاله نیز در این کلاس قرار می گیرند.

    SIMD (Single Instruction stream / Multiple Data stream) یک جریان دستورالعمل واحد همراه با یک جریان داده چندگانه است. این یک جریان دستورالعمل را ذخیره می کند، اما شامل دستورالعمل های برداری است که یک عملیات حسابی را روی بسیاری از داده ها به طور همزمان انجام می دهد. اجرای عملیات برداری می تواند توسط ماتریسی از پردازنده ها (مانند ماشین ILLIAC IV) یا به صورت خط لوله (Cray-1) انجام شود. در واقع ریزپردازنده های Pentium VI و Xeon با مجموعه دستورالعمل های MMX، SSE، SSE2 سیستم های SIMD تک تراشه ای هستند.

    از کشورهای CIS ، سیستم های SIMD را باید PS-2000 (1972 - 1975) نامید - یک سیستم کامپیوتری بسیار موازی برای پردازش اطلاعات با ظرفیت حداکثر 200 میلیون عملیات در ثانیه.

    MISD (Multiple Instruction stream/Single Data stream) - جریان دستورالعمل های متعدد و جریان تک داده. معماری دلالت بر حضور بسیاری از پردازنده‌ها دارد که جریان داده یکسانی را پردازش می‌کنند. اعتقاد بر این است که چنین ماشین هایی وجود ندارند.

    MIMD (جریان دستورالعمل های چندگانه / جریان داده های چندگانه) - جریان های متعدد از دستورات و داده ها. دو نوع ماشین متعلق به کلاس MIMD هستند: با کنترل از جریان فرمان و کنترل از جریان داده. اگر رایانه های نوع اول از اجرای سنتی دستورات به صورت متوالی در مکان خود در برنامه استفاده کنند، نوع دوم شامل فعال سازی اپراتورهایی است که در حال حاضر آماده هستند.

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

    یک مثال کلاسیک سیستم Denelcor HEP (پردازنده عناصر ناهمگن) است. شامل حداکثر 16 ماژول پردازنده است که از طریق یک سوئیچ چند مرحله ای به 128 ماژول حافظه داده متصل می شوند و همه ماژول های پردازنده می توانند به طور مستقل از یکدیگر با جریان های دستورالعمل خود کار کنند و هر ماژول پردازنده می تواند تا 50 جریان دستورالعمل کاربر را پشتیبانی کند.

    2.4. سیستم های محاسباتی چند پردازنده ای با حافظه توزیع شده

    از دهه آخر قرن بیستم، گرایشی به سمت انحصار معماری ابرکامپیوترها توسط سیستم هایی با حافظه توزیع شده وجود داشته است و دستگاه های آماده و آماده به طور فزاینده ای به عنوان پردازنده در گره های محاسباتی استفاده می شوند. مزایای اصلی چنین سیستم هایی مقیاس پذیری بسیار زیاد است (بسته به کلاس وظایفی که باید حل شوند و بودجه، کاربر می تواند یک سیستم با تعدادی گره از چند ده تا هزار سفارش دهد). که منجر به ظهور نام جدیدی برای سیستم های مورد بررسی شد - کامپیوترهای موازی انبوه (سیستم های محاسباتی معماری MPP - Massively Parallel Processing).

    اولین ابرکامپیوتر با پردازش موازی عظیم، Connection Machine (CM-1) به 64000 پردازنده مجهز شد که هر کدام حافظه مخصوص به خود را داشتند. SM-1 16000 مقاله خبری فوری را در 1/20 ثانیه اسکن کرد. و یک مدار مجتمع پردازنده با 4000 ترانزیستور را در سه دقیقه توسعه داد. نمایندگان محدب سیستم های MPP ابر رایانه های سری Cry T3 هستند.

    Cry T3E (1350) یک سیستم محاسباتی چند پردازنده ای حافظه توزیع شده 2000 است که از پردازنده های RISC ساخته شده است. توپولوژی شبکه ارتباطی یک چنبره سه بعدی است. سیستم عامل UNICOS/mk (سیستم عامل یونیکس با میکروکرنل). مترجم برای FORTRAN، HPF، C/C++. فرکانس ساعت 675 مگاهرتز تعداد پردازنده ها از 40 تا 2176 است. حداکثر مقدار رم برای هر گره 512 مگابایت و حداکثر سرعت 2938 گیفلاپ بر ثانیه است. برخلاف مدل قبلی خود، Cry T3D، این سیستم به کامپیوتر جلویی نیاز ندارد.

    این سیستم از پردازنده Alpha21164A استفاده می کند، با این حال، در صورت لزوم، به راحتی می توان آن را با پردازنده دیگری، به عنوان مثال، یک پردازنده سریعتر جایگزین کرد. هر عنصر پردازشی شامل یک واحد پردازش مرکزی، یک ماژول حافظه و یک گره ارتباطی برای ارتباط با سایر پردازنده ها است. توان عملیاتی کانال ارتباطی بین پردازنده ها 325 مگابایت بر ثانیه است.

    مدل های برنامه نویسی پشتیبانی شده MPI، PVM، HPF، کتابخانه پیام رسانی Cray shmem خود هستند. سرعتی که با حل سیستم های معادلات جبری خطی به دست می آید به 12/1 Tflop/s می رسد.

    MPP - سیستم متشکل از گره های محاسباتی همگن است، از جمله:

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

    حافظه محلی (علاوه بر این، دسترسی مستقیم به حافظه سایر گره ها امکان پذیر نیست)،

    پردازنده ارتباطی (یا آداپتور شبکه)،

    هارد دیسک (اختیاری) و/یا سایر دستگاه های ورودی/خروجی.

    گره های ورودی/خروجی ویژه و گره های کنترلی به سیستم اضافه می شوند. گره های محاسباتی توسط برخی از رسانه های ارتباطی (شبکه پرسرعت، سوئیچ ها و غیره) به هم متصل می شوند.

    تعمیر و نگهداری سیستم های چند پردازنده ای کار آسانی نیست - با وجود صدها/هزار گره محاسباتی، خرابی روزانه چندین مورد از آنها اجتناب ناپذیر است. سیستم مدیریت منابع 5k (مجموعه نرم‌افزار و سخت‌افزار) یک کامپیوتر موازی عظیم باید چنین موقعیت‌هایی را کنترل کند و از راه‌اندازی مجدد فاجعه‌بار عمومی با از دست دادن زمینه وظایف در حال اجرا عبور کند.

    2.4.1. ابرکامپیوترهای موازی انبوه از سری CRY T3

    Cry Research Inc در سال 1972 تاسیس شد. (در حال حاضر Cry Inc.) که به دلیل توسعه ابررایانه بردار Cry 1 مشهور است، در سال های 1993-1995 مدل های Cry T3D/T3E را منتشر کرد که به طور کامل اصل سیستم های موازی گسترده (سیستم های معماری MPP) را اجرا می کند. در حداکثر پیکربندی، این رایانه ها پردازنده های 32 - 2048 DEC Alpha 21064/150 MHz، 21164/600 MHz، 21164A/675 MHz را با هم ترکیب می کنند (بسته به مدل)، کلیه مراحل پیش پردازش و آماده سازی برنامه (مثلاً کامپایل) انجام می شود. در ماشین میزبان (میزبان - کامپیوتر).

    توسعه دهندگان سری Cry T3D/T3E مسیر ایجاد یک حافظه مشترک مجازی را در پیش گرفته اند. هر پردازنده فقط می تواند مستقیماً به حافظه محلی خود دسترسی داشته باشد، اما همه گره ها از فضای آدرس یکسانی استفاده می کنند. هنگامی که سعی می کنید به آدرسی که متعلق به حافظه محلی پردازنده دیگری است دسترسی پیدا کنید، یک وقفه سخت افزاری تخصصی ایجاد می شود و سیستم عامل انتقال صفحه را از یک گره به گره دیگر انجام می دهد و به دلیل سرعت بسیار بالای سیستم ارتباطی (اوج سرعت انتقال داده بین دو گره به 480 مگابایت در ثانیه می رسد، این رویکرد به طور کلی قابل توجیه است. با این حال، یک اثر "پینگ پنگ" که عملکرد را به شدت کاهش می دهد مشاهده شده است - اگر متغیرهای اصلاح شده توسط چندین پردازنده در یک صفحه قرار گیرند، این صفحه به طور مداوم بین گره ها مهاجرت می کند. گره های محاسباتی برنامه های کاربر را در حالت انحصاری (حالت تک وظیفه ای) اجرا می کنند.

    یک نسخه خاص از رایانه های سری Cry T3 با سه عدد مشخص می شود، به عنوان مثال، 24/16/576 (گره های کنترل / گره های سیستم عامل / گره های محاسباتی). با استفاده از توپولوژی "توروس سه بعدی"، هر گره (صرف نظر از محل آن) شش همسایه مستقیم دارد. هنگام انتخاب مسیر بین دو گره A و B (که مختصات 3 بعدی آنها شکل 11 است)، روترهای شبکه، با شروع فرآیند از راس اولیه A، ابتدا یک تغییر در امتداد مختصات X انجام می دهند به این ترتیب تا مختصات ارتباط بعدی. گره و گره B برابر می شوند. سپس اقدامات مشابه در امتداد مختصات Y و سپس در امتداد Z انجام می شود (مسیریابی مشابه فیزیکی به طور همزمان در طول هر سه مختصات رخ می دهد). جابجایی ها همچنین می توانند منفی باشند؛ اگر یک یا چند لینک از کار بیفتند، می توان آنها را دور زد.

    یکی دیگر از ویژگی های جالب معماری Cry T3 پشتیبانی از همگام سازی مانع است - سازماندهی سخت افزاری انتظار برای تمام فرآیندها تا نقطه خاصی در برنامه که پس از رسیدن به آن کار بیشتر امکان پذیر است. رایانه های سری T3E عملکرد 1.8 - 2.5 Tflops (در ریزپردازنده های 2048 آلفا / 600 مگاهرتز) را نشان دادند.

    توسعه بیشتر از سری Cry T3 از کامپیوترهای موازی انبوه، ابررایانه Cry XT3 است. هر گره محاسباتی Cry XT3 شامل یک پردازنده AMD Opteron، حافظه محلی (1 تا 8 گیگابایت) و یک کانال Hyper Transport است که ارتباط را از طریق واحد ارتباطی Cry SeaStar فراهم می کند، که دارای حداکثر عملکرد (برای AMD Opteron 2.4 گیگاهرتز) 2.6 Tflops (548) است. پردازنده ها، رم 4.3 ترابایت، توپولوژی 6 × 12 × 8) تا 147 ترافلاپس. Cray XT3 بر روی سیستم عامل UNICOS/lc اجرا می شود که به شما امکان می دهد تا 30000 گره محاسباتی، کامپایلرهای Fortran 77/90/95 و C/C ++، MPI (واسط ارسال پیام با پشتیبانی از استاندارد MPI 2.0) و کتابخانه های ارتباطی ShMem (توسعه یافته توسط Cray Research) استفاده می شود. کتابخانه Inc. برای کار با حافظه مشترک)، کتابخانه های استاندارد برای محاسبات عددی.

    علیرغم نتایج بالایی که در زمینه سیستم های MPP به دست آمده، Cry Inc. کامپیوترهای نوار نقاله را تولید می کند و این مدل ها را می توان در یک سیستم MPP ترکیب کرد. عملکرد هر پردازنده کامپیوتر Cry SV1 به 4 Gflops می رسد (مجموع اوج عملکرد سیستم 32 Gflops)، تعداد کل پردازنده ها می تواند به 1000 برسد.

    شکل 11. شبکه ارتباطی "توروس سه بعدی" کامپیوتر Cray T3E

    2.4.2. سیستم های کلاستر BEOWULF

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

    یک خوشه محاسباتی مجموعه ای از گره های محاسباتی (از ده ها تا ده ها هزار) است که توسط یک شبکه پرسرعت به منظور حل یک مشکل محاسباتی واحد متحد شده اند. هر گره از یک خوشه محاسباتی در واقع یک کامپیوتر الکترونیکی قابل برنامه ریزی (اغلب یک سرور SMP دو یا چهار پردازنده/هسته ای) است که سیستم عامل خود را اجرا می کند (بیشتر لینوکس(*)). شبکه یکپارچه بر اساس کلاس مورد نیاز از وظایفی که باید حل شوند و قابلیت های مالی انتخاب می شود؛ امکان دسترسی از راه دور به خوشه از طریق اینترنت تقریباً همیشه اجرا می شود.

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

    خوشه های ویندوز با ظرفیت قابل توجه هنوز به دلایل شناخته شده عجیب و غریب هستند (علیرغم راه حل های MS که به طور فعال تبلیغ می شود Windows Compute Cluster Server - کلاس WCCS).

    یکی از اولین پروژه های خوشه ای پروژه BEOWULF بود. پروژه BEOWOWULF در مرکز تحقیقاتی CESDIS (مرکز تعالی در داده‌های فضایی و علوم اطلاعات) که بر اساس سازمان متعلق به ناسا GSFC (مرکز پرواز فضایی گدارد) در سال 1994 ایجاد شد و شروع به مونتاژ یک خوشه 16 گرهی در GSFC کرد. (در 486DX4 / 100 پردازنده مگاهرتز، 16 مگابایت حافظه، 3 آداپتور شبکه در هر گره و 3 کابل موازی اترنت 10 مگابیت)؛ سیستم محاسباتی برای کار بر روی پروژه ESS (پروژه علوم زمین و فضا) در نظر گرفته شده بود.

    بعدها، مدل‌های دیگری از خوشه‌های BEOWULF مانند در بخش‌های ناسا مونتاژ شدند: برای مثال، theHIVE (محیط مجازی یکپارچه بسیار موازی) با ۶۴ پردازنده دوگانه (Pentium Pro / ۲۰۰ مگاهرتز، ۴ گیگابایت حافظه و ۵ سوئیچ اترنت سریع هر کدام) گره ها در چارچوب پروژه Beowulf بود که درایورها برای پیاده سازی حالت پیوند کانال ایجاد شدند.

    شکل 12. طرح بزرگ شده خوشه محاسباتی

    "Beowulf" یک نمونه معمولی از یک سیستم چند پردازنده MIMD (دستورالعمل چندگانه - داده های چندگانه) است، در حالی که چندین شاخه برنامه به طور همزمان اجرا می شوند و داده ها را در فواصل زمانی معین مبادله می کنند. بسیاری از تحولات بعدی در سراسر جهان در واقع قبیله های Beowulf هستند.

    در سال 1998، در آزمایشگاه ملی لوس آلاموس، مایکل وارن، اخترفیزیکدان و اعضای گروه اخترفیزیک نظری، سیستم محاسباتی آوالون را ساختند که یک خوشه لینوکس بر اساس پردازنده‌های DEC Alpha/533 مگاهرتز بود. در ابتدا، آوالون از 68 پردازنده تشکیل شده بود، سپس به 140 افزایش یافت، هر گره دارای 256 مگابایت رم، یک هارد دیسک EIDE 3.2 گیگابایتی و یک آداپتور شبکه کینگستون است.

    گره ها با استفاده از چهار سوئیچ اترنت سریع و یک سوئیچ اترنت گیگابیتی دوازده پورت مرکزی از 3Com متصل می شوند.

    یک نمونه معمولی از یک سیستم محاسباتی خوشه ای موازی انبوه MVS-1000M (شبکه ارتباطی - Myrinet 2000، نرخ تبادل اطلاعات 120-170 Mb / s، کمکی - Fast و Gigabit Ethernet) و MVS-15000BC است.

    نیاز به حداکثر بهره وری در استفاده از منابع توان محاسباتی (هم پردازنده و هم RAM و حافظه دیسک) پردازنده های کلاستر منفرد به ناچار منجر به کاهش "هوشمندی" سیستم عامل گره های محاسباتی به سطح مانیتور می شود. از سوی دیگر، سیستم عامل های خوشه توزیع شده ارائه می شود - به عنوان مثال، Amoeba، Chorus، Mach و غیره.

    به خصوص برای تکمیل سخت افزار خوشه های محاسباتی، سرورهای Bladed (*) تولید می شوند - بردهای عمودی باریک که شامل پردازنده، رم (معمولاً 256 - 512 مگابایت با حافظه نهان L2 128 - 256 KB)، حافظه دیسک و تراشه های پشتیبانی شبکه است. این تخته ها در قفس های استاندارد 3U 19² عرض x 5.25² ارتفاع 3U تا هر کدام تا 24 قرار می گیرند (240 گره محاسباتی در هر رک 180 سانتی متری). برای کاهش مصرف برق کلی می توان از پردازنده های سری Transmeta Crusoe TM 5x00 با فناوری VLIW استفاده کرد که فقط چند وات مصرف می کنند (در مقابل 75 وات برای P4 یا 130 وات برای کریستال های IA-64). در عین حال، کل توان مصرفی در 240 گره محاسباتی از 1 کیلو وات تجاوز نمی کند.

    نتیجه

    برنامه نویسی موازی یک حوزه کامل از مسائل مرتبط است، از جمله پشتیبانی سخت افزاری، تجزیه و تحلیل ساختار الگوریتم ها به منظور شناسایی موازی سازی، و زبان های الگوریتمی برای برنامه نویسی مسائل موازی.

    فناوری های محاسباتی موازی در حال حاضر در ارتباط با الزامات علم و فناوری جهان به سرعت در حال توسعه هستند.

    اغلب، فرد باید با چنین وظایفی دست و پنجه نرم کند که در عین حال که ارزش قابل توجهی را برای جامعه نشان می دهند، نمی توانند با کمک کامپیوترهای اداری نسبتاً کند یا کلاس خانگی حل شوند. تنها امید در این مورد به رایانه های با سرعت بالا است که معمولاً به آنها ابر رایانه می گویند. فقط ماشین های این کلاس می توانند با پردازش حجم زیادی از اطلاعات کنار بیایند. این ممکن است به عنوان مثال، داده های آماری یا نتایج مشاهدات هواشناسی، اطلاعات مالی باشد. گاهی اوقات سرعت پردازش بسیار مهم است. اینها پیش بینی آب و هوا و مدل سازی تغییرات آب و هوا هستند. هر چه یک بلای طبیعی زودتر پیش بینی شود، فرصت های بیشتری برای آماده شدن برای آن وجود دارد. یک کار مهم مدل سازی داروها، رمزگشایی ژنوم انسان، اکتشاف میادین نفت و گاز و سایر کارهای بزرگ مقیاس است که با کمک ابررایانه ها و سیستم های خوشه ای قابل حل است.

    مشکل امروز کمبود آشکار سخت افزار برای محاسبات موازی در مؤسسات آموزشی و علمی است که تسلط کامل بر فناوری های مربوطه را ممکن نمی سازد. اغلب مطالعه صرفا نظری موضوع به پیامدهای منفی و نه مثبت منجر می شود. تنها در حال حاضر فن آوری هایی در حال ظهور هستند که امکان معرفی عمل محاسبات موازی را در اکثر آزمایشگاه های آموزشی و صنعتی فراهم می کنند. ایجاد برنامه‌های موازی مؤثر به تحلیل بسیار جدی‌تر و عمیق‌تر ساختار الگوریتم‌ها نسبت به برنامه‌نویسی متوالی سنتی نیاز دارد و برخی از رویکردها بدون تغییر جدی در تفکر برنامه‌نویسان قابل اجرا نیستند. در کنار تحلیل نظری، برای به دست آوردن نتایج عملا قابل توجه، تمرین مداوم در ایجاد برنامه های موازی ضروری است.

    کتابشناسی - فهرست کتب

    1. Voevodin V.V., Voevodin Vl.V. محاسبات موازی - سنت پترزبورگ: BHV-Petersburg, 2004. -608 p.

    2. هاروی ام دیتل. مقدمه ای بر سیستم عامل ها (ترجمه از انگلیسی توسط L.A. Teplitsky, A.B. Khodulev, Vs.S. -M.: Mir، 1987 (نسخه الکترونیکی، 2004)

    3. Gergel V.P., Strongin R.G. مبانی محاسبات موازی برای سیستم های محاسباتی چند پردازنده ای (کتاب درسی، ویرایش 2، تکمیل شده). -N. Novgorod: ویرایش. آنها را از بین ببرید. N.I. Lobachevsky، -2003 (نسخه الکترونیکی http://pilger.mgapi.edu/metods/1441/basic_pr.zip).

    4. Korneev V.V. سیستم های محاسباتی -M.: Helios ARV، -2004، -512 p.

    5. Latsis A.O. نحوه ساخت و استفاده از یک ابر کامپیوتر -M.: پرفروش، 2003.

    6. Shpakovsky G.I. سازماندهی کامپیوترهای موازی و پردازنده های فوق اسکالر. // Proc. کمک هزینه -مینسک: دانشگاه دولتی بلاروس، 1996. -296 ص. (نسخه الکترونیکی http://pilger.mgapi.edu/metods/1441/spakovsk.zip)

    7. Shpakovsky G.I., Serikova N.V. برنامه نویسی برای سیستم های چند پردازنده ای در استاندارد MPI. -Minsk:, BGU, 2002. -325 p. (نسخه الکترونیکی http://www.cluster.bsu.by/download/book_PDF.pdf، http://pilger.mgapi.edu/metods/1441/pos_mpi.pdf)

    توسط انضباط "موازیمحاسباتدر رشته اپتیک و اپتوانفورماتیک» در ترم 10 فرم ...

  • سخنرانی در زمینه "مبانی نظری کنترل خودکار"

    وظیفه

    ... ____________________________ "____" __________________200_ سخنرانی هاتوسطانضباط"مبانی نظری ... محاسبه: 1) سیستم کاملاً متمرکز - الگوریتم ترتیبی کلاسیک 2) سیستم کاملاً غیر متمرکز - موازی ...

  • خلاصه سخنرانی ها در مورد رشته "تکنولوژی های شبکه" (نسخه به روز شده) برای دانشجویان تخصص 7

    خلاصه

    گروه "سیستم های اطلاعاتی در مدیریت" CONSPECT سخنرانی هاتوسطانضباط"NETWORK TECHNOLOGIES" (نسخه پیشرفته) برای ... یک مزیت بسیار مهم - توانایی انجام موازیمحاسبات. هنگامی که در یک سیستم محاسباتی، وظیفه ...

  • یادداشت های سخنرانی در مورد رشته "سیستم های کامپیوتری عصبی" Shebakpolsky

    خلاصه

    خلاصه سخنرانی هاتوسطانضباط"سیستم های کامپیوتری عصبی" Shebakpolsky M.F. مطالب ... در مورد آموزش، سادگی مدل موازیمحاسبه. هیچ دلیلی وجود ندارد که باور کنیم ... رایانه ها، ذاتی آنها هستند موازیطبیعت محاسبهگم شده است؛ هر عملیات ...

  • 1.2 پردازش موازی داده ها

    1.2.1 امکان اصلی پردازش موازی

    تقریباً تمام الگوریتم‌های توسعه‌یافته تا به امروز متوالی هستند. به عنوان مثال، هنگام ارزیابی عبارت a + b × c، ابتدا باید ضرب را انجام دهید و فقط سپس جمع را انجام دهید. اگر گره‌های جمع و ضرب در رایانه‌های الکترونیکی وجود داشته باشند که می‌توانند به طور همزمان کار کنند، در این صورت گره جمع بیکار خواهد ماند تا گره ضرب کار خود را کامل کند. می توان این ادعا را اثبات کرد که می توان ماشینی ساخت که یک الگوریتم معین را به صورت موازی پردازش کند.

    می توان m پردازنده هایی ساخت که هنگام کار همزمان، نتیجه دلخواه را در یک چرخه کلاک ماشین حساب به دست آورند.

    چنین ماشین‌های «چند پردازنده‌ای» از نظر تئوری می‌توانند برای هر الگوریتم خاص ساخته شوند و به نظر می‌رسد ماهیت متوالی الگوریتم‌ها را «دور می‌زنند». با این حال، همه چیز به این سادگی نیست - بی نهایت الگوریتم های خاص وجود دارد، بنابراین استدلال انتزاعی توسعه یافته در بالا به طور مستقیم با اهمیت عملی مرتبط نیست. توسعه آنها با متقاعد شدن به امکان موازی سازی، اساس مفهوم موازی سازی نامحدود بود، و این امکان را فراهم کرد که از یک موقعیت کلی اجرای به اصطلاح محیط های محاسباتی - سیستم های چند پردازنده ای که به صورت پویا به یک الگوریتم خاص تنظیم می شوند، در نظر بگیریم.

    1.2.2 مدل های انتزاعی محاسبات موازی

    مدل محاسبات موازی یک رویکرد سطح بالا برای توصیف و مقایسه زمان‌های اجرای برنامه‌های مختلف ارائه می‌کند و در عین حال سخت‌افزار و جزئیات اجرا را انتزاع می‌کند. اولین مدل مهم محاسبات موازی، ماشین دسترسی تصادفی موازی (PRAM - Parallel Random Access Machine) بود که انتزاعی از یک ماشین حافظه مشترک را ارائه می دهد (PRAM توسعه ماشین دسترسی تصادفی متوالی مدل RAM - ماشین دسترسی تصادفی است). مدل موازی همزمان انبوه (BSP) انتزاعات حافظه مشترک و توزیع شده را ترکیب می کند. همه پردازنده ها برای اجرای همزمان دستورالعمل ها در نظر گرفته می شوند. در مورد اجرای یک دستورالعمل، PRAM یک ماشین SIMD انتزاعی است (SIMD - جریان دستورالعمل تک / جریان داده چندگانه - یک جریان دستورالعمل واحد همراه با یک جریان داده چندگانه)، اما پردازنده ها همچنین می توانند دستورالعمل های مختلفی را اجرا کنند. دستورات اولیه عبارتند از خواندن از حافظه، نوشتن به حافظه و عملیات معمول منطقی و حسابی.

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

    مدل پایه PRAM از خواندن و نوشتن همزمان (در این زمینه موازی) پشتیبانی می کند. مدل‌های فرعی PRAM شناخته شده‌اند که قوانینی را در نظر می‌گیرند که اجازه می‌دهد از موقعیت‌های تضاد در زمانی که چندین پردازنده به یک حافظه مشترک دسترسی دارند، اجتناب شود.

    مدل‌سازی مدارها از عناصر عملکردی با استفاده از ماشین‌های دسترسی تصادفی موازی (PRAM) قضیه برنت را اجازه می‌دهد. به عنوان عناصر عملکردی، می توان 4 عنصر اصلی (انجام عملیات منطقی NOT، AND، OR، XOR - نفی، منطقی AND، منطقی OR و OR انحصاری، به ترتیب)، NAND و NOR پیچیده تر (AND-NOT و OR-NOT) وجود داشته باشد. ، بنابراین و هر پیچیدگی.

    در ادامه، فرض بر این است که تاخیر (یعنی زمان پاسخ - زمانی که پس از تنظیم مقادیر در ورودی‌ها، مقادیر سیگنال ارائه شده در خروجی عنصر ظاهر می‌شوند) برای همه عملکردها یکسان است. عناصر.

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

    شکل 1. شبیه سازی مدار اندازه 15، عمق 5 با دو پردازنده با استفاده از ماشین دسترسی تصادفی موازی (PRAM - machine)

    شکل 1 نتیجه مدل سازی مدار با اندازه (تعداد کل پردازنده) n=15 با عمق مدار (حداکثر تعداد عناصر در هر یک از سطوح عمق) d=5 با تعدادی پردازنده p=2 (به طور همزمان عناصر شبیه‌سازی‌شده به‌وسیله مناطق مستطیلی در گروه‌هایی ترکیب می‌شوند و برای هر گروه با مرحله‌ای که در آن عناصر آن مدل‌سازی می‌شوند نشان داده می‌شود؛ مدل‌سازی به ترتیب از بالا به پایین به ترتیب افزایش عمق، در هر عمق p قطعه در یک زمان انجام می‌شود. بر اساس قضیه برنت، مدلسازی چنین مداری بیش از 9 مرحله ceil(15/2+1) طول نخواهد کشید.

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

    هر سیستم محاسباتی (چه یک ابر رایانه یا یک رایانه شخصی) با استفاده از عناصر پرسرعت و اجرای موازی تعداد زیادی عملیات به بالاترین عملکرد خود می رسد. امکان عملکرد موازی دستگاه های مختلف سیستم (کار با همپوشانی) است که مبنای تسریع عملیات اصلی است.

    رایانه‌های موازی اغلب بر اساس طبقه‌بندی فلین به ماشین‌های SIMD (داده‌های چند دستورالعمل تکی) و MIMD (داده‌های چند دستورالعمل چندگانه) تقسیم می‌شوند. مانند هر طبقه بندی دیگر، طبقه بندی فوق ناقص است: اتومبیل هایی وجود دارند که مستقیماً در آن قرار نمی گیرند، همچنین ویژگی های مهمی وجود دارد که در این طبقه بندی مورد توجه قرار نمی گیرند. به طور خاص، ماشین‌های نوع SIMD اغلب به عنوان پردازنده‌های برداری شناخته می‌شوند، اگرچه عملکرد بالای آنها به شکل دیگری از موازی‌سازی بستگی دارد - سازماندهی خط لوله ماشین. سیستم های برداری چند پردازنده ای مانند Cray Y-MP از چندین پردازنده برداری تشکیل شده است و بنابراین می توان آن را MSIMD (Multiple SIMD) نامید.

    طبقه بندی فلین بین سایر ویژگی های مهم برای مدل های محاسباتی، به عنوان مثال، سطح "دانه بودن" روش های محاسبات موازی و همگام سازی تمایز قائل نمی شود.

    چهار نوع معماری اصلی برای سیستم های پردازش موازی وجود دارد:

    1) پردازش خط لوله و برداری.

    اساس پردازش خط لوله، اجرای جداگانه برخی از عملیات در چند مرحله (برای چند مرحله) با انتقال داده ها از یک مرحله به مرحله بعدی است. در این حالت با توجه به اینکه چندین عملیات همزمان در مراحل مختلف نوار نقاله انجام می شود بهره وری افزایش می یابد. خط لوله تنها زمانی مؤثر است که خط لوله نزدیک به بار کامل باشد و نرخ تغذیه عملوندهای جدید با حداکثر توان عملیاتی خط لوله مطابقت داشته باشد. اگر تأخیر رخ دهد، عملیات کمتری به صورت موازی انجام می شود و عملکرد کلی کاهش می یابد. عملیات برداری فرصت ایده آلی را برای بارگذاری کامل خط لوله محاسباتی فراهم می کند.



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

    2) ماشین های SIMD. ماشین‌های نوع SIMD از تعداد زیادی عنصر پردازنده یکسان با حافظه خاص خود تشکیل شده‌اند. همه عناصر پردازنده در چنین ماشینی برنامه مشابهی را اجرا می کنند. بدیهی است که چنین ماشینی که از تعداد زیادی پردازنده تشکیل شده است، می تواند عملکرد بسیار بالایی را تنها در آن دسته از وظایفی ارائه دهد که در آن همه پردازنده ها می توانند کار یکسانی را انجام دهند. مدل محاسباتی برای یک ماشین SIMD بسیار شبیه به یک پردازنده برداری است: یک عملیات واحد بر روی یک بلوک بزرگ از داده ها انجام می شود.

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

    مدل‌های محاسبات در رایانه‌های برداری و ماتریسی به قدری مشابه هستند که این رایانه‌ها اغلب به عنوان معادل مورد بحث قرار می‌گیرند.

    3) ماشین های نوع MIMD. اصطلاح "چند پردازنده" بیشتر ماشین های MIMD را پوشش می دهد و (مشابه نحوه استفاده از اصطلاح "پردازنده ماتریسی" برای ماشین های SIMD) اغلب به عنوان مترادف ماشین های MIMD استفاده می شود. در یک سیستم چند پردازنده ای، هر عنصر پردازنده (PE) برنامه خود را کاملا مستقل از سایر عناصر پردازنده اجرا می کند. عناصر پردازش، البته، باید به نحوی با یکدیگر ارتباط برقرار کنند، که طبقه بندی دقیق تر ماشین های از نوع MIMD را ضروری می کند. چند پردازنده‌های حافظه مشترک (چندپردازنده‌های محکم جفت شده) دارای حافظه داده و دستورالعمل در دسترس همه PE هستند. PE ها با استفاده از یک گذرگاه یا شبکه تبادل مشترک به حافظه مشترک متصل می شوند. در مقابل، در سیستم‌های چند پردازنده‌ای با جفت آزاد (ماشین‌هایی با حافظه محلی)، تمام حافظه بین عناصر پردازنده به اشتراک گذاشته می‌شود و هر بلوک حافظه فقط برای پردازنده مرتبط با آن در دسترس است. شبکه مبادله عناصر پردازش را با یکدیگر متصل می کند.

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

    4) ماشین های چند پردازنده با پردازنده های SIMD.

    بسیاری از ابررایانه های مدرن سیستم های چند پردازنده ای هستند که از پردازنده های برداری یا پردازنده های نوع SIMD به عنوان پردازنده استفاده می کنند. چنین ماشین هایی متعلق به ماشین های کلاس MSIMD هستند.

    زبان‌های برنامه‌نویسی و کامپایلرهای مربوطه برای ماشین‌هایی مانند MSIMD معمولاً ساختارهای زبانی را ارائه می‌کنند که به برنامه‌نویس اجازه می‌دهد تا موازی‌سازی "درشت دانه" را توصیف کند. در هر کار، کامپایلر به طور خودکار حلقه های مناسب را بردارید. ماشین‌هایی مانند MSIMD، همانطور که تصور می‌شود، استفاده از بهترین این دو اصل تجزیه را ممکن می‌سازد: عملیات برداری (موازی "ریزدانه") برای بخش‌هایی از برنامه که برای این کار مناسب هستند و انعطاف‌پذیری MIMD. معماری برای سایر بخش های برنامه

    سیستم‌های چند پردازنده‌ای در طول سال‌های توسعه فناوری رایانه، مراحل مختلفی از توسعه خود را پشت سر گذاشته‌اند. از لحاظ تاریخی، فناوری SIMD اولین چیزی بود که تسلط یافت. با این حال، در حال حاضر علاقه ثابتی به معماری MIMD وجود دارد. این علاقه عمدتاً توسط دو عامل تعیین می شود:

    1. معماری MIMD انعطاف‌پذیری زیادی را ارائه می‌دهد: با پشتیبانی سخت‌افزار و نرم‌افزار کافی، MIMD می‌تواند به‌عنوان یک سیستم کاربر تکی عمل کند که پردازش داده‌ها را با کارایی بالا برای یک کار کاربردی واحد ارائه می‌کند، به‌عنوان یک ماشین چندبرنامه‌ای که بسیاری از وظایف را به صورت موازی انجام می‌دهد، یا ترکیبی از این قابلیت‌ها.
    2. معماری MIMD می‌تواند از فناوری مدرن ریزپردازنده بر اساس ملاحظات دقیق هزینه/عملکرد بهره ببرد. در واقع، تقریباً تمام سیستم‌های چند پردازنده‌ای مدرن مبتنی بر ریزپردازنده‌های مشابهی هستند که در رایانه‌های شخصی، ایستگاه‌های کاری و سرورهای کوچک تک‌پردازنده یافت می‌شوند.

    یکی از ویژگی های متمایز یک سیستم محاسباتی چند پردازنده ای، شبکه تبادل است که از طریق آن پردازنده ها به یکدیگر یا به حافظه متصل می شوند. مدل تبادل برای یک سیستم چند پردازنده به قدری مهم است که بسیاری از ویژگی های عملکرد و سایر تخمین ها با نسبت زمان پردازش به زمان مبادله، مطابق با وظایف حل شده بیان می شوند. دو مدل اصلی ارتباط بین پردازنده وجود دارد: یکی مبتنی بر ارسال پیام است، دیگری مبتنی بر استفاده از حافظه مشترک است. در یک سیستم چند پردازنده حافظه مشترک، یک پردازنده در یک مکان حافظه خاص می نویسد و پردازنده دیگری از آن مکان حافظه می خواند. برای اطمینان از سازگاری داده ها و همگام سازی فرآیند، مبادله اغلب بر اساس اصل دسترسی متقابل انحصاری به حافظه مشترک با استفاده از روش "صندوق پستی" اجرا می شود.

    در معماری های حافظه محلی، اشتراک گذاری مستقیم حافظه امکان پذیر نیست. در عوض، پردازنده‌ها با ارسال پیام‌ها از طریق شبکه تبادل به داده‌های مشترک دسترسی پیدا می‌کنند. اثربخشی طرح ارتباطی به پروتکل های تبادل، شبکه های تبادل اصلی و پهنای باند حافظه و کانال های تبادل بستگی دارد.

    اغلب، و به طور غیرمنطقی، در حافظه مشترک و ماشین های برداری، هزینه های مبادله در نظر گرفته نمی شود، زیرا مشکلات مبادله تا حد زیادی از دید برنامه نویس پنهان است. با این حال، سربار مبادله در این ماشین ها وجود دارد و با تداخل گذرگاه، حافظه و پردازنده تعیین می شود. همانطور که پردازنده های بیشتری به سیستم اضافه می شود، فرآیندهای بیشتری برای داده ها و گذرگاه یکسان رقابت می کنند و در نتیجه حالت اشباع ایجاد می شود. مدل سیستم حافظه مشترک بسیار برنامه نویسی پسند است و گاهی اوقات به عنوان وسیله ای سطح بالا برای ارزیابی تأثیر تبادل بر عملکرد سیستم در نظر گرفته می شود، حتی اگر سیستم اصلی واقعاً با استفاده از حافظه محلی و ارسال پیام پیاده سازی شود.

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

    بنابراین، ماشین‌های MIMD موجود بسته به تعداد پردازنده‌های ترکیبی به دو دسته اصلی تقسیم می‌شوند که هم نحوه سازماندهی حافظه و هم روش اتصالات آنها را تعیین می‌کند.

    گروه اول شامل ماشین هایی با حافظه اصلی مشترک (مشترک) است که تا چندین ده (معمولا کمتر از 32) پردازنده را ترکیب می کند. تعداد نسبتاً کم پردازنده ها در چنین ماشین هایی باعث می شود که یک حافظه مشترک متمرکز داشته باشیم و پردازنده ها و حافظه را با استفاده از یک گذرگاه واحد ترکیب کنیم. با توجه به فضای کش کافی روی پردازنده‌ها، گذرگاه با کارایی بالا و حافظه مشترک می‌توانند دسترسی‌های حافظه از چندین پردازنده را در خود جای دهند. از آنجایی که تنها یک حافظه با زمان دسترسی یکسان وجود دارد، گاهی اوقات به این ماشین ها UMA (دسترسی به حافظه یکنواخت) می گویند. این روش سازماندهی با حافظه مشترک نسبتاً کوچک در حال حاضر محبوب ترین است. ساختار چنین سیستمی در شکل نشان داده شده است. 10.1.

    برنج. 10.1. معماری معمولی یک سیستم چند پردازنده با حافظه مشترک.

    گروه دوم ماشین ها سیستم های مقیاس بزرگ با حافظه توزیع شده هستند. برای پشتیبانی از تعداد زیادی پردازنده، باید حافظه اصلی را بین آنها توزیع کنید، در غیر این صورت ممکن است پهنای باند حافظه برای برآوردن درخواست های تعداد بسیار زیادی از پردازنده ها کافی نباشد. طبیعتا با این رویکرد نیاز به پیاده سازی ارتباط پردازنده ها با یکدیگر نیز می باشد. روی انجیر 10.2 ساختار چنین سیستمی را نشان می دهد.

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

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

    به طور معمول، دستگاه‌های ورودی/خروجی، و همچنین حافظه، بر روی گره‌ها توزیع می‌شوند، و در واقع، گره‌ها ممکن است از تعداد کمی (2-8) پردازنده تشکیل شوند که به روشی متفاوت به هم متصل شده‌اند. در حالی که این خوشه بندی چندین پردازنده با حافظه و یک رابط شبکه می تواند از نظر کارایی از نظر هزینه بسیار مفید باشد، برای درک نحوه عملکرد چنین ماشینی بسیار ضروری نیست، بنابراین ما بر روی سیستم هایی با یک پردازنده در هر گره تمرکز خواهیم کرد. اکنون. تفاوت اصلی معماری که باید در ماشین های حافظه توزیع شده برجسته شود این است که ارتباط چگونه انجام می شود و مدل منطقی حافظه چیست.

    برنج. 10.2. معماری معمولی یک ماشین با حافظه توزیع شده.

    وزارت آموزش و پرورش و علوم فدراسیون روسیه

    موسسه آموزشی بودجه دولتی فدرال آموزش عالی حرفه ای "مهندسی و فناوری دولتی بریانسک"

    آکادمی"

    گروه فناوری اطلاعات

    پردازش متوالی و موازی اطلاعات

    شهرک سازی و کار گرافیکی شماره 1

    توسط رشته

    "فناوری های پردازش اطلاعات"

    گزینه شماره 16

    RGR-02068025.230400.084

    بریانسک 2015

    مقدمه 3

    پردازش اطلاعات موازی 4

    سیستم های اشتراک گذاری حافظه 6

    پردازش موازی SQL 7

    پردازش متوالی اطلاعات 9

    سیستم های دسته ای ساده 10

    مراجع 13

    معرفی

    در این محاسبه و پردازش گرافیکی، متوالی و موازی اطلاعات در نظر گرفته شده است. برای هر یک از آنها مثال هایی آورده شده است.

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

    پردازش اطلاعات موازی مدلی از پردازش اطلاعات است که بر اساس آن اطلاعات در بلوک های عملکردی خاصی دستخوش یک سری دگرگونی ها می شود، به طوری که در هر لحظه به طور همزمان (موازی) در چندین بلوک پردازش می شود.

    پردازش اطلاعات موازی

    پردازش داده های موازی، که ایده انجام چندین عمل به طور همزمان را در بر می گیرد، دو نوع دارد: خط لوله و موازی.

    پردازش موازی. اگر دستگاه خاصی در هر واحد زمان یک عملیات انجام دهد، در هزار واحد، هزار عملیات را انجام خواهد داد. اگر فرض کنیم که پنج دستگاه مستقل وجود دارد که می توانند به طور همزمان کار کنند، آنگاه سیستم پنج دستگاه می تواند همان هزار عملیات را نه در هزار، بلکه در دویست واحد زمان انجام دهد. به طور مشابه، سیستمی از دستگاه های N کار مشابهی را در 1000/N واحد زمان انجام می دهد. مشابه‌های مشابهی را می‌توان در زندگی یافت: اگر یک سرباز در 10 ساعت باغی را حفر کند، یک گروه از پنجاه سرباز با همان توانایی‌ها که به طور همزمان کار می‌کنند، همان کار را در 12 دقیقه انجام می‌دهند - اصل موازی در عمل!

    لوله کشی. برای اضافه کردن دو عدد واقعی که به صورت ممیز شناور نمایش داده شده اند چه چیزی لازم است؟ مجموعه کاملی از عملیات های کوچک مانند مقایسه سفارش، تراز سفارش، اضافه کردن مانتیس، عادی سازی و غیره. پردازنده های کامپیوترهای اول تمام این "عملیات خرد" را برای هر جفت آرگومان به صورت متوالی یکی یکی انجام دادند تا به نتیجه نهایی رسیدند و تنها پس از آن به پردازش جفت ترم بعدی پرداختند.

    ایده پردازش خط لوله این است که مراحل جداگانه ای از اجرای یک عملیات مشترک را مشخص کند و هر مرحله با تکمیل کار خود، نتیجه را به مرحله بعدی منتقل کند و همزمان بخش جدیدی از داده های ورودی را بپذیرد. ما به دلیل ترکیبی از عملیات های قبلی با فواصل قبلی، یک سود آشکار در سرعت پردازش دریافت می کنیم. فرض کنید که یک عملیات را می توان به پنج ریز عملیات تقسیم کرد که هر یک در یک واحد زمان انجام می شود. اگر یک دستگاه سریال تقسیم ناپذیر وجود داشته باشد، 100 جفت آرگومان برای 500 واحد پردازش می کند. اگر هر ریز عملیات به یک مرحله جداگانه (یا در غیر این صورت می گویند - مرحله) یک دستگاه نوار نقاله جدا شود، در پنجمین واحد زمانی در مرحله متفاوت پردازش چنین دستگاهی، پنج جفت آرگومان اول پیدا شود، و کل مجموعه صد جفت در زمان 5 + 99 = 104 واحد پردازش می شود - شتابی نسبت به یک دستگاه متوالی تقریباً پنج برابر (با توجه به تعداد مراحل خط لوله).

    به نظر می رسد که پردازش خط لوله را می توان با موفقیت جایگزین موازی سازی معمولی کرد، که برای آن دستگاه اصلی باید به تعداد دفعاتی که قرار است تعداد مراحل خط لوله تخصیص داده شود، کپی شود. در واقع، پنج دستگاه مثال قبلی، 100 جفت آرگومان را در 100 واحد زمان پردازش خواهند کرد، که سریعتر از دستگاه خط لوله است! بنابراین با افزایش پنج برابری تعداد دستگاه ها، هم میزان تجهیزات و هم هزینه آن را به میزان قابل توجهی افزایش می دهیم. تصور کنید که یک کارخانه خودروسازی تصمیم گرفت خط مونتاژ را حذف کند و در عین حال سرعت تولید خودرو را حفظ کند. اگر قبلاً هزار ماشین در خط مونتاژ به طور همزمان وجود داشت ، پس با قیاس با مثال قبلی ، باید هزار تیم را استخدام کرد که هر یک از آنها قادر به مونتاژ کامل ماشین از ابتدا تا انتها هستند. صدها عملیات مختلف را انجام می دهد و آن را همزمان با زمانی که ماشین قبلاً در خط مونتاژ بود انجام می دهد.

    امروزه کمتر کسی از موازی سازی در معماری کامپیوتر شگفت زده می شود. همه ریزپردازنده های مدرن از نوعی پردازش موازی استفاده می کنند. در هسته پنتیوم 4 می توان تا 126 میکروعملیات را به صورت همزمان در مراحل مختلف اجرا انجام داد. با این حال، خود این ایده ها مدت ها پیش ظاهر شدند. در ابتدا، آنها در پیشرفته ترین و در نتیجه مجردترین رایانه های زمان خود معرفی شدند. سپس، پس از توسعه مناسب فناوری و تولید ارزان‌تر، به رایانه‌های طبقه متوسط ​​فرود آمدند و سرانجام، امروزه همه اینها به طور کامل در ایستگاه‌های کاری و رایانه‌های شخصی تجسم یافته است.

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

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