payamvha/North_RAG huggingface dataset:
تشکیل می‌شود. اگر قسمت غیرقابل موازی‌سازی یک برنامه ۱۰٪ از کل زمان اجرا را تشکیل دهد (۰٫۹ = p)، هر قدر تعداد پردازنده‌ها را افزایش دهیم، نمی‌توانیم بیش از ۱۰ برابر افزایش سرعت داشته باشیم. این امر موجب یک محدودیت حداکثری در رابطه با سودمندی افزودن واحدهای اجرایی موازی بیشتر می‌شود. «وقتی یک کار به دلیل محدودیت‌های ناشی از توالی قابل تقسیم نیست، اعمال تلاش بیشتر هیچ تأثیری در زمان‌بندی آن ندارد. طول دورهٔ حاملگی نه ماه است، مهم نیست که چند زن به آن اختصاص داده شود.» قانون آمدال فقط در مواردی اعمال می‌شود که
شود.» قانون آمدال فقط در مواردی اعمال می‌شود که اندازه مسئله ثابت باشد. در عمل، با در دسترس قرار گرفتن منابع محاسباتی بیشتر، آنها تمایل دارند که از مسئله‌های بزرگتر (مجموعه داده‌های بزرگتر) استفاده کنند، و زمان صرف شده در قسمت قابل موازی‌سازی اغلب سریعتر از کار ذاتاً سریالی رشد می‌کند. در این حالت، قانون گوستافسون ارزیابی کمتر بدبینانه و بیشتر واقع بینانه از کارایی موازی‌سازی ارائه می‌دهد: formula_2 هر دو قانون آمدال و گوستافسون فرض می‌کنند که زمان اجرای قسمت متوالی برنامه مستقل از تعداد پردازنده‌ها است.
متوالی برنامه مستقل از تعداد پردازنده‌ها است. قانون آمدال فرض می‌کند که کل مسئله دارای اندازه ثابت است به طوری که کل کار انجام شده به‌طور موازی نیز مستقل از تعداد پردازنده‌ها است، در حالی که قانون گوستافسون فرض می‌کند که کل کار انجام شده به صورت موازی ارتباط خطی با تعداد پردازنده‌ها دارد. وابستگی‌ها. درک وابستگی داده‌ها در اجرای الگوریتم‌های موازی اساسی است. هیچ برنامه‌ای نمی‌تواند سریعتر از طولانی‌ترین زنجیره محاسبات وابسته (معروف به مسیر بحرانی) اجرا شود، زیرا محاسباتی که به محاسبات قبلی در زنجیره بستگی
زیرا محاسباتی که به محاسبات قبلی در زنجیره بستگی دارند باید به ترتیب اجرا شوند. با این حال، بیشتر الگوریتم‌ها صرفاً از یک زنجیره طولانی محاسبات وابسته تشکیل نشده‌اند. معمولاً فرصت‌هایی برای اجرای محاسبات مستقل به‌طور موازی وجود دارد. فرض کنید "P""i" و "P""j" دو بخش برنامه باشند. شرایط برنشتاین زمانی را توصیف می‌کند که این دو مستقل باشند و بتوانند به‌طور موازی اجرا شوند. برای "P""i"، فرض کنید "I""i" همه متغیرهای ورودی و "O""i" متغیرهای خروجی باشند، و به همین شکل، برای "P""j". دو قسمت "P""i" و "P""j" در صورت
شکل، برای "P""j". دو قسمت "P""i" و "P""j" در صورت برآورده کردن شرایط زیر مستقل هستند: نقض شرط اول وابستگی جریان را ایجاد می‌کند، به این معنی که نخستین بخش نتیجه‌ای تولید می‌کند که توسط بخش دوم استفاده می‌شود. شرط دوم نشان دهندهٔ ضد وابستگی است، بدین معنی که قطعه دوم متغیر مورد نیاز بخش اول را تولید می‌کند. شرط سوم و نهایی وابستگی خروجی را نشان می‌دهد: وقتی دو بخش در یک مکان بنویسند، نتیجهٔ نهایی مربوط به آخرین قسمت اجرا شده از نظر منطقی است. توابع زیر را در نظر بگیرید، که انواع مختلفی از وابستگی‌ها را نشان
نظر بگیرید، که انواع مختلفی از وابستگی‌ها را نشان می‌دهد: 1: function Dep(a, b) 2: c := a * b 3: d := 3 * c 4: end function در این مثال، دستورالعمل ۳ نمی‌تواند قبل از (یا حتی به موازات) دستورالعمل ۲ اجرا شود، زیرا دستورالعمل ۳ از نتیجه دستورالعمل ۲ استفاده می‌کند. این کار شرط اول را نقض می‌کند، بنابراین وابستگی جریان را ایجاد می‌کند. 1: function NoDep(a, b) 2: c := a * b 3: d := 3 * b 4: e := a + b 5: end function در این مثال، هیچ وابستگی بین دستورالعمل‌ها وجود ندارد، بنابراین می‌توان همه آنها را به‌طور
وجود ندارد، بنابراین می‌توان همه آنها را به‌طور موازی اجرا کرد. شرایط برنشتاین اجازه نمی‌دهد حافظه بین فرآیندهای مختلف تقسیم شود. برای این کار، برخی از ابزارهای اعمال نظم بین دسترسی‌ها لازم است؛ مانند سمافورها، موانع یا سایر روش‌های همگام سازی. شرایط مسابقه، انحصار متقابل، همگام سازی و کند شدن موازی. وظایف فرعی(subtask) در یک برنامه موازی را اغلب رشته می‌نامند. برخی از معماری‌های موازی رایانه‌ای از نوعی رشته‌های کوچکتر و سبک که به عنوان فیبر معروف هستند استفاده می‌کنند، در حالی که برخی دیگر از رشته‌های
استفاده می‌کنند، در حالی که برخی دیگر از رشته‌های بزرگتر به نام پردازش استفاده می‌کنند. با این حال، «رشته‌ها» به‌طور کلی به عنوان یک اصطلاح عمومی برای وظایف فرعی استفاده می‌شود. رشته‌ها اغلب به دسترسی همزمان به یک شی یا منبع دیگر احتیاج دارند؛ برای نمونه وقتی که آنها باید متغیری را که بین آنها به اشتراک گذاشته شده‌است به روز کنند. بدون همگام سازی، دستورالعمل‌های بین دو رشته به هر ترتیب ممکن است در لابلای هم قرار گیرند. برای نمونه، برنامه زیر را در نظر بگیرید: اگر دستورالعمل 1B بین 1A و 3A یا دستورالعمل 1A
اگر دستورالعمل 1B بین 1A و 3A یا دستورالعمل 1A بین 1B و 3B اجرا شود، برنامه داده‌های نادرستی تولید می‌کند. این حالت باعث ایجاد شرایط مسابقه‌ای می‌شود. برنامه‌نویس برای ایجاد انحصار متقابل باید از قفل استفاده کند. قفل یک ساختار زبان برنامه‌نویسی است که به یک رشته اجازه می‌دهد تا کنترل یک متغیر را بدست گرفته و تا زمانی که قفل آن متغیر باز شود از خواندن یا نوشتن در آن توسط سایر رشته‌ها جلوگیری کند. ریسمان نگهدارنده قفل برای اجرای بخش بحرانی آن (بخشی از برنامه که نیاز به دسترسی انحصاری به برخی از متغیرها دارد)
نیاز به دسترسی انحصاری به برخی از متغیرها دارد) و باز کردن قفل داده پس از پایان کارش آزاد است؛ بنابراین، برای تضمین اجرای صحیح برنامه، می‌توان برنامه فوق را برای استفاده از قفل بازنویسی کرد: یک رشته با موفقیت متغیر V را قفل می‌کند، در حالی که از رشته دیگر ممانعت می‌شود - تا زمانی که قفل V دوباره باز شود نمی‌تواند ادامه دهد. این وضعیت اجرای صحیح برنامه را تضمین می‌کند. در صورتی که نیاز به دسترسی رشته‌ها به منابع بصورت سریالی باشد، ممکن است وجود قفل برای اطمینان از اجرای صحیح برنامه ضروری باشد، اما استفاده
از اجرای صحیح برنامه ضروری باشد، اما استفاده از قفل‌ها می‌تواند برنامه را بسیار کند کند و بر قابلیت اطمینان آن تأثیر بگذارد. قفل کردن متغیرهای متعدد با استفاده از قفل‌های غیر یکجا ممکن است موجب بن‌بست در برنامه شود. یک قفل یکجا (اتمیک) همزمان چندین متغیر را با هم قفل می‌کند. اگر نتواند همه آنها را با هم قفل کند، هیچ‌یک را قفل نمی‌کند. اگر دو رشته بخواهند با استفاده از قفل‌های غیر یکجا دو متغیر مشترک را قفل کنند، ممکن است که یک ریسه یکی از آنها را قفل کند و ریسه دوم متغیر دیگر را قفل کند. در چنین شرایطی،
و ریسه دوم متغیر دیگر را قفل کند. در چنین شرایطی، هیچ‌کدام از دو رشته نمی‌تواند کامل شوند و بن‌بست بوجود می‌آید. در بسیاری از برنامه‌های موازی باید وظایف فرعی به‌طور همگام انجام شود. این امر مستلزم استفاده از مانع(barrier) است. موانع معمولاً با استفاده از قفل یا سمافور اجرا می‌شوند. یک کلاس از الگوریتم‌ها، که تحت عنوان الگوریتم‌های بدون قفل و بدون انتظار شناخته می‌شوند، درکنار هم، از استفاده از قفل و موانع جلوگیری می‌کنند. با این حال، اجرای این روش به‌طور کلی دشوار است و نیاز به ساختارهای داده‌ای دارد که
کلی دشوار است و نیاز به ساختارهای داده‌ای دارد که به درستی طراحی شده باشند. همه موازی‌سازی‌ها منجر به افزایش سرعت نمی‌شوند. به‌طور کلی، با تقسیم وظایف به رشته‌های بیشتر و بیشتر، این رشته‌ها بخشی از زمان فزایندهٔ خود را، صرف برقراری ارتباط با یکدیگر می‌کنند یا منتظر یکدیگر هستند تا به منابع دسترسی پیدا کنند. هنگامی که سربار ناشی از رقابت بر سر منابع یا ارتباطات، بر زمان صرف شده برای محاسبات دیگر غلبه پیدا کند، موازی‌سازی بیشتر (یعنی تقسیم بار کاری بین تعداد بیشتری از ریسه‌ها) موجب افزایش زمان مورد نیاز برای
از ریسه‌ها) موجب افزایش زمان مورد نیاز برای اتمام می‌شود تا کاهش آن. این مشکل که به کند شدن موازی شناخته می‌شود، در برخی موارد با تجزیه و تحلیل و طراحی دوباره نرم‌افزار قابل بهبود است. تاریخچه. دهه ۱۹۵۰. ایده استفاده از موازی‌سازی چنددستور، چندداده یا به اختصار () به سال ۱۹۵۴ بر می‌گردد، جایی که نخستین کامپیوتر تجاری محاسبات اعداد ممیز شناور توسط جن آمدال در شرکت آی بی ام با نام ۷۰۴ تولید شد. در آوریل ۱۹۵۸ اس. جیل (فرانتی)، بحث انشعاب و انتظار را در برنامه‌نویسی موازی مطرح کرد. همچنین در همین سال دو تن از
موازی مطرح کرد. همچنین در همین سال دو تن از پژوهشگران شرکت آی بی ام به نام‌های جان کوک و دنییل اسلوتنیک، ایده استفاده از موازی‌سازی در محاسبات عددی را برای نخستین بار مطرح کردند. دهه ۱۹۶۰. در سال ۱۹۶۲ شرکت باروز، کامپیوتر دی ۸۲۵ که دارای ۴ پردازنده و توانایی دسترسی به ۱۶ ماژول حافظه از طریق سوییچ چلیپایی بود را معرفی کرد. در سال ۱۹۶۷، آمدال و اسلوتنیک در کنفرانس پردازش اطلاعات در آمریکا، قانون آمدال را معرفی کردند که محدودیت افزایش سرعت در برابر موازی‌سازی را مطرح می‌کند. در سال ۱۹۶۹ شرکت هانی ول، سیستم
را مطرح می‌کند. در سال ۱۹۶۹ شرکت هانی ول، سیستم چندپردازنده‌ای را معرفی کرد که دارای ۸ پردازنده به صورت موازی بود. دهه ۱۹۸۰. نخستین کامپیوتر مدرن یک دستور، چند داده یا به اختصار () در سال ۱۹۸۷ با نام ماشین متفکر توسط دنی هیلز و شرلی هندلر بازسازی شد. دهه ۱۹۹۰. در دهه ۱۹۹۰ تولید کامپیوترهای یک دستور، چندداده روند رو به رشدی پیدا کردند، در سال ۱۹۹۵ شرکت سان‌میکروسیستم UltraSPARC را معرفی کرد. همچنین شرکت اینتل در سال ۱۹۹۶ نخستین کامپیوتر رو میزی دارای سیستم یک‌دستور، چندداده برای سیستم‌های ۳۲ بیتی معرفی کرد.
چندداده برای سیستم‌های ۳۲ بیتی معرفی کرد. در سال ۱۹۹۶ استاندارد () برای برنامه‌نویسی چند نخی معرفی شد. همچنین در این دهه معماری () در سال ۱۹۹۷ برای برنامه‌نویسی سیستم‌های موازی با زبان فرترن معرفی گردید، و در سال ۱۹۹۸ نیز نسخه C/C++ این معماری معرفی شد. سال ۲۰۰۰ تا کنون. از سال ۲۰۰۰ تا کنون نسخه‌های بهبود یافته‌ای از OpenMP ارائه شده‌است. در سال ۲۰۰۰ نسخه ۲٫۰ فرترن و در سال ۲۰۰۲ نسخه ۲٫۰ سی پلاس پلاس OpenMP ارائه شد. نسخه ۲٫۵ در سال ۲۰۰۵ و نسخه ۳٫۰ در سال ۲۰۰۸ ارائه شد. نسخه ۴٫۰ برنامه در سال ۲۰۱۲ ارائه
۲۰۰۸ ارائه شد. نسخه ۴٫۰ برنامه در سال ۲۰۱۲ ارائه شد. ارتباط بین پردازش‌ها. پردازش‌ها در برنامه‌نویسی موازی برای انجام محاسبات خود نیاز به برقراری ارتباط با یکدیگر دارند، که روش‌های زیر برای این کار می‌باشند: حافظه اشتراکی. در حافظه اشتراکی، وظایف موازی برای برقراری ارتباط با یکدیگر از یک فضای آدرس اشتراکی که توانایی نوشتن و خواندن غیرهمزمان را دارد استفاده می‌کنند. در این حالت برای کنترل دسترسی‌های همزمان وظایف به این آدرس‌ها نیاز به مکانیزم‌هایی مانند قفل‌ها، سمافورها و مانیتورها است. تبادل پیام. در این
سمافورها و مانیتورها است. تبادل پیام. در این روش، وظایف موازی داده‌های مورد نیاز را از طریق پیام برای یکدیگر ارسال می‌کنند، که این ارتباطات می‌توانند همزمان یا غیرهمزمان باشند. در روش غیرهمزمان فرستنده پیام خود را بدون توجه به آمادگی گیرنده ارسال می‌کند. مدل ضمنی. در این مدل، ارتباط بین وظایف بدون دخالت برنامه‌نویس انجام می‌شود. به این صورت که کامپایلر این کار را انجام می‌دهد. اصول برنامه‌نویسی موازی. یافتن موازات کافی در برنامه (قانون آمدال). طبق قانون آمدال در برنامه‌نویسی موازی، باید طوری برنامه را به
در برنامه‌نویسی موازی، باید طوری برنامه را به دو قسمت موازی و سریال تقسیم کرد، که مقدار سرباری که به سیستم به دلیل تقسیم وظایف میان نخ‌ها/پردازنده‌ها تحمیل می‌شود از مقدار سودی که به دلیل موازی کردن برنامه بدست می‌آوریم کمتر باشد. دانه‌دانه کردن. هنگام تقسیم وظایف، باید به اندازه قسمتی از برنامه که قرار است به صورت موازی اجرا شود توجه داشت. به این صورت که در صورت زیاد بودن تعداد آنها و کوچک بودن این قسمت‌ها سربار بسیار زیادی به سیستم تحمیل خواهد شد، و در صورتی که اندازه این قسمت‌ها بسیار بزرگ باشد، در آن
که اندازه این قسمت‌ها بسیار بزرگ باشد، در آن صورت این قسمت‌ها تقریباً به صورت سریال اجرا می‌شود که افزایش سرعتی در این حالت نخواهیم داشت. محلی سازی. سرعت دسترسی به حافظه‌های دارای حجم بالا کم بوده، و سرعت دسترسی به حافظه‌های دارای حجم پایین زیاد است. با توجه به این امر، برنامه‌نویس باید طوری عمل کند که الگوریتم‌های موجود در برنامه باید بیشتر کار خود را روی داده‌های موجود در حافظه محلی انجام دهند. عدم تعادل بار. عدم تعادل بار به حالتی گفته می‌شود که در آن بعضی از پردازنده‌ها در برخی زمان‌ها به دلایل زیر
بعضی از پردازنده‌ها در برخی زمان‌ها به دلایل زیر کاری را انجام نمی‌دهند: تعادل بار به دو صورت ایستا ، یا پویا در زمان اجرا انجام می‌پذیرد. همگام سازی. بسیاری از الگوریتم‌هایی که برای اجرای موازی فرمان‌های، موازی‌سازی می‌شوند، الگوریتم‌هایی هستند که پردازش‌های موازی حاصل از آن‌ها بدون نیاز به ارتباط با دیگر پردازش‌ها، به محاسبات خود پرداخته و آن را ادامه می‌دهند. اما الگوریتم‌های دیگری نیز وجود دارند که در آن‌ها هر پردازنده محاسبات تکراری یکسانی را روی یک جزء متمایز داده‌ای انجام می‌دهد، اما پردازنده‌ها
جزء متمایز داده‌ای انجام می‌دهد، اما پردازنده‌ها باید در انتهای هر تکرار با یکدیگر همگام شوند و نتایج میانی خود را در اختیار دیگر پردازنده‌ها قرار دهند. یک روش مورد استفاده برای همگام‌سازی استفاده از حصاربند است که در این روش پردازش‌های اولیه که دستورالعمل حصاربندی را اجرا می‌کنند تا زمانی که تمام پردازش‌های دیگر وارد این نقطه شوند، در انتظار باقی می‌مانند. شرایط مسابقه. شرایط مسابقه یکی از خطاهای رایج در برنامه‌نویسی موازی به دلیل دسترسی همزمان وظایف به منابع است که این خطاها به صورت غیرقطعی بوده و لذا
منابع است که این خطاها به صورت غیرقطعی بوده و لذا تشخیص آنها سخت است. برای جلوگیری از به وجود آمدن این شرایط می‌توان از قفل‌های سخت‌افزاری یا نرم‌افزاری استفاده کرد. ابزارهای برنامه‌نویسی موازی. با استفاده از ابزارها، برنامه‌نویس می‌تواند خود به طراحی روند اجرای موازی برنامه بپردازد و برای اموری مانند متغیرهای اشتراکی، وابستگی ورودی و خروجی رشته‌های موازی، ارتباط میان رشته‌های پردازشی یا پردازه‌ها و تجزیه‌پذیری بنیادی راه‌حل مسئله مورد نظر تصمیم بگیرد و شیوه توزیع شدن محاسبه، متغیرها و اشیا را طراحی کند.
توزیع شدن محاسبه، متغیرها و اشیا را طراحی کند. این دسته ابزارها خود به دو گروه عمده تقسیم می‌شوند: ابزارهای برنامه‌نویسی حافظه اشتراکی. POSIX Threads. مجموعه‌ای از کتابخانه‌های استاندارد به زبان C، که دارای توابعی برای برنامه‌نویسی موازی چندنخی است و معمولاً با عنوان Pthreads شناخته می‌شود. در Pthreads نخ‌ها از یک فضای آدرس دهی مشترک استفاده می‌کنند که کنترل و همگام‌سازی دسترسی نخ‌ها به این حافظه بر عهده برنامه‌نویس است. همچنین هر نخ فضای آدرس مخصوص به خود را دارد. Pthreads برای برنامه‌های که دارای
به خود را دارد. Pthreads برای برنامه‌های که دارای ویژگی‌های زیر هستند، می‌تواند مناسب باشد: OpenMP(open multi-processing). OpenMP یک واسط برنامه‌نویسی کاربردی () برای برنامه‌نویسی موازی رشته‌ها در سیستم‌های حافظه اشتراکی با یکی از سه زبان C, C++ یا فورترن است و از معماری‌های مختلفی از جمله پلتفرم‌های ویندوز و یونیکس پشتیبانی می‌کند. البته تولیدکنندگان کامپایلر برای زبان‌های دیگر از جمله جاوا نیز امکان نوشتن برنامه با رابط OpenMP را فراهم کرده‌اند. باید توجه داشت، OpenMP تضمین نمی‌کند که از حافظه اشتراکی
داشت، OpenMP تضمین نمی‌کند که از حافظه اشتراکی استفاده بهینه خواهد کرد. همچنین مواردی مانند وابستگی داده‌ها، شرایط مسابقه یا بن‌بست‌ها باید توسط خود برنامه‌نویس در کد برنامه کنترل شود وOpenMP عموماً نمی‌تواند کاری دربارهٔ آن‌ها انجام دهد. همزمان سازی ورودی و خروجی هنگام دسترسی موازی و چک کردن ترتیب اجرای کد برنامه نیز از جمله وظایف برنامه‌نویس است و از عهده OpenMP خارج است. به‌این ترتیب، برنامه‌نویس باید ساختار کد و الگوریتم خود را کاملاً کنترل کرده و اطمینان حاصل کند که موارد ذکر شده در اجرای برنامه رخ
حاصل کند که موارد ذکر شده در اجرای برنامه رخ نخواهد داد. ابزارهای برنامه‌نویسی سیستم‌های دارای حافظه توزیع‌یافته. رابط عبور پیام. متداول‌ترین شیوه برنامه‌نویسی موازی استفاده از MPI است. رابط عبور پیام، ویژگی‌های یک واسط برنامه‌نویسی کاربردی کلی برای برنامه‌نویسی موازی را برای سیستم‌های دارای حافظه توزیع‌یافته مانند کلاسترهای تیغه‌ای و مجموعه آن‌ها تعیین می‌کند و به خودی خود یک ابزار نیست، بلکه یک طرح ویژگی‌ها و یک پروتکل ارتباطی به‌شمار می‌رود و همان‌گونه که از نامش پیداست، شیوه صحبت کردن سیستم‌های موازی
که از نامش پیداست، شیوه صحبت کردن سیستم‌های موازی با هم را تعیین می‌کنند. مهم‌ترین مزیت روش رابط عبور پیام به سایر روش‌های عبور پیام، قابل حمل بودن و سرعت بالای آن است. سرعت بالای این روش به این دلیل است که هنگام اجرا بر روی هر سخت‌افزاری برای آن سخت‌افزار بهینه می‌شود. مزیت بزرگ دیگر این روش، توانایی فراخوانی توابع آن با زبان‌های C++، C، فورترن، جاوا، C# و پایتون است. زبان‌های برنامه‌نویسی موازی. زبان‌های برنامه‌نویسی همزمان، کتابخانه‌ها، رابط‌های برنامه کاربردی، و مدل‌های برنامه‌نویسی موازی (مانند اسکلت
و مدل‌های برنامه‌نویسی موازی (مانند اسکلت الگوریتمی) برای برنامه‌نویسی موازی کامپیوترها ایجاد شده‌است. این به‌طور کلی به چند کلاس بر مبنای حافظه معماری مشترک، حافظه توزیع شده و حافظه توزیع شده مشترک تقسیم می‌شود. زبان‌های برنامه‌نویسی حافظه مشترک با دستکاری متغیرهای حافظه مشترک ارتباط برقرار کنید. حافظه توزیع شده از عبور پیام استفاده می‌کنند. تردهای POSIX و OpenMP هردو بیشتر از رابط‌های برنامه‌های کاربردی حافظه مشترک استفاده می‌کنند، درحالی که رابط عبور پیام (MPI) بیشتر از رابط‌های برنامه کاربردی سیستم
پیام (MPI) بیشتر از رابط‌های برنامه کاربردی سیستم عبور پیام استفاده می‌کند. در کنار رهیافت‌هایی مانند MPI و OpenMP که قابلیت‌های مورد نیاز برای برنامه‌نویسی موازی با زبان‌های شناخته‌شده‌ای مانند C و فرترن را فراهم می‌آورند، شمار قابل توجهی زبان برنامه‌نویسی مستقل، از اساس برای نوشتن کدهای پردازش موازی ایجاد شده‌اند. لیندا. لیندا به دسته‌ای از زبان‌های برنامه‌نویسی موازی تعلق دارد که در آن‌ها تقسیم کارهای درون برنامه به رشته‌ها و فرستادن رشته‌ها به پردازنده‌ها باید به‌طور صریح در متن کد مشخص شود، اما ارتباط
باید به‌طور صریح در متن کد مشخص شود، اما ارتباط میان رشته‌های ایجادشده بر عهده برنامه‌نویس نیست. لیندا به خودی خود یک زبان قابل استفاده مستقیم نیست و به اصطلاح یک زبان هماهنگ‌سازی خوانده می‌شود. پیاده‌سازی‌هایی از آن برای بسیاری از زبان‌های برنامه‌نویسی و اسکریپت‌نویسی متداول، از جمله جاوا، C و C++، پایتون و روبی ارائه شده‌است. خصلت اصلی لیندا آن است که به جای مدل ارتباط نقطه به نقطه که در بیشتر رهیافت‌های برنامه‌نویسی موازی دنبال می‌شود، مفهومی به نام فضای چندگانه را ارائه می‌کند که بستر اصلی موازی‌سازی
چندگانه را ارائه می‌کند که بستر اصلی موازی‌سازی در مدل این زبان است. فضای چندگانه یک مخزن عمومی داده‌ها است که داده‌ها را می‌توان در آن ذخیره و سپس از آن بازیابی کرد. ارلنگ. ارلنگ یک زبان زمان اجرا است که از ابتدا با هدف مستقیم ایجاد برنامه‌های موازی بی‌درنگ با آستانه تحمل خطای بالا و تا حد زیادی با در نظر داشتن سیستم‌های مخابراتی نوشته‌شده‌است. ارتباط میان پردازش‌ها در ارلنگ صریح است و همانند OpenMP باید توسط برنامه‌نویس تعیین شود، اما بر خلافOpenMP، ارلنگ از تبادل پیام برای ارتباط میان روندها استفاده
از تبادل پیام برای ارتباط میان روندها استفاده می‌شود. ارلنگ زبانی مبتنی بر تابع‌ها است، به این مفهوم که پردازش داده‌ها در یک برنامه ارلنگ در قالب محاسبه تابع‌های ریاضی صورت می‌پذیرد و تقریباً همه چیز با تعریف کردن تابع‌ها انجام می‍شود. موازی‌سازی پردازش در ارلنگ با تعریف کردن روندهایی که اشتراکی با هم ندارند، انجام می‌شود. ارتباط میان این روندها توسط یک سیستم تبادل پیام ناهمگام انجام می‌شود. چارم++. چارم++، زبانی مبتنی بر C++ است که با هدف آسان کردن برنامه‌نویسی موازی و با ارائه قابلیت‌های برنامه‌نویسی
موازی و با ارائه قابلیت‌های برنامه‌نویسی موازی در سطح بالایی از انتزاع ارائه شده‌است. مبنای موازی‌سازی برنامه در چارم++، بر تجزیه‌کردن برنامه به‌شماری شیء به نام Chare است. Chareها با یکدیگر تعامل دارند و به پیام‌ها وابسته هستند. Chareها در زمان اجرای برنامه با یک سیستم زمان اجرای پویا به پردازنده‌های مختلف متناظر می‌شوند که چارم++، امکان تغییر دادن این تناظر هنگام اجرای برنامه را فراهم می‌آورد. چنین امکانی برای متعادل کردن بار پردازشی روی پردازنده‌ها در زمان اجرا مفید است. امکان برنامه‌نویسی با شیوه‌ای
زمان اجرا مفید است. امکان برنامه‌نویسی با شیوه‌ای مبتنی بر رابط عبوری پیام، نیز با ارائه یک پیاده‌سازی از آن به نام رابط عبوری تطبیقی پیام به اختصار AMPI در لایه‌ای روی چارم++، فراهم شده‌است. Unified Parallel C. زبانی بر پایه C99 است که قابلیت‌های آن را برای برنامه‌نویسی موازی برای سیستم‌های دارای حافظه اشتراکی یا توزیع‌یافته گسترش می‌دهد. مبنای برنامه‌نویسی در UPC بر پایه اشتراک داده میان پردازنده‌های مختلف است، به گونه‌ای که همه پردازنده‌ها به تمام متغیرها در برنامه دسترسی دارند، اما هر متغیر در اصل به
در برنامه دسترسی دارند، اما هر متغیر در اصل به یک پردازنده مشخص تعلق دارد. موازی‌سازی برنامه هنگام آغاز اجرا شدن آن تعیین می‌شود و در طول اجرا تغییر نمی‌کند، زیرا تناظر میان متغیرها با پردازنده‌ها را در میانه اجرای برنامه نمی‌توان تغییر داد. برای نوشتن برنامه‌های پردازش موازی به این‌گونه، UPC چهار دسته ساختار به ابزارهای عادی C می‌افزاید: کاربردهای پردازش موازی. پیش‌بینی وضعیت اب و هوایی: استفاده از مدل‌های ریاضی از اقیانوس و جو و گرفتن مشاهدات فعلی آب‌وهوا و پردازش این داده‌ها با مدل‌های رایانه‌ای برای
و پردازش این داده‌ها با مدل‌های رایانه‌ای برای پیش‌بینی وضعیت آینده آب و هوا. مسائل اقتصادی جامعه: پردازش موازی برای مدل‌سازی اقتصاد یک جهان یا ملت استفاده می‌شود. سیستم برنامه‌ها که شامل دستگاه‌های محاسبه خوشه‌ای هستند، برای پیاده‌سازی الگوریتم‌های موازی در راستای بهینه‌سازی در چنین مدل‌های اقتصادی استفاده می‌شود.هوش مصنوعی و اتوماسیون: هوش مصنوعی یا هوش ماشینی (به انگلیسی: Artificial Intelligence)هوشی که یک ماشین در شرایط مختلف از خود نشان می‌دهد، گفته می‌شود. که در این سیستم‌ها تا حد زیادی از پردازش
می‌شود. که در این سیستم‌ها تا حد زیادی از پردازش موازی استفاده می‌شود. برای نمونه در ۴ عمل ۱)پردازش تصویر ۲)پردازش زبان‌های طبیعی ۳) تشخیص الگوها ۴)سیستم‌های خبره ف پردازش موازی کاربرد دارد. نرم‌افزار پزشکی:پردازش موازی در پردازش تصویر پزشکی استفاده می‌شود. برای نمونه برای اسکن بدن انسان و اسکن مغز انسان، در بازسازی MRI برای تشخیص مهره‌ها استفاده می‌شود. منابع. ویکی‌پدیای انگلیسی
آرداشس خان پادماگریان (؛ ملقب به اردشیر خان زادهٔ ۱۸۶۳ - درگذشته ۱۹۲۸)، سینمادار ارمنی‌تبار اهل ایران بود. زندگی. در سال ۱۸۶۳ میلادی (۱۲۴۲ خورشیدی) زاده شد. از ارمنیان تبریز بود و به وثوق التجار شهرت داشت کارش تجارت پارچه بود و به همین سبب به کشورهای همسایه ایران سفر می‌کرد پادماگریان که با نام اردشیرخان نیز شناخته می‌شد. نخستین بار در ۱۹۰۰ (۱۲۷۹) به فرانسه سفر کرد و تصاویر متحرک بر پرده را دید. سوغات او از این سفر یک دوچرخه یک گرامافون یک دستگاه نمایش فیلم بود. پادماگریان به عنوان یکی از نخستین پیشگامان
بود. پادماگریان به عنوان یکی از نخستین پیشگامان تاریخ سینمای ایران در زمینه سینماداری در ۱۹۱۲ (۱۲۹۱) سالن خود را با نام تجدد در خیابان علاءالدوله روبروی بانک ایران و روس (فردوسی کنونی روبه روی بانک پس‌انداز ملی ایران) راه‌اندازی کرد. به دلایلی ناروشن این سال یک سال بعد تعطیل شد و پادماگریان سالن جدیدی را در ۱۹۱۵ (۱۲۹۴) با نام مدرن سینما افتتاح کرد اما این سالن نیز مجدداً تعطیل شد و دو سال بعد در ۱۹۱۷ (۱۲۹۶) پادماگریان سالن دیگری را با نام سینما خورشید افتتاح کرد آرداشس پادماگریان معمولاً فیلم‌هایش را خود
کرد آرداشس پادماگریان معمولاً فیلم‌هایش را خود از اروپا وارد می‌کرد و از آنجایی که خورشید نیز مجدداً تعطیل شد یک بار دیگر نیز در ۱۹۲۰ (۱۲۹۹) اقدام به تأسیس سینمایی در هوای آزاد کرد که واقع در باغی در خیابان امیریه بود از آنجایی که در خیابان امیریه چراغ برق نصب شده بود هر بار به محض راه‌اندازی دستگاه نمایش برق خیابان دچار اختلال می‌شد و به همین دلیل نظمیه دستور تعطیلی سینما را صادر کرد. در ۱۳۰۷ خورشیدی (۱۹۲۸ میلادی) پادماگریان برای معالجه به پاریس رفت و پس از یک عمل جراحی ناموفق در سن ۶۵ سالگی درگذشت.
آنوشاوان (آنوش) وارطانیان (؛ زاده ۱۲۸۶ – درگذشته ۱۳۵۰)، بازیگر ارمنی‌تبار اهل ایران بود. زندگی‌نامه. در سال ۱۲۸۶ خورشیدی (۱۹۰۷ میلادی) در شهر ارومیه زاده شد. دارای مدرک تحصیلی دیپلم بود. وی فعالیت هنری را سال ۱۳۰۸ با گروه تئاتر ارومیه آغاز کرد. نخستین تجربه سینمایی او بازی در فیلم "وسوسه شیطان" به کارگردانی محمد زرین‌دست بود. آنوش سال ۱۳۵۰ (۱۹۷۱) در تهران درگذشت.
واهان ترپانچیان ؛ ۱۹۱۲ – ۱۹۹۸)، فیلم‌بردار، متخصص امور لابراتوار و تهیه‌کننده ارمنستانی-ایرانی بود. وی بین سال‌های ۱۹۵۱ تا ۱۹۵۵ میلادی (۱۳۳۰–۱۳۳۴) فعالیت می‌کرد. زندگی‌نامه. وی در ۱۹۱۲ میلادی (۱۲۹۱ خورشیدی) در ارزروم، ارمنستان غربی زاده شد. پس از قتل پدرش در نسل‌کشی ارمنی‌ها در سه سالگی همراه مادرش به سوریه گریخت و سپس به ایران آمد و مقیم تهران شد. پس از این که سال‌ها در زمینه عکاسی فعالیت کرد و تجربیات فراوانی اندوخت. در ۱۹۳۸ (۱۳۱۷) آتلیه عکاسی «فتو واهه» را در خیابان نادری تأسیس کرد واهان «نخستین
واهه» را در خیابان نادری تأسیس کرد واهان «نخستین لابراتوار ظهور و چاپ عکس رنگی در ایران» را دایر کرد و اولین کسی است که نگاتیو رنگی را در ایران به چاپ رساند در ۱۹۵۱ (۱۳۳۰) همراه با سیمیک کنستانتین، ابوالقاسم رضایی و جانی باغداساریان «استودیو البرز» را بنیان‌گذاری کرد. ترپانچیان در نخستین محصول استودیو البرز که با نام "دستکش سفید" توسط پرویز خطیبی در ۱۹۵۱ (۱۳۳۰) ساخته شد. علاوه بر تهیه کنندگی، فیلم‌بردار نیز بود این فیلم که به صورت ریورسال فیلم‌برداری شد نخستین فیلم ناطق ۱۶ میلی‌متری سینمای ایران محسوب
نخستین فیلم ناطق ۱۶ میلی‌متری سینمای ایران محسوب می‌شود. در فیلم‌های "زنده باد خاله" و "عمر دوباره" از دیگر محصولات استودیو البرز نیز فیلم‌بردار بود و در فیلم‌های دیگر این استودیو به نام‌های "لغزش" و "گناهکار" به عنوان تهیه‌کننده همکاری داشت. ترپانچیان فیلم‌برداری "حاکم یک روزه"، "نیمه راه زندگی"، "پنجمین ازدواج" را برای سایر استودیوها انجام داد علاوه بر اینها در عنوان‌بندی بسیاری از فیلم‌ها نیز نام فتو واهه (استودیوی عکاسی متعلق به واهان آمده است) در ۱۹۷۳ (۱۳۵۲) به ایالات متحده آمریکا مهاجرت کرد و در
(۱۳۵۲) به ایالات متحده آمریکا مهاجرت کرد و در همان‌جا در ۱۹۹۸ (۱۳۷۷) در سن ۸۶ سالگی درگذشت.
آکسونوتمزیس به معنای آسیب آکسون و غلاف میلین (در صورت وجود) آن است. در آکسونوتمزیس سلول‌های شوان که وظیفه ساختن میلین را در دستگاه عصبی محیطی برعهده دارند و همچنین بافت‌های همبند در عصب محیطی مربوطه سالم هستند. در این نوع از آسیب عصب محیطی، به علت تخریب آکسون‌ها و غلاف میلین آن‌ها در بخش پایین محل ضایعه، پدیده فساد والرین را به همراه دارد. قطعه فوقانی آکسون آسیب دیده، برخلاف قطعه پایینی (دیستال) که دچار فساد و تخریب می‌گردد، تقریباً از محل ضایعه از طریق جوانه ای که دارای مخروط رشد(Growth cone) است، به سمت
ای که دارای مخروط رشد(Growth cone) است، به سمت اندونوریوم هدایت می‌شود. سلول‌های شوان با ایجاد راهی مناسب در فیبرهای اعصاب محیطی، نقش مهمی در هدایت جوانه‌ها به سمت لوله اندونوریوم دارند. سدن(Seddon)در سال ۱۹۴۳، ضایعات اعصاب محیطی را به سه دسته نوروپراکسی، آکسونوتمزیس و نوروتمزیس تقسیم‌بندی کرد که آکسونوتمزیس از نظر شدت، آسیبی بیشتر از نوروپراکسی (قطع فیزیولوژیکی عصب) محسوب می‌گردد. سرعت ترمیم فیبرهای عصبی از یک الی چهار میلی‌متر در روز متفاوت است. سرعت بازسازی آکسون‌ها در تنه عصب محیطی نسبت به شاخه‌های