stanford-oval/wikipedia huggingface dataset:
رایانش موازی
زمینه > وابستگی‌ها

درک وابستگی داده‌ها در اجرای الگوریتم‌های موازی اساسی است. هیچ برنامه‌ای نمی‌تواند سریعتر از طولانی‌ترین زنجیره محاسبات وابسته (معروف به مسیر بحرانی) اجرا شود، زیرا محاسباتی که به محاسبات قبلی در زنجیره بستگی دارند باید به ترتیب اجرا شوند. با این حال، بیشتر الگوریتم‌ها صرفاً از یک زنجیره طولانی محاسبات وابسته تشکیل نشده‌اند. معمولاً فرصت‌هایی برای اجرای محاسبات مستقل به‌طور موازی وجود دارد.
فرض کنید Pi و Pj دو بخش برنامه باشند. شرایط برنشتاین زمانی را توصیف می‌کند که این دو مستقل باشند و بتوانند به‌طور موازی اجرا شوند. برای Pi، فرض کنید Ii همه متغیرهای ورودی و Oi متغیرهای خروجی باشند، و به همین شکل، برای Pj. دو قسمت Pi و Pj در صورت برآورده کردن شرایط زیر مستقل هستند:
نقض شرط اول وابستگی جریان را ایجاد می‌کند، به این معنی که نخستین بخش نتیجه‌ای تولید می‌کند که توسط بخش دوم استفاده می‌شود. شرط دوم نشان دهندهٔ ضد وابستگی است، بدین معنی که قطعه دوم متغیر مورد نیاز بخش اول را تولید می‌کند. شرط سوم و نهایی وابستگی خروجی را نشان می‌دهد: وقتی دو بخش در یک مکان بنویسند، نتیجهٔ نهایی مربوط به آخرین قسمت اجرا شده از نظر منطقی است.
توابع زیر را در نظر بگیرید، که انواع مختلفی از وابستگی‌ها را نشان می‌دهد:
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
در این مثال، هیچ وابستگی بین دستورالعمل‌ها وجود ندارد، بنابراین می‌توان همه آنها را به‌طور موازی اجرا کرد.
شرایط برنشتاین اجازه نمی‌دهد حافظه بین فرآیندهای مختلف تقسیم شود. برای این کار، برخی از ابزارهای اعمال نظم بین دسترسی‌ها لازم است؛ مانند سمافورها، موانع یا سایر روش‌های همگام سازی.
تاریخچه > دهه ۱۹۵۰

ایده استفاده از موازی‌سازی چنددستور، چندداده (به انگلیسی: Multiple Instruction, Multiple Data) یا به اختصار (en:MIMD) به سال ۱۹۵۴ بر می‌گردد، جایی که نخستین کامپیوتر تجاری محاسبات اعداد ممیز شناور توسط جن آمدال در شرکت آی بی ام با نام ۷۰۴ تولید شد. در آوریل ۱۹۵۸ اس. جیل (فرانتی)، بحث انشعاب و انتظار را در برنامه‌نویسی موازی مطرح کرد. همچنین در همین سال دو تن از پژوهشگران شرکت آی بی ام به نام‌های جان کوک و دنییل اسلوتنیک، ایده استفاده از موازی‌سازی در محاسبات عددی را برای نخستین بار مطرح کردند.
تاریخچه > دهه ۱۹۶۰

در سال ۱۹۶۲ شرکت باروز، کامپیوتر دی ۸۲۵ که دارای ۴ پردازنده و توانایی دسترسی به ۱۶ ماژول حافظه از طریق سوییچ چلیپایی بود را معرفی کرد. در سال ۱۹۶۷، آمدال و اسلوتنیک در کنفرانس پردازش اطلاعات در آمریکا، قانون آمدال را معرفی کردند که محدودیت افزایش سرعت در برابر موازی‌سازی را مطرح می‌کند. در سال ۱۹۶۹ شرکت هانی ول، سیستم چندپردازنده‌ای را معرفی کرد که دارای ۸ پردازنده به صورت موازی بود.
تاریخچه > دهه ۱۹۸۰

نخستین کامپیوتر مدرن یک دستور، چند داده (به انگلیسی: Single Instruction, Multiple Data) یا به اختصار (en:SIMD) در سال ۱۹۸۷ با نام ماشین متفکر توسط دنی هیلز و شرلی هندلر بازسازی شد.
تاریخچه > دهه ۱۹۹۰

در دهه ۱۹۹۰ تولید کامپیوترهای یک دستور، چندداده روند رو به رشدی پیدا کردند، در سال ۱۹۹۵ شرکت سان‌میکروسیستم UltraSPARC را معرفی کرد. همچنین شرکت اینتل در سال ۱۹۹۶ نخستین کامپیوتر رو میزی دارای سیستم یک‌دستور، چندداده برای سیستم‌های ۳۲ بیتی معرفی کرد. در سال ۱۹۹۶ استاندارد (en:POSIX Threads) برای برنامه‌نویسی چند نخی معرفی شد. همچنین در این دهه معماری (en:OpenMP) در سال ۱۹۹۷ برای برنامه‌نویسی سیستم‌های موازی با زبان فرترن معرفی گردید، و در سال ۱۹۹۸ نیز نسخه C/C++‎ این معماری معرفی شد.
تاریخچه > سال ۲۰۰۰ تا کنون

از سال ۲۰۰۰ تا کنون نسخه‌های بهبود یافته‌ای از OpenMP ارائه شده‌است. در سال ۲۰۰۰ نسخه ۲٫۰ فرترن و در سال ۲۰۰۲ نسخه ۲٫۰ سی پلاس پلاس OpenMP ارائه شد. نسخه ۲٫۵ در سال ۲۰۰۵ و نسخه ۳٫۰ در سال ۲۰۰۸ ارائه شد. نسخه ۴٫۰ برنامه در سال ۲۰۱۲ ارائه شد.
ارتباط بین پردازش‌ها

پردازش‌ها (به انگلیسی: Process) در برنامه‌نویسی موازی برای انجام محاسبات خود نیاز به برقراری ارتباط با یکدیگر دارند، که روش‌های زیر برای این کار می‌باشند:
حافظه اشتراکی (en: Shared Memory)
تبادل پیام (en: Message Passing)
مدل ضمنی (به انگلیسی: Implicit)
ارتباط بین پردازش‌ها > حافظه اشتراکی

در حافظه اشتراکی، وظایف (به انگلیسی: Task) موازی برای برقراری ارتباط با یکدیگر از یک فضای آدرس اشتراکی که توانایی نوشتن و خواندن غیرهمزمان (به انگلیسی: asynchronous) را دارد استفاده می‌کنند. در این حالت برای کنترل دسترسی‌های همزمان (به انگلیسی: synchronous) وظایف به این آدرس‌ها نیاز به مکانیزم‌هایی مانند قفل‌ها، سمافورها و مانیتورها است.
ارتباط بین پردازش‌ها > تبادل پیام

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

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

طبق قانون آمدال در برنامه‌نویسی موازی، باید طوری برنامه را به دو قسمت موازی و سریال تقسیم کرد، که مقدار سرباری (به انگلیسی: Overhead) که به سیستم به دلیل تقسیم وظایف میان نخ‌ها/پردازنده‌ها تحمیل می‌شود از مقدار سودی که به دلیل موازی کردن برنامه بدست می‌آوریم کمتر باشد.
اصول برنامه‌نویسی موازی > دانه‌دانه کردن

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

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

عدم تعادل بار (به انگلیسی: Load Imbalance) به حالتی گفته می‌شود که در آن بعضی از پردازنده‌ها در برخی زمان‌ها به دلایل زیر کاری را انجام نمی‌دهند:
موزات ناکافی.
وظایف غیرهم‌اندازه.
تعادل بار به دو صورت ایستا (به انگلیسی: Static)، یا پویا (به انگلیسی: Dynamic) در زمان اجرا انجام می‌پذیرد.
اصول برنامه‌نویسی موازی > همگام سازی

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

شرایط مسابقه (به انگلیسی: Race Condition) یکی از خطاهای رایج در برنامه‌نویسی موازی به دلیل دسترسی همزمان وظایف به منابع است که این خطاها به صورت غیرقطعی بوده (به انگلیسی: non-deterministic) و لذا تشخیص آنها سخت است. برای جلوگیری از به وجود آمدن این شرایط می‌توان از قفل‌های سخت‌افزاری یا نرم‌افزاری استفاده کرد.
ابزارهای برنامه‌نویسی موازی

با استفاده از ابزارها، برنامه‌نویس می‌تواند خود به طراحی روند اجرای موازی برنامه بپردازد و برای اموری مانند متغیرهای اشتراکی، وابستگی ورودی و خروجی رشته‌های موازی، ارتباط میان رشته‌های پردازشی یا پردازه‌ها و تجزیه‌پذیری بنیادی راه‌حل مسئله مورد نظر تصمیم بگیرد و شیوه توزیع شدن محاسبه، متغیرها و اشیا را طراحی کند. این دسته ابزارها خود به دو گروه عمده تقسیم می‌شوند:
ابزارهای برنامه‌سازی برای سیستم‌های دارای حافظه اشتراکی
ابزارهای برنامه‌نویسی برای سیستم‌های دارای حافظه توزیع‌شده (en: Distributed Memory).
ابزارهای برنامه‌نویسی موازی > ابزارهای برنامه‌نویسی حافظه اشتراکی > POSIX Threads

مجموعه‌ای از کتابخانه‌های استاندارد به زبان C، که دارای توابعی برای برنامه‌نویسی موازی چندنخی است و معمولاً با عنوان Pthreads شناخته می‌شود. در Pthreads نخ‌ها از یک فضای آدرس دهی مشترک استفاده می‌کنند که کنترل و همگام‌سازی دسترسی نخ‌ها به این حافظه بر عهده برنامه‌نویس است. همچنین هر نخ فضای آدرس مخصوص به خود را دارد. Pthreads برای برنامه‌های که دارای ویژگی‌های زیر هستند، می‌تواند مناسب باشد:
چند وظیفه به صورت همزمان، قابلیت اجرای پردازش روی داده‌های برنامه را داشته باشند.
قطعه‌های از برنامه که زمان زیادی را منتظر ورودی/خروجی می‌مانند.
برنامه‌هایی که در آنها برخی کارها نسبت به بقیه دارای اولویت باشد. (وقفه‌های اولویت)
ابزارهای برنامه‌نویسی موازی > ابزارهای برنامه‌نویسی حافظه اشتراکی > POSIX Threads > دلایل استفاده از Pthreads

Pthreads، هنگام اجرای برنامه کار پردازنده را با کار ورودی/خروجی همپوشانی می‌سازد.
نخ‌ها با سربار بسیار کمتری نسبت به پردازش‌ها در سیستم ایجاد می‌شوند.
تمام نخ‌ها در داخل یک پردازش، از یک فضای آدرس اشتراکی استفاده می‌کنند.
ابزارهای برنامه‌نویسی موازی > ابزارهای برنامه‌نویسی حافظه اشتراکی > OpenMP(open multi-processing) ‎

OpenMP یک واسط برنامه‌نویسی کاربردی (en: API) برای برنامه‌نویسی موازی رشته‌ها در سیستم‌های حافظه اشتراکی با یکی از سه زبان C, C++‎ یا فورترن است و از معماری‌های مختلفی از جمله پلتفرم‌های ویندوز و یونیکس پشتیبانی می‌کند. البته تولیدکنندگان کامپایلر برای زبان‌های دیگر از جمله جاوا نیز امکان نوشتن برنامه با رابط OpenMP را فراهم کرده‌اند.
باید توجه داشت، OpenMP تضمین نمی‌کند که از حافظه اشتراکی استفاده بهینه خواهد کرد. همچنین مواردی مانند وابستگی داده‌ها، شرایط مسابقه یا بن‌بست‌ها(به انگلیسی: deadlock) باید توسط خود برنامه‌نویس در کد برنامه کنترل شود وOpenMP عموماً نمی‌تواند کاری دربارهٔ آن‌ها انجام دهد. همزمان سازی ورودی و خروجی هنگام دسترسی موازی و چک کردن ترتیب اجرای کد برنامه نیز از جمله وظایف برنامه‌نویس است و از عهده OpenMP خارج است. به‌این ترتیب، برنامه‌نویس باید ساختار کد و الگوریتم خود را کاملاً کنترل کرده و اطمینان حاصل کند که موارد ذکر شده در اجرای برنامه رخ نخواهد داد.
ابزارهای برنامه‌نویسی موازی > ابزارهای برنامه‌نویسی حافظه اشتراکی > OpenMP(open multi-processing) ‎ > دلایل و مزایای استفاده از OpenMP

سختی استفاده از کتابخانه‌های مربوط به نخ‌ها، رابط‌هایی (به انگلیسی: Interface ) مانند Pthreads دارای تعداد زیادی فراخوانی کتابخانه‌ای (به انگلیسی: Library Call ) برای مقدار دهی اولیه(به انگلیسی: Initialization ) ، همگام سازی، ساخت نخ و دیگر کارها دارند.
سادگی انجام موازی‌سازی برنامه سریال با برچسب زنی(به انگلیسی: Annotation) کد برنامه که موازات را نشان می‌دهد.
مقیاس پذیری (به انگلیسی: Scalibility) و کارایی خوب در صورت استفاده صحیح.
قابل حمل بودن(به انگلیسی: Portable) برنامه نوشته شده با OpenMP، به دلیل پشتیبانی بسیاری از کامپایلرها از OpenMP.
عدم نیاز به برنامه‌نویسی‌های پیچیده توسط برنامه‌نویس.
اجرا شدن هر نخ برنامه در OpenMP توسط نخ‌های سخت‌افزاری.
ابزارهای برنامه‌نویسی موازی > ابزارهای برنامه‌نویسی سیستم‌های دارای حافظه توزیع‌یافته > رابط عبور پیام

متداول‌ترین شیوه برنامه‌نویسی موازی استفاده از MPI است. رابط عبور پیام، ویژگی‌های یک واسط برنامه‌نویسی کاربردی کلی برای برنامه‌نویسی موازی را برای سیستم‌های دارای حافظه توزیع‌یافته مانند کلاسترهای تیغه‌ای و مجموعه آن‌ها تعیین می‌کند و به خودی خود یک ابزار نیست، بلکه یک طرح ویژگی‌ها (به انگلیسی: Specification) و یک پروتکل ارتباطی به‌شمار می‌رود و همان‌گونه که از نامش پیداست، شیوه صحبت کردن سیستم‌های موازی با هم را تعیین می‌کنند.
مهم‌ترین مزیت روش رابط عبور پیام به سایر روش‌های عبور پیام، قابل حمل بودن و سرعت بالای آن است. سرعت بالای این روش به این دلیل است که هنگام اجرا بر روی هر سخت‌افزاری برای آن سخت‌افزار بهینه می‌شود. مزیت بزرگ دیگر این روش، توانایی فراخوانی توابع آن با زبان‌های C++‎، C، فورترن، جاوا، C#‎ و پایتون است.
زبان‌های برنامه‌نویسی موازی

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

لیندا به دسته‌ای از زبان‌های برنامه‌نویسی موازی تعلق دارد که در آن‌ها تقسیم کارهای درون برنامه به رشته‌ها و فرستادن رشته‌ها به پردازنده‌ها باید به‌طور صریح در متن کد مشخص شود، اما ارتباط میان رشته‌های ایجادشده بر عهده برنامه‌نویس نیست.
لیندا به خودی خود یک زبان قابل استفاده مستقیم نیست و به اصطلاح یک زبان هماهنگ‌سازی (به انگلیسی: Coordination) خوانده می‌شود. پیاده‌سازی‌هایی از آن برای بسیاری از زبان‌های برنامه‌نویسی و اسکریپت‌نویسی متداول، از جمله جاوا، C و C++‎، پایتون و روبی ارائه شده‌است. خصلت اصلی لیندا آن است که به جای مدل ارتباط نقطه به نقطه که در بیشتر رهیافت‌های برنامه‌نویسی موازی دنبال می‌شود، مفهومی به نام فضای چندگانه (به انگلیسی: tuple space) را ارائه می‌کند که بستر اصلی موازی‌سازی در مدل این زبان است. فضای چندگانه یک مخزن عمومی داده‌ها است که داده‌ها را می‌توان در آن ذخیره و سپس از آن بازیابی کرد.
زبان‌های برنامه‌نویسی موازی > ارلنگ

ارلنگ یک زبان زمان اجرا است که از ابتدا با هدف مستقیم ایجاد برنامه‌های موازی بی‌درنگ با آستانه تحمل خطای بالا و تا حد زیادی با در نظر داشتن سیستم‌های مخابراتی نوشته‌شده‌است. ارتباط میان پردازش‌ها در ارلنگ صریح است و همانند OpenMP باید توسط برنامه‌نویس تعیین شود، اما بر خلافOpenMP، ارلنگ از تبادل پیام برای ارتباط میان روندها استفاده می‌شود. ارلنگ زبانی مبتنی بر تابع‌ها است، به این مفهوم که پردازش داده‌ها در یک برنامه ارلنگ در قالب محاسبه تابع‌های ریاضی صورت می‌پذیرد و تقریباً همه چیز با تعریف کردن تابع‌ها انجام می‍شود. موازی‌سازی پردازش در ارلنگ با تعریف کردن روندهایی که اشتراکی با هم ندارند، انجام می‌شود. ارتباط میان این روندها توسط یک سیستم تبادل پیام ناهمگام انجام می‌شود.
زبان‌های برنامه‌نویسی موازی > چارم++

چارم++، زبانی مبتنی بر C++‎ است که با هدف آسان کردن برنامه‌نویسی موازی و با ارائه قابلیت‌های برنامه‌نویسی موازی در سطح بالایی از انتزاع ارائه شده‌است. مبنای موازی‌سازی برنامه در چارم++، بر تجزیه‌کردن برنامه به‌شماری شیء به نام Chare است. Chareها با یکدیگر تعامل دارند و به پیام‌ها وابسته هستند. Chareها در زمان اجرای برنامه با یک سیستم زمان اجرای پویا به پردازنده‌های مختلف متناظر می‌شوند که چارم++، امکان تغییر دادن این تناظر هنگام اجرای برنامه را فراهم می‌آورد. چنین امکانی برای متعادل کردن بار پردازشی روی پردازنده‌ها در زمان اجرا مفید است. امکان برنامه‌نویسی با شیوه‌ای مبتنی بر رابط عبوری پیام، نیز با ارائه یک پیاده‌سازی از آن به نام رابط عبوری تطبیقی پیام به اختصار AMPI در لایه‌ای روی چارم++، فراهم شده‌است.
زبان‌های برنامه‌نویسی موازی > Unified Parallel C

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

پیش‌بینی وضعیت اب و هوایی: استفاده از مدل‌های ریاضی از اقیانوس و جو و گرفتن مشاهدات فعلی آب‌وهوا و پردازش این داده‌ها با مدل‌های رایانه‌ای برای پیش‌بینی وضعیت آینده آب و هوا.
مسائل اقتصادی جامعه: پردازش موازی برای مدل‌سازی اقتصاد یک جهان یا ملت استفاده می‌شود. سیستم برنامه‌ها که شامل دستگاه‌های محاسبه خوشه‌ای هستند، برای پیاده‌سازی الگوریتم‌های موازی در راستای بهینه‌سازی در چنین مدل‌های اقتصادی استفاده می‌شود.
هوش مصنوعی و اتوماسیون: هوش مصنوعی یا هوش ماشینی (به انگلیسی: Artificial Intelligence)هوشی که یک ماشین در شرایط مختلف از خود نشان می‌دهد، گفته می‌شود. که در این سیستم‌ها تا حد زیادی از پردازش موازی استفاده می‌شود. برای نمونه در ۴ عمل ۱)پردازش تصویر ۲)پردازش زبان‌های طبیعی ۳) تشخیص الگوها ۴)سیستم‌های خبره ف پردازش موازی کاربرد دارد.
نرم‌افزار پزشکی:پردازش موازی در پردازش تصویر پزشکی استفاده می‌شود. برای نمونه برای اسکن بدن انسان و اسکن مغز انسان، در بازسازی MRI برای تشخیص مهره‌ها استفاده می‌شود.
نمایش گرافیکی قانون آمدال. افزایش سرعت برنامه ناشی از موازی‌سازی به میزان قابلیت موازی‌سازی شدن برنامه بستگی دارد. برای نمونه، اگر ۹۰٪ از برنامه را بتوان موازی‌سازی کرد، حداکثر افزایش سرعت نظری با استفاده از رایانش موازی، هرچقدر هم که تعداد پردازنده‌ها افزایش یابند، ۱۰ برابر خواهد بود.
فرض کنید که یک کار دارای دو قسمت مستقل است، A و B. قسمت B تقریباً ۲۵٪ از زمان کل محاسبه را می‌گیرد. با تلاش خیلی زیاد، ممکن است بتوانید این قسمت را ۵ برابر سریعتر کنید، اما این کار فقط باعث می‌شود تا زمان کل محاسبه اندکی کم شود. در مقابل، ممکن است دو برابر کردن سرعت بخش A راحت تر باشد. این کار باعث افزایش سرعت بیشتری در کل کار در مقایسه با بهینه‌سازی قسمت B می‌شود، با اینکه افزایش سرعت قسمت B بیشتر از A بوده‌است (۵ برابر در برابر ۲ برابر).
نمایش گرافیکی قانون گوستافسون
تقطیر استخراجی

تقطیر استخراجی(به انگلیسی: Extractive distillation) گونه ای از عملیات تقطیر است که برای جداسازی محلول‌های چند جزئی استفاده می‌شود. اصول این روش همانند تقطیر آزئوتروپی است؛ یعنی با افزودن یک حلال مناسب، فراریت نسبی سازندگان اصلی را تغییر داده و جداسازی را ممکن می‌سازند. به عنوان نمونه جداسازی تولوئن از هیدروکربن‌های پارافینی از این روش و با استفاده از حلال فنول صورت می‌گیرد.
خلیج لوژین

| خلیج لوژین Бухта Лужина  (روسی) | خلیج لوژین Бухта Лужина  (روسی) |
| --- | --- |
Horseshoe Bay: Horseshoe Bay
خلیج لوژینLocation in Magadan Oblast: خلیج لوژینLocation in Magadan Oblast
موقعیت: خاور دور روسیه
مختصات: ۵۹°۱۶′ شمالی ۱۴۷°۳۸′ شرقی﻿ / ﻿۵۹٫۲۶۷°شمالی ۱۴۷٫۶۳۳°شرقی﻿ / 59.267; 147.633
منبع‌های دریا/اقیانوس: دریای اختسک
کشورهای حوضه: روسیه
بیشترین درازا: ۵ کیلومتر (۳٫۱ مایل)
بیشترین پهنا: ۱۰ کیلومتر (۶٫۲ مایل)
میانگین ژرفا: ۹ متر (۳۰ فوت)
پی‌نوشت: 
خلیج لوژین (انگلیسی: Luzhin Bay) یک خلیج در استان ماگادان کشور روسیه است.
اردک افراشته‌دم

| اردک‌های افراشته‌دم محدودهٔ زمانی: میوسن پیشین تا اکنون | اردک‌های افراشته‌دم محدودهٔ زمانی: میوسن پیشین تا اکنون |
| --- | --- |
اردک‌های افراشته‌دم، Oxyura: اردک‌های افراشته‌دم، Oxyura
رده‌بندی علمی: رده‌بندی علمی
فرمانرو:: جانوران
شاخه:: طنابداران
رده:: پرندگان
راسته:: غازسانان
تیره:: مرغابیان
سرده:: Oxyura
اردک‌های افراشته‌دم (نام علمی: Oxyura) نام یک سرده از زیرخانواده پهنه‌چینان است.
از این سرده در ایران تنها یک گونه دیده می‌شود به نام اردک سرسفید.
پروسیکلیدین

با فن‌سیکلیدین اشتباه نشود.
| 0 | 1 |
| --- | --- |
داده‌های بالینی: داده‌های بالینی
AHFS/Drugs.com: monograph
مدلاین پلاس: a605037
روش مصرف دارو: oral, تزریق ماهیچه‌ای, تزریق وریدی
کد ATC: N04AA04 
داده‌های فارماکوکینتیک: داده‌های فارماکوکینتیک
پیوند پروتئینی: ~100%-albumin
نیمه‌عمر حذف: ~12 h
شناسه‌ها: شناسه‌ها
 نام آیوپاک 1-cyclohexyl-1-phenyl-3-pyrrolidin-1-yl-propan-1-ol hydrochloride :  نام آیوپاک 1-cyclohexyl-1-phenyl-3-pyrrolidin-1-yl-propan-1-ol hydrochloride 
شمارهٔ سی‌ای‌اس: ۷۷-۳۷-۲  77-37-2 (free base)
پاب‌کم CID: ۲۰۷۸۴۱
دراگ‌بنک: DB00387
کم‌اسپایدر: ۴۷۵۰
UNII: C6QE1Q1TKR
ChEMBL: ChEMBL۱۷۶۱ Y
CompTox Dashboard (EPA): DTXSID2023515 
ECHA InfoCard: 100.000.931 
داده‌های فیزیکی و شیمیایی: داده‌های فیزیکی و شیمیایی
فرمول شیمیایی: C19H30ClNO۱
جرم مولی: 323.9 g/mol g·mol−1
  (صحت‌سنجی):   (صحت‌سنجی)
پروسیکلیدین (انگلیسی: Procyclidine) نوعی داروی آنتی کولینرژیک است که عموماً برای درمان پارکینسونیسم ناشی از دارو, آکانتیزی, دیستونی حاد و بیماری پارکینسون به کار می‌رود.
سکیورلول

سطح امنیتی یا سکیورلول (به انگلیسی: Securelevel) یک مکانسیم امنیتی در هسته سیستم‌عامل‌های خانواده بی‌اس‌دی است که به کاربر اجازه می‌دهد تا به اختیار خود برخی از قابلیت‌های سیستم را محدود کند. سطح امنیتی سیستم توسط یک متغیر sysctl به نام kern.securelevel کنترل می‌شود. این متغیر یک عدد صحیح بزرگتر از صفر می‌پذیرد که این عدد صحیح همان سطح امنیتی سیستم را مشخص می‌کند. هر پروسه‌ای که متعلق به کاربر ریشه است می‌تواند سطح امنیتی سیستم را بالا ببرد. اما فقط پروسه init می‌تواند آن را کاهش دهد. (آن هم نه در فری‌بی‌اس‌دی)
وقتی که این قابلیت در زندان‌های فری‌بی‌اس‌دی استفاده می‌شود، هر زندان می‌تواند علاوه بر سطح امنیتی سراسری (که بین میزبان و دیگر زندان‌ها مشترک است)، سطح امنیتی مختص به خود را هم داشته باشد. وقتی که هر دو سطح امنیتی سراسری و محلی تنظیم شده باشند، آن سطحی که بالاتر باشد برای زندان استفاده می‌شود. این کار به سیستم میزبان اجازه می‌دهد تا در یک سطح امنیتی پایینتر نسبت به زندان‌ها اجرا شود؛ بنابراین ممکن است سیستم میزبان قادر به دستکاری پرچم‌های فایل‌هایی باشد که زندان‌ها قادر به دستکاری آنها نیستند. سطول امنیتی را نباید با سطوح اجرایی اشتباه گرفت.
کونوهامارو ساروتوبی

| کونوهامارو ساروتوبی Konohamaru Sarutobi | کونوهامارو ساروتوبی Konohamaru Sarutobi |
| --- | --- |
شخصیت ناروتو , بوروتو: ناروتو نسل‌های بعدی: شخصیت ناروتو , بوروتو: ناروتو نسل‌های بعدی
آخرین حضور: قسمت 215 بوروتو: ناروتو نسل‌های بعدی
پدیدآور: ماساشی کیشیموتو
اطلاعاتِ درون‌داستانی: اطلاعاتِ درون‌داستانی
جنسیت: مذکر
پیشه: نینجا رهبر تیم ۷
خویشاوندان: هیروزن ساروتوبی(پدربزرگ) آسوما ساروتوبی (عمو) میرای ساروتوبی (دخترعمو)
صداپیشه: ژاپنی انگلیسی 
رده نینجا: گنین جونین
قد: سری اول:128.8-130.6 سری دوم:141.1
کونوهامارو ساروتوبی (به ژاپنی: 猿飛木ノ葉丸) یک شخصیت خیالی در مجموعه مانگا و انیمهٔ ناروتو اثر ماساشی کیشیموتو است. او در سری سوم، بوروتو: ناروتو نسل‌های بعدی، به عنوان مربی ظاهر می‌شود و رهبری تیم 3 که طبق یک درخواست رسمی به تیم 7 تغییر یافت که شامل شخصیت‌های کلیدی این سری، یعنی بوروتو اوزوماکی، سارادا اوچیها و میتسوکی هستند را بر عهده دارد.
کونوهامارو ساراتوبی آرزو دارد هوکاگه شود و ناروتو را استاد خود می‌داند او در سن 8 سالگی پدر بزرگش را از دست می‌دهد
و در سری دوم (ناروتو شیپودن) تبديل به یک گنین شده است
وی تکنیک راسنگان را از ناروتو ازوماکی یاد می‌گیرد و بسیاری تکنیک دیگر از ناروتو یاد می‌گیرد
او در زمان جنگ جهانی چهارم نینجای از دهکده در برابر دزد ها و راهزن ها محافظت می‌کند (همراه گنین های دیگر) 
کونوهامارو با تکنیک راسنگان خود یک پین را شکست می‌دهد و جان استاد خود را نجات میدهد
ماسیمو چاوارو

| ماسیمو چاوارو | ماسیمو چاوارو |
| --- | --- |
ماسیمو چاوارو: ماسیمو چاوارو
زادهٔ: ۷ نوامبر ۱۹۵۷ ‏(۶۷ سال) رم، ایتالیا
ملیت: ایتالیایی
پیشه: بازیگر
ماسیمو چاوارو (ایتالیایی: Massimo Ciavarro؛ زادهٔ ۷ نوامبر ۱۹۵۷) بازیگر اهل ایتالیا است.
از فیلم‌هایی که وی در آن نقش داشته‌است، می‌توان به سوبروله… دختر اهل رومانیولا، فروشگاه بزرگ، سفارش‌ها و نمی‌توانی به‌تنهایی خود را نجات دهی اشاره کرد.
گیاه علفی

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

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