زبان برنامه‌نویسی جدید MIT سریع‌تر کدها را اجرا می کند.

گروهی از پژوهش‌گران موسسه فناوری ماساچوست (MIT) زبان برنامه‌نویسی جدیدی را طراحی کرده‌اند که Milk نام دارد.



گروهی از پژوهش‌گران موسسه فناوری ماساچوست (MIT) زبان برنامه‌نویسی جدیدی را طراحی کرده‌اند که Milk نام دارد. زبان برنامه‌نویسی جدید این قابلیت را فراهم آورده است تا اجرای کدها روی مجموعه‌‌ای از داده‌های حجیم چهار برابر سریع‌تر اجرا شوند. راهکار مورد استفاده توسط این گروه از تکنیک مرتب‌سازی هوشمند و مجموعه‌ آدرس‌های داده‌ای استفاده می‌کند.

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

زمانی که برنامه‌ای از کلان‌ داده‌ها استفاده می‌کند و این داده‌ها در مکان‌های مختلفی از حافظه قرار داشته باشند، اصل پراکندگی تبدیل به یک عامل نامطلوب می‌شود. به‌طوری‌که عملکرد یک برنامه کاربردی را کاهش داده و از سرعت اجرای برنامه کم می‌کند. برای حل این مشکل، پژوهش‌گران علوم کامپیوتر MIT و پژوهش‌گران آزمایشگاه هوش مصنوعی CSAIL زبان‌ برنامه‌نویسی جدیدی به نام Milk را طراحی کرده‌اند. در مقایسه با زبان‌های برنامه‌نویسی امروزی که از کلان‌ها داده‌ها استفاده می‌کنند، کدهای Milk چهار مرتبه سریع‌تر اجرا می‌شوند. تعجب کرده‌اید که این‌کار چگونه انجام می‌شود؟ راز نفهته در این تکنیک در مکانیزم جمع‌آوری و ذخیره‌سازی داده‌ها در هسته پنهان شده است.

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

این تکنیک منحصر به فرد باعث می‌شود تا یک هسته تنها عناصر داده‌ای که می‌داند به آن‌ها نیاز دارد را درخواست کند. Milk این‌کار را با کمک گرفتن از یکسری فرمان‌های اضافه شده به OpenMP انجام می‌دهد. OpenMP یک رابط برنامه‌نویسی کاربردی برای برنامه‌نویسی موازی رشته‌ها در سیستم‌های حافظه اشتراکی است که توسط یکی از زبان‌های سی، سی پلاس پلاس یا فورترن مورد استفاده قرار می‌گیرد و قادر است از معماری‌های مختلف پشتیبانی کند.OpenMP  به یک برنامه‌نویس کمک می‌کند تا به راحتی برای پردازنده‌های چند هسته‌ای کدنویسی کند. با استفاده از Milk، برنامه‌نویس این توانایی را در اختیار دارد تا برای کارآمدتر کردن فرآیندهای خود چند خط کد را به قسمت‌های موجود اضافه کند. کامپایلر این زبان نقش کلیدی در این بین داشته و تشخیص می‌دهد، چگونه باید فرآیند مدیریت حافظه انجام شود. متیو زاهاریا، استادیار دانشگاه استنفورد در مورد Milk گفته است: «Milk به ما کمک می‌کند، تا این شکاف را با بهینه‌سازی دسترسی به حافظه در ساختارهای رایج برنامه‌نویسی پر کنیم.»

منبع :