الگوریتم های چندریسمانی ( به انگلیسی: Multithreaded Algorithms ) الگوریتمهایی هستند که برای انجام کارهای موازی در روی رایانهای تک پردازنده و چندپردازنده استفاده می شوند. الگوریتم های سریال برای اجرا روی کامپیوترهای تک پردازنده ای مناسبند که در آن ها در هر لحظه فقط یک دستورالعمل اجرا می شود؛ اما الگوریتم های موازی قابلیت اجرا بر روی کامپیوترهای چندپردازنده را دارند که به آن ها قابلیت اجرای چندین دستورالعمل به صورت هم زمان را می دهد. برنامه نویسی چندریسمانه به دو دسته ایستا، وپویا تقسیم بندی می شود که در ادامه به توضیح هر کدام می پردازیم.
یک روش معمول برای برنامه نویسی کامپیوترهای موازی با حافظه مشترک استفاده از ریسمان سازی ایستا[ ۱] ( به انگلیسی: Static Threading ) است. که یک تجرید نرم افزاری از پردازنده های مجازی فراهم می کند و ریسمان ها از یک حافظه مشترک استفاده می کنند. در این روش به هر ریسمان شمارنده برنامه ( به انگلیسی: Program Counter ) اختصاص می دهیم و به همین دلیل است که می تواند مستقل از بقیه ریسمان ها کد مربوط به خود را اجرا کند. مدیریت این ریسمان ها بر عهده سیستم عامل می باشد. به این صورت که سیستم عامل می تواند در صورت لزوم هر یک از این ریسمان ها را روی پردازنده بارگذاری کند یا آن ها را از پردازنده خارج سازد تا ریسمان دیگری روی آن پردازنده شروع به اجرا شود. سیستم عامل به برنامه نویس این امکان را می دهد که ریسمان ها را ساخته یا آن ها را از بین ببرد. اما انجام این اعمال ب کندی صورت می گیرد. به همین دلیل اکثر اوقات ریسمان ها در طول اجرای برنامه ثابت باقی می مانند و به همین دلیل به آن ها ایستا گفته می شود.
برنامه نویسی چندریسمانی پویا به برنامه نویس اجازه می دهد در کاربردها از موازی سازی استفاده کند. با آن که کارایی محیط های چندریسمانی پویا هنوز در حال تکامل است، اما تقریباً تمام آن ها از دو ویژگی پشتیبانی می کنند: موازی سازی تودرتو و حلقه های موازی. موازی سازی تودرتو به زیرروال ها اجازه می دهد که تکثیر شوند که این به معنی ادامهٔ اجرای تابع فراخوانی کننده است در حالی که زیرروال فراخوانی شده هم زمان در حال محاسبهٔ نتیجهٔ خود است. یک حلقهٔ موازی، مشابه یک حلقهٔ دستور for معمولی است غیر از این که تکرارهای حلقه می توانند به صورت هم زمان اجرا شوند.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفیک روش معمول برای برنامه نویسی کامپیوترهای موازی با حافظه مشترک استفاده از ریسمان سازی ایستا[ ۱] ( به انگلیسی: Static Threading ) است. که یک تجرید نرم افزاری از پردازنده های مجازی فراهم می کند و ریسمان ها از یک حافظه مشترک استفاده می کنند. در این روش به هر ریسمان شمارنده برنامه ( به انگلیسی: Program Counter ) اختصاص می دهیم و به همین دلیل است که می تواند مستقل از بقیه ریسمان ها کد مربوط به خود را اجرا کند. مدیریت این ریسمان ها بر عهده سیستم عامل می باشد. به این صورت که سیستم عامل می تواند در صورت لزوم هر یک از این ریسمان ها را روی پردازنده بارگذاری کند یا آن ها را از پردازنده خارج سازد تا ریسمان دیگری روی آن پردازنده شروع به اجرا شود. سیستم عامل به برنامه نویس این امکان را می دهد که ریسمان ها را ساخته یا آن ها را از بین ببرد. اما انجام این اعمال ب کندی صورت می گیرد. به همین دلیل اکثر اوقات ریسمان ها در طول اجرای برنامه ثابت باقی می مانند و به همین دلیل به آن ها ایستا گفته می شود.
برنامه نویسی چندریسمانی پویا به برنامه نویس اجازه می دهد در کاربردها از موازی سازی استفاده کند. با آن که کارایی محیط های چندریسمانی پویا هنوز در حال تکامل است، اما تقریباً تمام آن ها از دو ویژگی پشتیبانی می کنند: موازی سازی تودرتو و حلقه های موازی. موازی سازی تودرتو به زیرروال ها اجازه می دهد که تکثیر شوند که این به معنی ادامهٔ اجرای تابع فراخوانی کننده است در حالی که زیرروال فراخوانی شده هم زمان در حال محاسبهٔ نتیجهٔ خود است. یک حلقهٔ موازی، مشابه یک حلقهٔ دستور for معمولی است غیر از این که تکرارهای حلقه می توانند به صورت هم زمان اجرا شوند.
wiki: الگوریتم های چندریسمانی