
بروزرسانی: 17 تیر 1404
محققان سیستم جدیدی توسعه دادند که می تواند برنامه های کامپیوتری را سریعتر اجرا کند و در عین حال دقت را تضمین کند. -- ScienceDaily
در حالی که پوسته یونیکس اسکریپت های چند زبانه را فعال می کند، ساختار انعطاف پذیر و پویا آن موازی سازی این اسکریپت ها با استفاده از روش های سنتی را دشوار می کند.
همچنین سرعت اسکریپت هایی را که سایر رویکردها قادر به موازی سازی آن نبودند، افزایش داد.
موازی سازی به موقع همچنین تضمین می کند که برنامه تسریع شده همچنان نتایج دقیقی را برمی گرداند. اگر PaSh به یک مؤلفه برنامه برسد که قابل موازی کردن نباشد (شاید وابسته به مؤلفه ای باشد که هنوز اجرا نشده است)، به سادگی نسخه اصلی را اجرا می کند و از ایجاد خطا جلوگیری می کند.
محققان تکنیکی را ابداع کرده اند که می تواند به طور چشمگیری انواع خاصی از برنامه های رایانه ای را به طور خودکار تسریع کند، در حالی که اطمینان حاصل می کند که نتایج برنامه ها دقیق باقی می مانند.
محققان PaSh را بر روی صدها اسکریپت، از برنامه های کلاسیک تا مدرن، آزمایش کردند و حتی یک مورد را شکست. این سیستم در مقایسه با اسکریپت های بی نظیر، به طور متوسط \u200b\u200bشش برابر سریع تر برنامه ها را اجرا می کرد و حداکثر سرعت آن نزدیک به 34 برابر بود.
واسیلاکیس می افزاید: «مردم همچنین از توسعه در زبان های برنامه نویسی مختلف لذت می برند، بنابراین ترکیب همه این مؤلفه ها در یک برنامه واحد چیزی است که اغلب اتفاق می افتد».
یک راه حل به موقع
نیکوس واسیلاکیس، دانشمند تحقیقاتی در کامپیوتر می گوید: "مردم زیادی هستند که از این نوع برنامه ها استفاده می کنند، مانند دانشمندان داده، زیست شناسان، مهندسان و اقتصاددانان. اکنون آنها می توانند به طور خودکار برنامه های خود را بدون ترس از اینکه نتایج نادرست دریافت کنند، تسریع کنند." آزمایشگاه علم و هوش مصنوعی (CSAIL) در MIT.
او هیجان زده است که بازخورد بیشتری از کاربران دریافت کند و ببیند چگونه سیستم را بهبود می بخشند. این پروژه منبع باز سال گذشته به بنیاد لینوکس پیوست و آن را به طور گسترده برای کاربران در صنعت و دانشگاه در دسترس قرار داد.
شتاب و دقت
با موازی کردن اجزای برنامه "درست به موقع"، سیستم از این موضوع جلوگیری می کند. این می تواند به طور مؤثری سرعت مؤلفه های بسیار بیشتری را نسبت به روش های سنتی که سعی در انجام موازی سازی از قبل دارند، افزایش دهد.
این امر از مشکل دیگری در برنامه نویسی پوسته جلوگیری می کند - پیش بینی رفتار یک برنامه از قبل غیرممکن است.
این کار تا حدی توسط آژانس پروژه های تحقیقاتی پیشرفته دفاعی و بنیاد ملی علوم پشتیبانی شد.
منبع
سیستم آنها سرعت برنامه هایی را که در پوسته یونیکس اجرا می شوند، افزایش می دهد، یک محیط برنامه نویسی فراگیر که 50 سال پیش ایجاد شد و امروزه نیز به طور گسترده مورد استفاده قرار می گیرد. روش آنها این برنامه ها را موازی می کند، به این معنی که اجزای برنامه را به قطعاتی تقسیم می کند که می توانند به طور همزمان روی چندین پردازنده رایانه اجرا شوند.
پوسته یونیکس تا حدی محبوب است، زیرا تنها محیط برنامه نویسی است که یک اسکریپت را قادر می سازد از توابع نوشته شده در چندین زبان برنامه نویسی تشکیل شود. زبان های برنامه نویسی مختلف برای وظایف خاص یا انواع داده ها مناسب تر هستند. اگر یک توسعه دهنده از زبان مناسب استفاده کند، حل یک مشکل می تواند بسیار آسان تر باشد.
وقتی یک برنامه به یک زبان نوشته می شود، توسعه دهندگان اطلاعات صریحی در مورد ویژگی های آن و زبانی دارند که به آنها کمک می کند تعیین کنند کدام مؤلفه ها را می توان موازی کرد. اما این ابزارها برای اسکریپت ها در پوسته یونیکس وجود ندارند. کاربران نمی توانند به راحتی ببینند که در داخل اجزا چه اتفاقی می افتد یا اطلاعاتی را استخراج کنند که به موازی سازی کمک می کند.
این برنامه ها را قادر می سازد تا وظایفی مانند نمایه سازی وب، پردازش زبان طبیعی یا تجزیه و تحلیل داده ها را در کسری از زمان اجرا اصلی خود انجام دهند.
کاربران برای استفاده از PaSh نیازی به تغییر ندارند. آنها فقط می توانند این ابزار را به پوسته یونیکس موجود خود اضافه کنند و به اسکریپت های خود بگویند که از آن استفاده کنند.
موازی کردن یک برنامه معمولاً مشکل است زیرا برخی از بخش های برنامه به بخش های دیگر وابسته هستند. این ترتیبی را که اجزا باید اجرا شوند را تعیین می کند. دستور را اشتباه بگیرید و برنامه از کار بیفتد.
مشکلی چند دهه ای
در حرکت رو به جلو، Vasilakis می خواهد از PaSh برای مقابله با مشکل توزیع استفاده کند - تقسیم یک برنامه برای اجرا بر روی بسیاری از کامپیوترها، به جای بسیاری از پردازنده ها در یک کامپیوتر. او همچنین به دنبال بهبود طرح حاشیه نویسی است تا کاربرپسندتر باشد و بتواند اجزای برنامه پیچیده را بهتر توصیف کند.
برای غلبه بر این مشکل، PaSh از یک مرحله پیش پردازش استفاده می کند که حاشیه نویسی های ساده را روی اجزای برنامه قرار می دهد که فکر می کند می توانند موازی شوند. سپس PaSh سعی می کند تا آن بخش های اسکریپت را در حین اجرای برنامه، دقیقاً در لحظه ای که به هر جزء می رسد، موازی کند.
این سیستم جدید که به نام PaSh شناخته می شود، بر برنامه ها یا اسکریپت هایی متمرکز است که در پوسته یونیکس اجرا می شوند. اسکریپت دنباله ای از دستورات است که به کامپیوتر دستور می دهد تا یک محاسبه را انجام دهد. موازی سازی صحیح و خودکار اسکریپت های پوسته مشکلی است که محققان برای دهه ها با آن دست و پنجه نرم کرده اند.
واسیلاکیس می گوید: "سیستم ما اولین سیستمی است که این نوع دگرگونی کاملاً صحیح را نشان می دهد، اما یک مزیت غیرمستقیم نیز وجود دارد. نحوه طراحی سیستم ما به سایر محققان و کاربران در صنعت اجازه می دهد تا از این کار استفاده کنند."
واسیلاکیس می گوید: «بدون توجه به مزایای عملکرد - اگر قول بدهید به جای یک سال کاری را در یک ثانیه اجرا کنید - اگر احتمال بازگشت نتایج نادرست وجود داشته باشد، هیچ کس از روش شما استفاده نخواهد کرد.
این سیستم همچنین این کار را برای برنامه نویسانی که ابزارهایی را توسعه می دهند که دانشمندان داده، زیست شناسان، مهندسان و دیگران استفاده می کنند، آسان می کند. واسیلاکیس، که ریاست کمیته ای از محققان از سراسر جهان را بر عهده دارد که نزدیک به دو سال است روی این سیستم کار می کنند، اضافه می کند که آنها نیازی به انجام تنظیمات خاصی در دستورات برنامه خود ندارند تا این موازی سازی خودکار و بدون خطا را فعال کنند.
واسیلاکیس نویسنده ارشد آخرین مقاله تحقیقاتی این گروه است که شامل همکار MIT و دانشجوی فارغ التحصیل CSAIL، تمام مصطفی است و در سمپوزیوم USENIX در زمینه طراحی و پیاده سازی سیستم های عامل ارائه خواهد شد. از نویسندگان همکار می توان به نویسنده اصلی، کنستانتینوس کالاس، دانشجوی کارشناسی ارشد اشاره کرد. در دانشگاه پنسیلوانیا؛ یان بیلاک، دانش آموز دبیرستان استاشیک ورشو؛ دیمیتریس کارنیکیس، مهندس نرم افزار در آزمایشگاه آرنو؛ Thurston HY Dang، فوق دکترای سابق MIT که اکنون مهندس نرم افزار در گوگل است. و مایکل گرینبرگ، استادیار علوم کامپیوتر در موسسه فناوری استیونز.