محبوبیت پایتون در محاسبات علمی و رایانش سریع، در حال افزایش است
در سالی که گذشت زبان برنامهنویسی پایتون بهعنوان محبوبترین زبان برنامهنویسی دنیا معرفی شد. از طرفی شاهد محبوبیت روزافزون پایتون در محاسبات علمی و رایانش سریع هستیم. دلیل این محبوبیت را میتوان به ظهور علم داده و اکوسیستم یادگیری ماشین و کتابخانههای نرمافزاری مربوطه مانند پانداس Pandas، تنسورفلوTensorflow ، PyTorch و NumPy و غیره نسبت داد. همچنین این واقعیت که یادگیری این زبان بسیار آسان است به پایتون کمک میکند تا در میان جامعه برنامه نویسان محبوبیت پیدا کند.
گفتنی است، پایتون در مقایسه با سایر زبانهای کامپایل شده مانند راستRust یا فرترنFortran بسیار کند است. این امر عمدتاً به این دلیل است که پایتون یکزبان تفسیری است؛ به این معنی که برای اجرای هر دستورالعمل، هزینههای سربار قابلتوجهی ایجادشده و همین امر سبب میگردد محاسبات عظیم بهکندی انجام شود. همین مسئله پایتون را برای زمینههای علمی و محاسباتی بالا نامناسب میکند. بااینحال، در این مقاله، ما به بررسی خواهیم کرد که چرا این مسئله لزوماً یک واقعیت اثباتشده نیست و چگونه پایتون برای وظایف ذکرشده ترجیح داده میشود.
[blockquote footer=”گیدو ون روسوم خالق زبان برنامهنویسی پایتون”]پایتون، آزمایشی در مورد میزان آزادی موردنیاز برنامه نویسان است. این برنامه آزادی بسیار زیادی داشته و هیچکس نمیتواند کد دیگران را بخواند.[/blockquote]پایتون بهعنوان یکلایه چسبنده
در مورد زبانهایی مانند C، C++ و Fortran کد منبع قبل از اجرا، ابتدا به یک فرمت اجرایی کامپایل میشود. درحالیکه در پایتون، هیچ مرحله کامپایلی وجود ندارد و کد بهصورت خط به خط تفسیر میشود. مزیت اصلی زبان تفسیری مانند پایتون این است که انعطافپذیر است، متغیرها نیازی به تعریف قبلی ندارند و برنامه میتواند بهسرعت تطبیق پیدا کند.
بااینحال، نقطهضعف اصلی، همانطور که قبلاً نیز به آن اشاره شد، اجرای کندتر برنامههای عددی فشرده است که پایتون را برای محاسبات علمی نامناسب میکند. بااینحال، میتوان این بخش از فرآیند را در C یا Fortran کامپایل کرد و سپس بهگونهای اطلاعات را وارد پایتون کرد که به نظر برسد مانند توابع عادی پایتون عمل میکنند.
این نکته نیز قابلبیان است که بسیاری از روالهای معمول ریاضی و عددی برای اجرای بسیار سریع از پیش کامپایل شدهاند. این روالهای معمول در دو بسته گروهبندیشده و این قابلیت رادارند تا بهصورت مستقیم به پایتون اضافه گردند. Python اغلب بهعنوان یکلایه چسبنده شناخته میشود که محققان از آن برای بستههای بهینهسازی و کامپایل شده در جهت انجام محاسبات هدف بهره میبرند. گستردهترین بسته در محاسبات علمی NumPy (Numerical Python) است. بسته NumPy روالهای اساسی را برای دستکاری آرایهها و ماتریسهای بزرگ دادههای عددی ارائه میدهد.
علاوه بر این، بسته SciPy (Scientific Python) عملکرد NumPy را با مجموعه الگوریتمهایی مانند کمینهسازی، تبدیل فوریه، رگرسیون و سایر تکنیکهای کاربردی ریاضی گسترش میدهد. محبوبیت هر دو بسته در جامعه علمی در حال افزایش است. آنها پایتون را با بستههای تجاری گرانقیمت مانند MatLab، قابلمقایسه و حتی در مواردی بهتر کردهاند.
پایتون در محاسبات علمی و رایانش سریع و یا بهاختصار HPC
تیمی از محققان کالج امپریال لندن، قابلیت حیات پایتون را بهعنوان پلتفرمی برای کاربردهای HPC مولد، قابلحمل و کارآمد در مقیاس پتا نشان دادند. فردی ویدردنFreddie Witherden، یکی از اعضای این گروه، گفت که پایتون یکزبان درجهیک برای رایانشهای سریع است. او سه دلیل برای این موضوع بیان کرد که در آنها تأکید بیشتری بر عملکرد برنامه و بهرهوری توسعهدهندگان و کاربر با کدهای رایانش سریع بود. همچنین تمایل برنامههای رایانش سریع برای تکیهبر APIهای شخص ثالث و استفاده از تولید کد برای رسیدگی به تنگناهای عملکرد رو به رشد است. وی افزود که پایتون میتواند به این عوامل رسیدگی کند و بالاترین سطوح عملکرد را روی سختافزار HPC در دسترس محققان قرار دهد. این گروه نامزد دریافت جایزه معتبر ACMAssociation for Computing Machinery گوردون بل نیز شد.
نظر یک متخصص برنامهنویسی
بهطور خاص، انتخاب زبان برنامهنویسی برای کاربران نهایی بسیار متفاوت از زبان برنامهنویسی برای کسانی است که سیستمها، کتابخانهها، کامپایلرها و زمانهای اجرا را پیادهسازی میکنند. برای اولی، پایتون محبوب است زیرا اکثر مدلهای برنامهنویسی کاربر نهایی مبتنی بر پایتون هستند (مانند TensorFlow، PyTorch)، بستههای پایتون برای محاسبات با کارایی بالا و علمی بهطور گسترده در دسترس هستند و پایتون بهرهوری برنامهنویسی بالایی را ارائه میدهد. بااینحال، برای پیادهسازی مدلهای برنامهنویسی اساسی، کتابخانهها و یا کامپایلرها زبانهای C، C++ و CUDA زبانهای انتخابی افراد هستند. درنهایت، تمام بستههای پایتون عملکردی خود بهصورت داخلی به کتابخانههای نوشتهشده در C، C++ یا CUDA نگاشت میشوند؛ بنابراین، C و C++ هنوز همزبانهای انتخابی برای پیادهسازی کتابخانههای زیربنایی، کامپایلرها، تولیدکنندگان کد یا زمانهای اجرا هستند.
پایتون درواقع زبان مورداستفاده در محاسبات علمی و با کارایی بالا است. ازآنجاییکه ساده، مقیاسپذیر، همهکاره، کارآمد و مبتنی بر پلتفرم است، در بین برنامه نویسان، مهندسان یادگیری ماشین و تحلیلگران و دانشمندان داده محبوبیت پیدا میکند. این زبان برنامهنویسی شامل صدها کتابخانه و چارچوب در دسترس عموم و بستههای غنی از ویژگی برای دستکاری دادهها (Pandas) و یادگیری ماشین (scikit-learn) است. علاوه بر این، پایتون در چندین چارچوب هوش مصنوعی سازمانی (TensorFlow، PyTorch و غیره) استفادهشده است. به دلیل فراوانی ابزارهای منبع باز، به نظر میرسد که دانشگاهها از R (و پلتفرمهای مشابه) دور میشوند و به پایتون اجازه میدهد تا بهعنوان زبان ترجیحی در میان علاقهمندان ظاهر شود.
جدیدترین اخبار هوش مصنوعی ایران و جهان را با هوشیو دنبال کنید