افزایش سرعت محاسبات رایانهای با نرمافزار پژوهشگران ایرانی دانشگاه تورنتو
موبنا – “مریم مهری دهنوی”، استادیار علوم رایانه “دانشگاه تورنتو”(University of Toronto) کانادا، پژوهشی را در مورد آنالیز عددی، رایانش موازی و کامپایلرها آغاز کرده است.
دهنوی درباره این محاسبات میگوید: موضوع بسیاری از مقالات ما، ماتریس است زیرا ماتریس، عملکرد بالایی دارد. گاهی اوقات، احساس میکنیم مفهوم بسیاری از مباحث مانند نوع ماتریس، جبر یا الگوریتمهای موازی را درک نمیکنیم. دلیل این موضوع، عدم ارائه عملکرد مورد نیاز است.
ماتریس، به آرایش مستطیل شکل از اعداد یا عبارات ریاضی گفته میشود که به صورت سطر و ستون شکل یافتهاند؛ به طوری که میتوان گفت هر ستون یا هر سطر ماتریس، یک بردار را تشکیل میدهد.
دهنوی و “کاظم چشمی”، دانشجوی دکتری علوم رایانه، نرمافزاری با عملکرد بالا طراحی کردهاند که در حوزههای گوناگون از جمله گرافیک رایانه، رباتیک و یادگیری ماشینی کاربرد دارد.
ممکن است فکر کنید که کدها یا الگوریتمها پس از نوشته شدن، به سادگی کار میکنند اما این طور نیست. به گفته دهنوی، مشکل کنونی این است که سختافزار سریعتر از نرمافزار عمل میکند.
در حال حاضر، نرمافزارهایی با عملکرد بالا وجود دارند که هر یک از آنها برای کاربرد خاصی ابداع شدهاند. نه تنها این تنوع، گیجکننده است بلکه اغلب نرمافزارها سرعت بالای مورد نیاز برنامههای کاربردی جدید را ندارند. کامپایلرهای محدود به حوزه میتوانند این مشکل را با خودکار ساختن بهینهسازی کد رفع کنند.
“کامپایلر”، برنامه یا مجموعهای از برنامههای رایانهای است که متنی از زبان برنامهنویسی سطح بالا(زبان مبدا) را به زبانی سطح پایین(زبان مقصد)، تبدیل میکند. دهنوی افزود: این کامپایلرها، مانند مغز انسان هستند که امکان تصمیمگیری در شرایط دشوار، به صورت خودکار فراهم میکنند. البته از آنجا که عملکرد آنها، مرحله به مرحله صورت میگیرد، کاربرد فوری ندارند. ما قصد داریم کار خود را با یک روش و یک حوزه آغاز کنیم و سپس، این هدف بلندمدت را به تدریج گسترش دهیم تا به یک زبان عمومی برای برنامهنویسی برسیم.
به گفته دهنوی، این کامپایلرها، بالاترین سطح عملکرد را دارند و کاربردهای دادهای آنها در یادگیری ماشینی، بسیار بالاست. تنها مشکل این است که با اجرای آنها در پلتفرمهای محاسبات موازی، چالشی در مقیاسبندی کارآیی پیش میآید.
وی افزود: ما در نظر داریم این برنامه را در جهت مناسب به کار بگیریم و از آن در مهندسی عملکرد الگوریتمها و کدها استفاده کنیم. مهمترین نکته این است که این سیستمها، قابلیت عملکرد خودکار دارند و بدون کمک نیروی انسانی صورت میگیرند.
منبع: ایسنا