امروزه کلان دادهها باعث به وجود آمدن مشکلات مختلفی در ارتباط با تکنیکهای رایج مدیریت حافظه شدهاند. تکنیکهایی که بر مبنای اصل پراکندگی استوار هستند. اگر برنامه خاصی در نظر داشته باشد، به دادههای ذخیره شده در یک مکان از حافظه دست پیدا کند، به گروهی از دادههایی که در مجاورت این ناحیه قرار دارند، نیز نیاز دارد.
زمانی که برنامهای از کلان دادهها استفاده میکند و این دادهها در مکانهای مختلفی از حافظه قرار داشته باشند، اصل پراکندگی تبدیل به یک عامل نامطلوب میشود. بهطوریکه عملکرد یک برنامه کاربردی را کاهش داده و از سرعت اجرای برنامه کم میکند. برای حل این مشکل، پژوهشگران علوم کامپیوتر MIT و پژوهشگران آزمایشگاه هوش مصنوعی CSAIL زبان برنامهنویسی جدیدی به نام Milk را طراحی کردهاند. در مقایسه با زبانهای برنامهنویسی امروزی که از کلانها دادهها استفاده میکنند، کدهای Milk چهار مرتبه سریعتر اجرا میشوند. تعجب کردهاید که اینکار چگونه انجام میشود؟ راز نفهته در این تکنیک در مکانیزم جمعآوری و ذخیرهسازی دادهها در هسته پنهان شده است.
متدی که امروزه مورد استفاده قرار میگیرد، یک بلوک کامل از دادههای درون حافظه را واکشی میکند. این تکنیک در مورد بلوکهای بزرگ دادهای خوب عمل میکند، اما زمانی که تنها به یک بلوک کوچک از دادههایی نیاز است که درون مجموعهای از کلان دادهها قرار دارند، روش فعلی دیگر کارآمد نیست. اما در زبان برنامهنویسی جدید، هنگامیکه یک هسته به یک بخش از اطلاعات نیاز دارد، دیگر به دادههای کش شده مجاور درخواستی ارائه نمیدهد. در عوض مسیر عنصر را به فهرستی از آدرسهای محلی ذخیره شده، اضافه میکند. هنگامی که این فهرست به اندازه کافی طولانی شد، همه هستهها، فهرستهای خود را به یکدیگر متصل میکنند و در ادامه آدرسهای مجاور را گروهبندی میکنند. در گام بعد فهرستها یکبار دیگر در هسته باز توزیع میشوند.
این تکنیک منحصر به فرد باعث میشود تا یک هسته تنها عناصر دادهای که میداند به آنها نیاز دارد را درخواست کند. Milk اینکار را با کمک گرفتن از یکسری فرمانهای اضافه شده به OpenMP انجام میدهد. OpenMP یک رابط برنامهنویسی کاربردی برای برنامهنویسی موازی رشتهها در سیستمهای حافظه اشتراکی است که توسط یکی از زبانهای سی، سی پلاس پلاس یا فورترن مورد استفاده قرار میگیرد و قادر است از معماریهای مختلف پشتیبانی کند.OpenMP به یک برنامهنویس کمک میکند تا به راحتی برای پردازندههای چند هستهای کدنویسی کند. با استفاده از Milk، برنامهنویس این توانایی را در اختیار دارد تا برای کارآمدتر کردن فرآیندهای خود چند خط کد را به قسمتهای موجود اضافه کند. کامپایلر این زبان نقش کلیدی در این بین داشته و تشخیص میدهد، چگونه باید فرآیند مدیریت حافظه انجام شود. متیو زاهاریا، استادیار دانشگاه استنفورد در مورد Milk گفته است: «Milk به ما کمک میکند، تا این شکاف را با بهینهسازی دسترسی به حافظه در ساختارهای رایج برنامهنویسی پر کنیم.» مخترعان این زبان برنامهنویسی در نظر دارند، نتایج دستاورد خود را اواخر هفته جاری در کنفرانس بینالمللی معماری موازی و روشهای تلفیق ارائه کنند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟