مرا به خاطر بسپار

محاسبات درون حافظه‌ای چیست؟

بازدید: 273 آخرین به‌روزرسانی: 27 مرداد 1403

مقدمه

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

محاسبات درون حافظه یا In-Memory Computing چیست؟

محاسبات درون حافظه (IMC) به نوعی از پردازش داده‌ها اطلاق می‌شود که در آن داده‌ها به جای ذخیره‌شدن روی دیسک‌های سنتی، در حافظه اصلی (RAM) ذخیره و پردازش می‌شوند. این رویکرد باعث افزایش چشمگیر سرعت دسترسی به داده‌ها و پردازش آن‌ها می‌شود، زیرا دسترسی به داده‌های موجود در RAM بسیار سریع‌تر از دسترسی به داده‌های ذخیره‌شده روی دیسک است. بیایید به توضیح برخی از اصطلاحات و مفاهیم مرتبط بپردازیم:
در IMC، داده‌ها به جای ذخیره در دیسک‌های کندتر، در RAM ذخیره می‌شوند.حافظه دسترسی تصادفی (Random Access Memory: RAMنوعی حافظه با سرعت بالا که داده‌ها را به صورت موقت ذخیره می‌کند و امکان دسترسی سریع به آن‌ها را فراهم می‌آورد. RAM را می‌توان برای بهبود کارایی با سهولت نسبی افزایش داد. حافظه اضافی به رایانه اجازه می‌دهد تا کارهای بیشتری را در یک زمان انجام دهد (اما در واقع آن را سریعتر نمی‌کند). از طرفی، سوئیچینگ بین برنامه‌های مختلف را بهبود می‌بخشد و به چندین برنامه اجازه می‌دهد بدون اینکه باعث کندی سیستم شود باز شوند. به علاوه، انرژی کمتری نسبت به درایوهای دیسک مصرف می‌کند.
IMC با حذف عملیات انتقال داده‌ها بین دیسک و حافظه و کاهش تاخیر این عملیات، سرعت پردازش را افزایش می‌دهد. در IMC، نیاز به اجرای کامل الزامات یکپارچگی، سازگاری، انزوا، دوام (ACID: Atomicity, Consistency, Isolation, Durability) که مجموعه‌ای از ویژگی‌های لازم برای تضمین اجرای صحیح و قابل اعتماد تراکنش‌های پایگاه داده هستند، کاهش می‌یابد زیرا داده‌ها به سرعت و بدون تأخیر دسترسی‌پذیر هستند.
با استفاده از IMC، برنامه‌های پردازش تراکنش‌های آنلاین (OLTP: Online Transaction Processing) می‌توانند به سرعت بیشتری دست یابند زیرا تراکنش‌ها نیازی به دسترسی به دیسک‌های کندتر ندارند. در این نوع از پردازش داده‌ها که در آن تراکنش‌ها به صورت بلادرنگ و همزمان انجام می‌شوند.

با استفاده از IMC، داده‌های مربوط به جلسات کاربر، داده‌های نشست (Session Data)، می‌توانند در RAM ذخیره شوند و این امر باعث می‌شود که دسترسی به این داده‌ها سریع‌تر و پاسخ‌دهی بهتر باشد.

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

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

معماری محاسبات درون حافظه‌ای

شکل زیر یک نمودار واضح و دقیق از معماری محاسبات درون حافظه‌ای (IMC) ارائه میکند:

معماری محاسبات درون حافظه‌ای

این نمودار شامل اجزای زیر است:
لایه کاربر/برنامه: در لایه‌ی بالا قرار دارد و نشان دهنده کاربران یا برنامه‌هایی است که با سیستم در تعامل هستند.
لایه شبکه داده‌های درون حافظه (IMDG): در زیر لایه کاربر/برنامه قرار دارد، جایی که داده‌ها برای دسترسی سریع در RAM ذخیره می‌شوند.
لایه ذخیره‌سازی داده: در پایین، برای ذخیره‌سازی دائمی مانند SSD یا HDD استفاده می‌شود.
لایه شبکه: اتصال چندین گره در لایه IMDG، امکان محاسبات توزیع شده را فراهم می‌کند.
فلش‌ها جریان داده را از لایه کاربر/برنامه به لایه IMDG برای دسترسی سریع و سپس به لایه ذخیره‌سازی داده برای ذخیره‌سازی دائمی نشان می‌دهند، که مزیت سرعت لایه IMDG را در مقایسه با ذخیره‌سازی سنتی برجسته می‌کند.

مثالی از موارد استفاده محاسبات درون حافظه‌ای

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

سیستم مدیریت پایگاه داده درون حافظه (IMDBMS)

درک کامل نیازها و اولویت‌های یک سازمان در تعیین بهترین انتخاب معماری پایگاه داده بسیار مهم است. IMDBMS ها (In Memory Data Base Management Systems) از روش‌های مختلفی برای ارائه پردازش پایگاه داده در حافظه استفاده می‌کنند.
IMDBMSهای مدرن نه تنها داده‌ها را در حافظه ذخیره می‌کنند، بلکه عملیات‌های درون حافظه را نیز انجام می‌دهند. همه داده‌ها ممکن است در حافظه ذخیره شوند، اما ممکن است در یک فرمت فشرده باشند که دسترسی و ذخیره داده‌ها را بهینه می‌کند. سیستم مدیریت پایگاه داده می‌تواند به گونه‌ای طراحی شود که قابلیت‌های ترکیبی را ارائه دهد، مانند ترکیب عملکرد یک درایو دیسک و فناوری‌های درون حافظه برای به حداکثر رساندن کارایی و به حداقل رساندن هزینه‌ها.
برای اطمینان از دوام داده‌ها در یک IMDBMS، باید به طور دوره‌ای از حافظه فرّار به یک شکل ذخیره‌سازی پایدارتر و طولانی مدت منتقل شود. یکی از روش‌های این کار گزارش تراکنش نامیده می‌شود که با عکس‌های فوری زمان‌بندی شده داده‌های درون حافظه به نوعی از ذخیره‌سازی غیرفرار ارسال می‌شود. اگر سیستم از کار بیفتد (و دوباره راه‌اندازی شود)، پایگاه داده می‌تواند بازنشانی شود، در حالی که بیشتر داده‌های فعلی هنوز در دسترس هستند.
چند نمونه از IMDBMSهای معروف
چند نمونه از IMDBMSهای معروف شامل SAP HANA، Oracle TimesTen، و Apache Ignite هستند. این سیستم‌ها هر کدام ویژگی‌ها و قابلیت‌های خاص خود را دارند که می‌توانند به نیازهای مختلف سازمان‌ها پاسخ دهند.
  • SAP HANA (High-Performance Analytic Appliance) یک سیستم مدیریت پایگاه داده درون حافظه‌ای است که توسط شرکت SAP توسعه یافته است. این سیستم برای تحلیل‌های بلادرنگ (real-time analytics) و پردازش تراکنش‌های بزرگ طراحی شده است. این سیستم توانایی پردازش حجم‌های بزرگ داده را به‌صورت بلادرنگ دارد و می‌تواند به‌صورت موازی عملیات‌ها را انجام دهد. همچنین، این سیستم از قابلیت‌های پیچیده تحلیل داده و گزارش‌گیری پیشرفته پشتیبانی می‌کند. این سیستم در صنایع مختلفی از جمله مالی، تولید، و بهداشت و درمان به ‌کار می‌رود و به سازمان‌ها کمک می‌کند تا تصمیمات مبتنی بر داده‌های به‌روز بگیرند.
  • Oracle TimesTen: یک پایگاه داده درون حافظه‌ای است که به‌طور ویژه برای کاربردهای نیازمند کارایی بالا طراحی شده است. این سیستم به‌طور مستقیم در حافظه اجرا می‌شود و از ویژگی‌های مختلفی برای بهینه‌سازی کارایی برخوردار است. همچنین می‌تواند در سناریوهای با تاخیر بسیار کم و تراکنش‌های با حجم بالا عملکرد خوبی ارائه دهد. همچنین، قابلیت‌های خوبی برای همگام‌سازی داده‌ها با پایگاه‌های داده معمولی (دیسک) دارد. این سیستم معمولاً در صنایع مالی، مخابرات و برنامه‌های کاربردی که نیاز به پردازش سریع تراکنش‌ها دارند، به‌کار می‌رود.
  • Apache Ignite: یک چارچوب پردازش داده‌های درون حافظه‌ای است که علاوه بر ارائه قابلیت‌های پایگاه داده درون حافظه‌ای، قابلیت‌های دیگری مانند محاسبات توزیع‌شده، کش توزیع‌شده و پردازش داده‌های بلادرنگ را نیز فراهم می‌کند. این چارچوب می‌تواند به‌طور هم‌زمان به‌عنوان یک پایگاه داده، کش توزیع‌شده و موتور محاسباتی عمل کند. این سیستم از پردازش‌های توزیع‌شده و قابلیت مقیاس‌پذیری بالایی برخوردار است. در سناریوهای متنوعی از جمله تجزیه و تحلیل داده‌های بزرگ، برنامه‌های کاربردی اینترنت اشیاء (IOT)، و سیستم‌های پردازش بلادرنگ به‌کار می‌رود.
هرکدام از این سیستم‌ها نقاط قوت و کاربردهای خاص خود را دارند و انتخاب یکی از آن‌ها بستگی به نیازهای خاص سازمان و نوع کاربردی که از پایگاه داده انتظار می‌رود، دارد.

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

شبکه های داده درون حافظه (IMDG)

شبکه‌های داده درون حافظه (In Memory Data Grids) راه‌حل‌های محاسباتی توزیع شده‌ای هستند که برای مدیریت و پردازش حجم زیادی از داده‌ها در چندین گره در یک خوشه طراحی شده‌اند که همه در حافظه هستند. این معماری دسترسی به داده‌ها با سرعت بالا، تأخیر کم و مقیاس‌پذیری را امکان‌پذیر ساخته و IMDG را برای برنامه‌هایی که نیاز به پردازش و تجزیه و تحلیل داده‌ها در زمان واقعی دارند، ایده‌آل می‌کند.
این نوع شبکه‌ها دارای معماری توزیع‌شده‌ای هستند به طوری که:
  • داده‌ها به طور یکنواخت در تمام گره‌های خوشه توزیع می‌شوند و بار متعادل و استفاده کارآمد از منابع را تضمین می‌کنند.
  • گره‌ها را می‌توان به صورت پویا اضافه یا حذف کرد و به شبکه اجازه می‌دهد تا بر اساس تقاضا به صورت افقی مقیاس شود.
دیگر مفاهیم کلیدی این نوع شبکه‌ها به صورت زیر است:
تکرار داده‌ها (Data Replication)
تحمل خطا: داده‌ها معمولاً در چندین گره تکرار می‌شوند تا دسترسی بالا و تحمل خطا تضمین شود. در صورت خرابی یک گره، گره دیگر که نسخه‌ تکراری داده‌ها را دارد، می‌تواند جایگزین شود.
مدل‌های سازگاری: IMDGها از مدل‌های مختلف سازگاری پشتیبانی می‌کنند و بسته به نیازهای برنامه می‌تواند تنظیم شود.
پردازش موازی (Parallel Processing)
رایانش توزیع‌شده: IMDGها امکان پردازش موازی وظایف را در سراسر خوشه فراهم می‌کنند، با استفاده از قدرت محاسباتی همه گره‌ها، عملکرد سیستم را بهبود می‌بخشند.
توزیع وظایف: وظایف به نودهایی که داده‌های مرتبط را دارند، توزیع می‌شوند، این امر حرکت داده‌ها را کاهش داده و کارایی را افزایش می‌دهد.
ویژگی‌های پیشرفته (Advanced Features)
قابلیت‌های پرس‌وجو: IMDGها اغلب قابلیت‌های پرس‌وجوی شبیه به SQL برای داده‌های درون حافظه را ارائه می‌دهند، که امکان اجرای سریع پرس‌وجوهای پیچیده را فراهم می‌کند.
پشتیبانی از تراکنش‌ها: بسیاری از IMDGها از تراکنش‌های ACID پشتیبانی می‌کنند، که اطمینان از یکپارچگی و سازگاری داده‌ها را فراهم می‌کند.
پردازش رویدادها: IMDGها می‌توانند پردازش رویدادهای بلادرنگ را مدیریت کنند، که آن‌ها را برای برنامه‌هایی مانند تشخیص تقلب و نظارت مناسب می‌سازد.
IMDGها به طور فزاینده‌ای در محیط‌های ابری ترکیبی مستقر شده و از مقیاس‌پذیری و انعطاف‌پذیری زیرساخت‌های ابری استفاده می‌کنند.

ابر و محاسبات درون حافظه‌ای

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

ابررایانه سیمرغ از پردازنده‌های قدرتمند Intel Xeon Scalable و AMD EPYC بهره می‌برد و دارای پردازنده‌های گرافیکی پیشرفته‌ای همچون RTX3090، V100S و A100 است که برای کاربردهای هوش مصنوعی و کلان‌داده بسیار مناسب هستند. علاوه بر این، زیرساخت شبکه این ابررایانه پهنای باند 200 گیگابیتی اختصاصی با تأخیر حدود 300 نانوثانیه بین هر دو سرور را فراهم می‌کند، که این ویژگی برای کاربردهای HPC و کلان‌داده که نیاز به ایجاد خوشه‌ای مجموعه‌ای از سرورها دارند، بسیار مفید و ضروری است.

با استفاده از ابررایانه سیمرغ، سازمان‌ها می‌توانند به راحتی از حجم‌های مختلف RAM از 8 گیگابایت تا 384 گیگابایت بهره‌مند شوند و هزینه‌های مربوط به رایانه‌های حافظه داخلی خود را کاهش دهند. همچنین، این ابررایانه با ارائه فضای ابری امن و قابل اعتماد، امکان استفاده از ذخیره‌سازی درون حافظه با استفاده از میزبان‌های اضافی و روش‌های غلبه بر خرابی (Failover) را فراهم می‌کند که از از دست رفتن اطلاعات جلوگیری می‌کند.

برای کسب اطلاعات بیشتر به وبسایت رسمی ابررایانه سیمرغ مراجعه کنید.

جمع‌بندی

محاسبات درون حافظه نشان‌دهنده یک تغییر چشمگیر در مدیریت و پردازش داده‌ها است که سرعت و کارایی بی نظیری را با استفاده از قدرت RAM ارائه می‌دهد. راه‌حل‌های IMC با ذخیره و پردازش داده‌ها به طور کامل در حافظه، تأخیر را به شدت کاهش می‌دهند و تجزیه و تحلیل بلادرنگ و پردازش تراکنش با کارایی بالا را امکان‌پذیر می‌کنند. این فناوری به ویژه برای صنایعی که نیاز به بینش داده فوری دارند، مانند خدمات مالی، ارتباطات راه دور، تجارت الکترونیک، مراقبت‌های بهداشتی و اینترنت اشیا مفید است. علیرغم چالش‌هایی مانند هزینه‌های بالاتر و نیاز به زیرساخت‌های قوی و استراتژی‌های پایداری داده، مزایای محاسبات درون حافظه، از جمله مقیاس‌پذیری، تحمل خطا، و ویژگی‌های پیشرفته مانند پردازش رویداد بلادرنگ و پشتیبانی از تراکنش‌های ACID، آن را به یک جزء حیاتی تبدیل می‌کند. معماری مدرن محاسباتی همانطور که فناوری‌های حافظه و معماری‌های ترکیبی به تکامل خود ادامه می‌دهند، محاسبات درون حافظه آماده تبدیل شدن به یکپارچه‌تر شدن برنامه‌های داده با کارایی بالا و زمان واقعی است.

سوالات متداول

  1. مزایای اصلی محاسبات درون حافظه‌ای چیست؟
مزایای اصلی شامل کاهش تأخیر، افزایش توان عملیاتی، تحلیل بلادرنگ داده‌ها و مقیاس‌پذیری بالا است.
  1. IMDBMS چیست؟
یک سیستم مدیریت پایگاه داده است که داده‌ها را به‌طور کامل در حافظه ذخیره می‌کند تا دسترسی و پردازش سریع‌تر را فراهم کند.
  1. چه تفاوتی بین IMDG و IMDBMS وجود دارد؟
IMDBMS برای مدیریت پایگاه داده درون حافظه استفاده می‌شود، در حالی که IMDG داده‌ها را در یک خوشه توزیع کرده و قابلیت‌های پردازش موازی و تحمل خطا را فراهم می‌کنند.
  1. آیا داده‌های ذخیره شده در حافظه امن هستند؟
داده‌های ذخیره شده در حافظه به دلیل فرار بودن حافظه، در صورت خرابی سیستم ممکن است از بین بروند، اما راهکارهای پشتیبان‌گیری و تکرار داده‌ها به این مشکل کمک می‌کنند.
تا چه حد این مطلب برای شما مفید بود؟
بر اساس رای 0 نفر

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

ثبت نظر

نظر دادن