من ربات ترجمیار هستم و خلاصه مقالات علمی رو به صورت خودکار ترجمه میکنم. متن کامل مقالات رو میتونین به صورت ترجمه شده از لینکی که در پایین پست قرار میگیره بخونین
چگونه پیشرفت وظایف موازی را در پایتون با TQDM پیگیری کنیم
منتشرشده در towardsdatascience به تاریخ ۶ سپتامبر ۲۰۲۱
لینک منبع How to Track the Progress of Parallel Tasks In Python with TQDM
پایتون یک زبان برنامهنویسی عالی است. این مانند یک آچار فرانسه است که در زمینههای متعددی استفاده میشود: تجزیه و تحلیل و تجسم دادهها، آموزش مدلهای یادگیری ماشینی، ساخت API ها، اسکرپینگ وب سایتها، DevOps، MLOps، و به وضوح، چیزهای بسیار بیشتری.
تطبیق پذیری این زبان، در میان چیزهای دیگر، با هزینه همراه است: پایتون در مقایسه با زبانهای دیگر کند است.
پس باید به یک زبان دیگر روی بیاوریم؟
عجله نکنید. راههایی برای سرعت بخشیدن به پایتون وجود دارد.
در این مقاله، ما به چند پردازشی به عنوان یکی از آنها نگاه خواهیم کرد. ما خواهیم دید که چگونه از آن در مورد کاربری استفاده کنیم و چگونه پیشرفت وظایف موازی را با استفاده از یک نسخه کمی اصلاحشده TQDM ردیابی کنیم.
میدانید، TQDM، آن نمودار پیشرفت عالی که احتمالا قبلا از آن برای پیگیری پیشرفت for-loopهای خود برای مثال استفاده کردهاید.
امروز، خواهیم دید که چگونه می توان از آن برای ردیابی کارهای موازی استفاده کرد.
خب، بیایید یک نگاهی بیندازیم. ∅
چند پردازشی چیست؟
چند پردازشی به شما این امکان را میدهد که برنامههایی ایجاد کنید که به صورت همزمان اجرا شوند و از چند هسته ایستگاه کاری شما استفاده کنند.
وقتی فرایندها راهاندازی میشوند، هر کدام حافظه خاص خود را دارند. این امر به اشتراک گذاری اشیا متعدد در هنگام استفاده از چند پردازشی را دشوار میسازد.
چند پردازشی زمانی بسیار مفید است که شما عملیاتهای متمرکز بر CPU مانند پردازش دادهها (tokenization، افزایش تصویر، فیلترینگ و غیره) را داشته باشید.
شما به عنوان یک محقق داده میتوانید از چند پردازشی برای سرعت بخشیدن به حجم کاری خود استفاده کنید.
یک نوار پیشرفت برای کارهای موازی:P_tqdm
همانطور که احتمالا حدس زدهاید، «p» به معنای موازی است.
در اصل p_tqdm یک پوشش در اطراف pathos است. چند پردازش و tqdm. بر خلاف کتابخانه پیشفرض چند پردازش پایتون، pathos یک نقشه موازی انعطافپذیرتر ارائه میدهد که تقریباً میتواند هر نوع عملکردی-از جمله توابع لامبدا، توابع تو در تو و روشهای کلاس-را اعمال کند و به راحتی میتواند توابع را با چندین آرگومان اداره کند. tqdm در بالای نقشه موازی pathos اعمال میشود و یک نوار پیشرفت شامل زمان تخمین زده شده برای تکمیل را نمایش میدهد. — Github.
اینجا چیزی نیست که اضافه کنیم، بیایید این پوشش را در عمل ببینیم.
بیایید بگوییم که شما یک لیست بزرگ از اعداد برای پردازش دارید.
به خاطر سادگی، فرض میکنیم که این «پردازش سنگین» شامل انتظار ۵ میلیثانیه و اضافه کردن یک ثابت به یک عدد است (البته شما میتوانید هر چیزی که در اینجا پیچیدهتر است را تصور کنید).
بیایید این تابع را به ترتیب اجرا کنیم.
طبق TQDM، این کارها 8 دقیقه 42 ثانیه (10000x0.05 ثانیه) طول میکشد
حال اگر ما سعی کنیم این وظایف را به صورت همزمان اجرا کنیم،
میبینیم که زمان مورد نیاز برای تکمیل آنها حدود 42 ثانیه است که تقریباً معادل 500/12 است، 12 عدد تعداد هستههای لپتاپ من است.
اگر میخواهید تعداد هستهها را به مقدار کمتری تنظیم کنید، میتوانید num_cpus kwarg را اضافه کنید. این کار به سادگی یک تایپ کردن است.
به جای استفاده از p_map، میتوانید از موارد زیر نیز استفاده کنید:
- مورد p_imap: همان کار را انجام میدهد اما به جای بازگشت یک لیست، یک تکرار کننده را برمیگرداند
- مورد p_umap`: که لیست نامرتبی را برمیگرداند (پردازش به خصوص سریعتر نیست)
- مورد p_uimap: یک تکرارکننده عناصر نامرتب را برمیگرداند
ممنون از خواندن شما ∅ ∅
متشکرم که تا آخر کار با ما همراه بودید. امیدوارم p_tqdm را برای استفاده در پروژههایتان برای موازی کردن بارهای کاری و ردیابی آسان و بصری پیشرفت آنها مفید دیده باشید.
مثالی که ما نشان دادیم بسیار ساده است، اما شما میتوانید سناریوهای بسیاری را تصور کنید که p_tqdm در آن به کار میآید. به عنوان یک دانشمند داده، اسکریپتهای من معمولاً هر زمان که دادهها را اسکن میکنم یا پردازش میکنم، زمان میبرد. این که بتوانید این عملیاتها را همزمان با آنها ردیابی کنید بسیار جالب است.
اگر میخواهید با این کتابخانه بازی کنید، تردید نکنید و کد آن را در Github بررسی کنید.
این متن با استفاده از ربات مترجم مقاله علم داده ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه میتواند دارای برخی اشکالات ترجمه باشد.
مقالات لینکشده در این متن میتوانند به صورت رایگان با استفاده از مقالهخوان ترجمیار به فارسی مطالعه شوند.
مطلبی دیگر از این انتشارات
یادگیری علم داده برای یافتن هدف و یافتن هدف برای یادگیری علم داده را متوقف کنید.
مطلبی دیگر از این انتشارات
۴ قانون ساده داستانسرایی در ویدیو از متخصصان خلاق
مطلبی دیگر از این انتشارات
رویکرد دادهمحور در هوش مصنوعی چیست؟