واحد_پردازش_مرکزی
موازی سازی در سطح وظایف
رویکرد دیگر برای بهبود کارایی، اجرای چندین ریسمان یا فرایند به صورت موازی است. این بخش از حوزهٔ تحقیقات را رایانش موازی گویند. در تقسیم‌بندی فلین، این رویکرد جریان چندین دستورالعمل، جریان چندین داده (multiple instruction stream, multiple data stream) نام دارد. یک تکنولوژی که با این هدف استفاده شد، چند-پردازشی (multiprocessing) بود. در ابتدا، فرم محبوب این تکنولوژی، چند پردازشی متقارن (symmetric multiprocessing) نام داشت که در آن، تعداد اندکی پردازنده یک نمای یکپارچه از سیستم حافظه خود را به اشتراک می‌گذارند. در این طرح بندی، هر CPU دارای سخت‌افزار اضافه برای حفظ یک نمای به روز متداوم از حافظه است. با اجتناب از نماهای کهنهٔ حافظه، این پردازنده‌ها می‌توانند روی یک برنامه همکاری کنند و برنامه‌ها می‌توانند از یک پردازنده به پردازندهٔ دیگر مهاجرت کنند. برای افزایش تعداد پردازنده‌های همکاری کننده به بیش از تعداد معدود، طرح‌بندی‌هایی نظیر: دسترسی به حافظه به شکل غیر-یکپارچه (non-uniform memory access) و پروتکل‌های یکپارچه مبتنی بر-دایرکتوری (directory-based coherence protocols) در در دهه ۱۹۹۰ ارائه شدند. سیستم‌های چند فرایندی متقارن، دارای تعداد کمی پردازنده‌ها هستند، در حالیکه سیستم‌های دسترسی به حافظه به‌شکل غیر یکپارچه، با هزاران پردازنده ساخته شده‌اند. در ابتدا، چند-پردازشی، با استفاده از چندین پردازندهٔ مجزا و بوردهایی برای پیاده‌سازی اتصالات بین آن‌ها، ساخته شد. هنگامی که پردازنده‌ها و اتصالات بین آنها تماماً روی یک چیپ منفرد پیاده‌سازی می‌شوند، این تکنولوژی را چند-پردازشی سطح-تراشه (chip-level multiprocessing) می‌نامند و تک-تراشهٔ مورد نظر را، یک پردازندهٔ چند هسته ای می‌نامند. بعداً مشخص شد که موازی سازی ظریف تر، می‌تواند با یک برنامه منفرد وجود داشته باشد. یک برنامهٔ منفرد ممکن است دارای چندین ریسمان (یا تابع) باشد، که می‌توان آن‌ها را به صورت مجزا یا موازی اجرا کرد. برخی از قدیمی‌ترین موارد این تکنولوژی، فرآیندهای ورودی-خروجی همچون دسترسی-مستقیم-به-حافظه را به صورت یک ریسمان جدا از ریسمان محاسباتی، پیاده‌سازی می‌کردند. یک رویکرد کلی تر برای این تکنولوژی، در دهه ۱۹۷۰ ارائه شد که در آن، سیستم‌ها طوری طراحی می‌شدند تا چندین ریسمان محاسباتی را به شکل موازی اجرا کنند. به این تکنولوژی، چندریسمانی (multi-threading) می‌گویند. این رویکرد، در مقایسه با رویکرد چند-پردازشی به صرفه تر است، زیرا فقط تعداد اندکی از بخش‌های یک پردازنده برای پشتیبانی از چند ریسمانی باید تکثیر شوند، در حالیکه برای چند-پردازشی، باید کل پردازنده تکثیر شود. در رویکرد چند-ریسمانی، واحدهای اجرایی و سیستم حافظه (از جمله کش‌ها)، در بین چندین ریسمان مشترک هستند. مشکل رویکرد چند-ریسمانی این است که پشتیبانی سخت‌افزاری برای چند-ریسمانی در مقایسه با چند-پردازشی، برای نرم‌افزار نمایان تر است؛ بنابراین، نرم‌افزارهای ناظر همچون سیستم عامل، برای پشتیبانی از چند ریسمانی باید متحمل تغییرات زیادی شوند. یک نوع از چند ریسمانی که پیاده‌سازی شد، چند ریسمانی غیر همزمان نام دارد که در آن، یک ریسمان تا زمانی اجرا می‌شود که مجبور شود برای برگشتن داده از حافظه خارجی معطل شود، که در این هنگام، CPU بلافاصله به ریسمان دیگری که آماده اجرا است تعویض زمینه می‌کند. این تعویض معمولاً، در یک چرخه ساعت پردازنده انجام می‌گیرد؛ مثلاً سیستم UltraSPARC از این روش استفاده می‌کند. نوع دیگری از چند ریسمانی، چند ریسمانی همزمان نام دارد، که در آن، دستورالعمل‌های مربوط به چندین ریسمان، به صورت موازی در داخل یک چرخه ساعت پردازنده اجرا می‌شوند. به مدت چندین دهه، از ۱۹۷۰ تا اوایل ۲۰۰۰، در طراحی پردازنده‌های عمومی با کارایی بالا، تمرکز بیشتر روی دستیابی به موازی سازی بالا در سطح-دستورالعمل، از طریق تکنولوژی‌هایی نظیر: خط لوله، حافظه‌های نهان، اجرای سوپراسکالر، اجرای خارج از نوبت و … بود. این روند، منجر به تولید پردازنده‌های بزرگ و پرمصرف نظیر اینتل پنتیوم ۴ شد. در اوایل دههٔ ۲۰۰۰، به دلیل رشد ناسازگاری بین فرکانس‌های اجرایی پردازنده و فرکانس‌های اجرایی حافظه و همچنین افزایش روزافزون تولید گرما توسط پردازنده که ناشی از تکنیک‌های اختصاصی موازی سازی در سطح-دستورالعمل بود، طراحان پردازنده دیگر قادر به دستیابی به کارایی‌های بالاتر با استفاده از تکنیک‌های ILP نبودند. بعد از آن، طراحان پردازنده، از ایده‌های بازار رایانه‌های تجاری، همچون فرایند تراکنش که در آن، مجموع کارایی چندین برنامه یا همان رایانش توان عملیاتی(throughput computing)، مهمتر از عملکرد یک ریسمان یا یک فرایند بود، استفاده کردند. همه گیر شدن طراحی‌های پردازنده‌های دو هسته‌ای و چند هسته ای و به‌طور قابل ذکر، شباهت طراحی‌های جدید اینتل به معماری کمتر سوپراسکالر P6، گواه بر این قضیه است. طراحی‌های بعدی در خانواده‌های متنوعی از پردازنده‌ها، نمایانگر چند پردازشی در سطح-چیپ (CMP) بودند، از جمله: x86-64 Opteron وAthlon 64 X2 و SPARC UltraSPARC T1 و POWER4 و POWER5 IBM و همچنین چندین پردازندهٔ کنسول بازی ویدیویی، نظیر طراحی سه هسته ای PowerPC اکس باکس ۳۶۰ و ریزپردازنده سلولی ۷ هسته ای پلی استیشن ۳.